Computer Science 105
Computer Systems
Syllabus -- Spring 2007

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

Lecture Times: Monday/Wednesday 11:00-12:15; Parsons 1285

Lab Times: Wednesday, 7:00-8:25; Beckman 105

Lab TAs/Graders: Chris Roberts, Max Gibiansky

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

Course Text

We did order texts through Huntley Bookstore, but as usual the numbers may not be correct. We have created a relationship with Amazon.com where we put a link from the Web page to Amazon.com. Please note: Clicking on one of the Amazon links will take you directly to Amazon.com'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., 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, ISBN 0-13-034074-X Buy the book from Amazon.com

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
        Amazon.com
The Joy of C - by Lawrence H. Miller and Alexander E. Quilici Wiley, ISBN: 0-471-1233-X. Buy the book from Amazon.com

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.

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 end many sections from the book with a quiz, either individual or joint. These quizzes are notworth points.

Requirements and Grades

We have 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:
Participation: 5%
Homeworks : 15%
Labs : 35%
Midterm : 20%
Final : 25%

Participation

The Participation aspect of this course is designed to ensure that you have a full grasp of the concepts presented in the text. We will go over problems in class. Student groups, picked randomly, will present solutions. Our goal is to get you to understand and to absorb the major concepts and technologies presented in the course.

Homeworks

There will be some written homeworks. These are designed to get you to analyze your understanding of the material.

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 loose pair programming paradign.

Tests

There will be two tests. It should be noted that the tests come from the class lecture material. Historically, the tests have been the differentiator in assigning grades because the labs are usually finished by all teams.

Quizzes

The quizzes will be given after class presentation of major subject areas. The quizzes will be unannounced and are focused on getting you to think about the topics..

Collaboration Policy

Collaboration is encouraged. This means that you may discuss approaches to solving problems with anyone in the class, including myself and the graders. 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 me. The copying of code applies to everything (especially) including the Labs.

Web Page

Obviously you should check the Web page periodically. Our plan is to keep it updated 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 the course direction. NOTE: We update the Calendar FIRST so it IS your primary source.

List of Topics

Mike Erlinger

Last Modified Thursday, 30-Jun-2011 12:44:42 PDT