Computer Science 110
Intro to Computer Systems
Syllabus -- Fall 2001

Professor: Mike Erlinger
Office: Olin 1242
Office Hours: Monday 3:00-5:00, Beckman Basement
Phone: x-18912

Meeting Times: Monday & Wednesday 11:00-12:15 PM
Meeting Place: Beckman B134

Professor: Geoff Kuenning
Office: Olin 1251
Phone: x-71610

Meeting Times: Monday & Wednesday 1:15-2:30 PM
Meeting Place: Beckman B126

Graders:: Annie Chang (achang), Elmer Kim (ekim), Hang Tang (htang), Justin Basilico (jbasilic)
Secretary: Joyce Green, Olin 1240, 621-8225,

Catalogue Course Description

Introduction to computer architecture and operating system services, digital logic (adders, latches, multiplexors), binary encodings (two's complement, one's complement), computer arithmetic (including multiplication, division, floating point), hardware description languages, basic architecture (machine language, processor operation, instruction decoding), processes (interprocess communication, scheduling, and deadlocks), programs (procedure calls and activation records), memory hierarchy (caches, virtual memory, paging and swapping), and I/O (files, devices, drivers, interrupts and traps).
Prerequisite: Computer Science 60 & 70. 3 credit hours.

Course Texts

We did NOT ordered enough texts through Huntley Bookstore, i.e., We ordered some Tanenbaum and some Paul. We have a continuing relationship with in that there is a link from the course web page to Please note: Clicking on one of the Amazon links above 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 (pepsi acct). The money will directly benefit neither the faculty nor the department.

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

Operating System Concepts, 5th Edition, by Abraham Silberschatz & Peter Baer Galvin, Addison-Wesley, ISBN 0-201-59113-8. Note, 6th edition is out Buy the book from
Modern Operating Systems, 2nd Edition, by Andrew S. Tanenbaum, Prentice Hall, ISBN 0-13-031358-0. Buy the book from
Sparc Architecture, Assembly Language Programming, and C, 2nd Edition Richard P. Paul, Prentice Hall, ISBN: 0130255963. Buy the book from

Other Related Texts

UNIX Network Programming, by W. Richard Stevens, Prentice Hall, ISBN 0-13-949876-1. Buy the book from
UNIX Network Programming Volume 2: Interprocess Communications - by W. Richard Stevens Prentice Hall, ISBN: 0-13-081081-9. Buy the book from
Interprocess Communications in UNIX, the Nooks and Crannies, by John Shapley Gray, Prentice Hall, ISBN 0-13-899592-3 Buy the book from

What Is This Course About?

Historically, computer architecture and computer operating systems have been taught as two separate courses. As a department we felt that these two subjects are tightly coupled in many areas, e.g., memory management, process management, inter-process communication, etc.. We decided that a course which investigated computer systems both from an architecture viewpoint and from an operating system viewpoint would provide our students with a more integrated view of computer systems. This course investigates various areas of computer architecture and operating systems with the integration point centering on the cooperation of the hardware and software to provide the underpinings of the computer system, e.g., subprogram call and execution, process context switch.

The Books

Since this is a unique course we will be taking material from a number of places. Thus, there are a number of books which you might consider purchasing

Requirements and Grades

Students will be responsible for the usual projects, homeworks, quizzes, and tests, with abstracts being a new activity. Students are also responsible for adding themselves to the course email list,

Students are responsible for reading the web page:

I (mike) am happy to take messages about problems with the web page. No matter how much time I spend on it, there is always something wrong. (2 Points per error, to the first person who finds the error).

Make sure to read the course late policy. There will be two exams during the term, both inclass. In the past, I have found that in most cases, the exams are the separator as far as grades. The relative weighting scheme of the course work and grades will be as follows:
Quizzes (4-5): 3%
Homeworks (6-8): 15%
Projects : 50%
Abstracts : 5%
Tests : 25%

My view of each of these:

Program Demonstrations

For some of the projects, we will request that you demo your program to one of the course graders. Usually these demonstrations take place sometime after you have turned in your program. A key point to remember is that we want you to demo the version of the program that you submitted as your project. We realize that sometimes people discover fixes after turning in their projects, but the version we want to see is the version turned in as the project. Note, you should consider using make and RCS to control your projects.

Collaboration Policy

Collaboration is encouraged. This means that you may discuss approaches to solving problems with anyone in the class, including professors, classmates, graders, etc. However, copying solutions from any source (web, person, or book) is not allowed. All students are expected to conduct themselves in accordance with the Harvey Mudd Honor Code and the Computer Science Honesty Statement . If you have any questions about what is appropriate or inappropriate collaboration, please talk to me.

To encourage collaboration and to assist you in debugging your programs, we would like each of you to team up with someone else in the course. Your buddy is there as a first line of support for this course, in particular the projects. The faculty and the graders are available to assist you, but as you may have heard some of the projects are long and difficult. We believe that your buddy should be the first person that you seek help from. This will improve both of your abilities to debug code. Again, each of you are to turn in your own work, but help each other. As far as debugging projects, we will first ask you whether you have discussed your problems with your buddy. If the answer is NO then we will politely tell you to go find her.

Most of the projects are modifications of previous projects. You are encouraged to talk to former cs110 students, but you are not to use any of their code, e.g., if someone from a previous year created a semaphore library, you can talk to them about that library, but you are NOT to use the library in your project.

Order of Topics

Last modified Sept 5, 2001 by