Computer Science 105
Computer Systems
Syllabus -- Spring 11

Professor: Everett Bull, Jr.
Office: Edmunds 225
Phone: 18709
E-mail: Everett.Bull@pomona.eduu

Professor: Mike Erlinger
Office: Olin 1258b
Phone: 18912
E-mail: mike@cs.hmc.edu

Lecture Times:

Lab Times:

  • Friday, 11:00-12:15, Beckman B105
  • Friday, 1:15-2:30; Beckman B105

Lab TAs/Graders:

    Eric Aleshire, Joe DeBlasio, Josh Ehrlich, Paul Hobbs, Tolli Paine, Sabreen Lakhani, Kimberly Sheely

Secretaries:

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, processes and concurrent computation, and networking technology and protocols.

Course Text

We ordered texts through Huntley Bookstore, but as usual the numbers may not be correct. There are obviously other places to purchase books, e.g., Amazon, bookpool.com, so do what is best for you.

Computer Systems, A Programmer's Perspective by Randal E. Bryant and David O'Hallaron Prentice Hall, Second Edition ISBN 978-0-13-610804-7

Other Related Texts

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

What Is This Course About?

There are many ways to approach the subject of computer systems. This course investigates computer systems from the viewpoint of the programmer at the interface between the hardware and software.

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.

Requirements and Grades

We have make great efforts to encourage you to submit material on time. Make sure to read the late policy. We have made some changes for this semester, which will hopeflully increase your learning. The relative weighting scheme will be as follows:
Quizzes : 20%
Labs : 60%
Final: 20%

Quizzes

Quizzes are designed to encourage you to keep up with the material. In particular, reading the chapters and paying attention to lecture. There will be at least one quiz each week. They will always be unannounced; some will be closed book and closed notes; some will be open notes. Material for the quizzes will come from the lectures or the book, so keep up with the readings.

Laboratory

The laboratory aspect of this course is fun and challenging. Lab time will be used to get you started on the various experiments. We DO NOT intend you to complete the labs during the lab time, but will establish some ground rules on the time you should spend on each lab. The various Web pages will be updated as the semester progresses. The labs are done in a pair programming paradign. Also, adequate performance on ALL the labs is REQUIRED to get a passing grade in the course. On a space available basis you are free to come to either or both lab sessions.

Tests

There will be only one test. It should be noted that the test comes both from the class lecture material and from the book. Historically, the tests have been the differentiator in assigning grades because the labs are usually finished by all teams.

Final

The final for the MW 11am section is Thursday at 9, and for the MW 2:45pm section Friday at 2. We will allow students to take either final, BUT STUDENTS MUST SIGN UP FOR ONE OF THEM (NO LAST MINUTE CHANGES).

Inexperience in C and/or Unix

C++ and Unix are covered or used in various introductory courses at HMC. Those who have no experience face a steep startup in CS 105. There are a few pointers to assist such students.

Collaboration Policy

Collaboration is encouraged. This means that you may discuss approaches to solving problems with anyone in the class, including faculty and grutors. However, COPYING solutions from any source (web page or 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 faculty. The copying of code applies to everything (especially) including the Labs.

Getting Help

If you need help with assignments, send mail to cs105help At cs.hmc.edu. This alias is preferable to mailing the professor directly, since it also goes to the TAs and to the professors.

Web Page

Obviously you should check the Web page periodically. Our plan is to keep it updated weekly, i.e., by Saturday night the next week should be complete and subsequent weeks partially complete. Things way out may move, but they do show you the course direction.

List of Topics

Mike Erlinger

Last Modified Thursday, 30-Jun-2011 12:45:05 PDT