Computer Science 105
Computer Systems
Syllabus -- Fall 2003

Professor: Mike Erlinger
Office: Olin 1258b
Phone: 18912

Professor: Geoff Kuenning
Office: Olin 1240,
Phone: 71610

Lecture Times: Tuesday/Thursday 9:35-10:50; Jacobs 134
Lecture Times: Tuesday/Thursday 1:15-2:30; TG 201

Lab Times: Wednesday, W6:00-6:50 PM; Beckman 105
Lab Times: Wednesday, W7:00-7:50 PM; Beckman 105
Lab Times: Wednesday, W8:00-8:50 PM; Beckman 105

Graders: Melissa Federowicz, Adrian Mettler, and Dominik Slusarczy
Lab TAs: Melissa Federowicz, Adrian Mettler, and Dominik Slusarczy
Secretary: Joyce Greene, Olin 1258, 621-8225

Course Description

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and concurrent computation.

Course Text

We did order texts through Huntley Bookstore, but as usual the numbers may not be correct. We have created a relationship with where we put a link from the Web page to Please note: Clicking on one of the Amazon links will take you directly to's Web site to order that book or any other book. Any book purchased via one of these links will generate a commission for the Computer Science department, which will be placed in the CS student activities fund. The money will directly benefit students NOT the faculty or the department. Using the link to order any book will also generate the commission.

There are obviously other places to purchase books, e.g.,, so do what is best for you.

Computer Systems, A Programmer's Perspective by Randal E. Bryant and David O'Hallaron Prentice Hall, ISBN 0-13-034074-X Buy the book from

Other Related Texts

The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie Prentice Hall, ISBN 0-13-110370-9. Buy the book from
The Joy of C - by Lawrence H. Miller and Alexander E. Quilici Wiley, ISBN: 0-471-1233-X. Buy the book from

What Is This Course About?

There are many ways to approach the subject of computer systems. This course will investigate computer systems from the viewpoint of the programmer. There are two sections and two faculty members. Our plan is for each of us to teach specific topics to both sections. Thus, no matter which section, you will get the same lecture. But we will take role and if you are NOT at your assigned section but at other, you will lose points.

This being the first time through this material in this form, we will follow the text in most areas. The lectures WILL ASSUME that you have read related material from the text and that you thus come to class with questions and some knowledge. We will start many lectures with a short quiz. This quizzes are worth points, have no make up, etc. Thus consistently coming to class unprepared will be negatively reflected in your grade no matter how you do on the labs, hwks, and tests.

Requirements and Grades

We will make great efforts to encourage you to submit material on time. Make sure to read the late policy. The relative weighting scheme will be as follows:
Homeworks : 25%
Labs : 35%
Quizzes : 15%
Tests : 25%


The homework aspect of this course is designed to ensure that you have a full grasp of the concepts presented in the text. Our goal is NOT to keep you busy all night, but rather to get you to understand and absorb the major concepts and technologies presented in the course.


The laboratory aspect of this course continues under development. Lab time will be used to get you started on the various experiments. We DO NOT intend to complete the labs during the lab time. The various Web pages will be updated as the semester progresses. If we run into serious problems with doing a particular lab experiment, we will regroup and ...


Quizzes are an aspect of this course under development. Our intention is to use quizzes to ensure that you come to class having at least quickly skimmed the material (ideally, you will have read the material in detail).

Collaboration Policy

Collaboration is encouraged. This means that you may discuss approaches to solving problems with anyone in the class, including ourselves and the graders. However, COPYING solutions from any source (person or book) is DISALLOWED. All students are expected to conduct themselves in accordance with the Harvey Mudd Honor Code. If you have any questions about what is appropriate or inappropriate collaboration, please talk to one of the instructors. The copying of code applies to everything except for the Labs. In some Labs we tell you to go get a data structure from a particular source. It is really really stupid to ignore this advice....

Web Page

Obviously you should check the Web page periodically. Our plan is to keep it updatedly weekly, i.e., by Friday night the next week should be complete and subsequent weeks partially complete. Things way out may move, but they do show you direction. NOTE: We updated the Calendar FIRST so it IS your primary source.

List of Topics

Mike Erlinger

Last Modified