CS 105 — Spring 2024

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.

Instructor:

Prof. Beth Trushkowsky

Class Meetings:

Lecture: Tues/Thurs in Shan 1480 at
1:15pm-2:30pm (Section 1) or
2:45pm-4:00pm (Section 2)

Lab: Friday at 1:15-2:30pm (both sections), McGregor 203-205

Texts:

Computer Systems, A Programmer's Perspective, 3rd Edition, by Randal E. Bryant and David O'Hallaron, Prentice Hall, 2015
Optional: The C Programming Language, 2nd Edition, by Brian Kernighan and Dennis Ritchie, Prentice Hall, 1988

Grade Breakdown:

Labs 35%
Class participation 5%
Quizzes 15%
Midterm exam 20%
Final exam 25%

Lab work:

The lab assignments in this course are meant to be both fun and challenging. The Friday lab time will be used to get you started on the assignments. We DO NOT intend you to complete the assignments during the lab time. Lab assignments are typically due at the beginning of the Friday lab session when the next assignment begins.

You must work in teams (usually 2 people) unless alternate arrangements have been made with the instructor. You must do all work on lab assignments with your partner(s)! You will switch partners midway through the semester.

Late policy:

You have four "late days" to use on lab assignments during the semester; no more than two may be used on a single assignment. To use a late day, email the professors before the assignment is due. Note that a late submission counts as a late day for both partners, and both partners must have enough late days to use them. Late lab work is generally not accepted after you have used up your late days. Emergencies will be considered on an individual basis.

Collaboration Policy:

Collaboration is encouraged. This means that you may discuss approaches to solving problems from the lab assignments with anyone in the class, including the professor and the grutors. 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 the professor.

Class Participation:

You are expected to attend and fully participate in lecture and lab session. Please let the instructor know if you will miss class due to illness, travel, etc. You may use a laptop or tablet for taking notes during class, but you should not be accessing anything beyond the materials for CS 105 (this is very distracting both to you and the people around you!).

Accessibility and Accommodations:

MC is committed to providing an inclusive learning environment and support for all students. Students with a disability (including mental health, chronic or temporary medical conditions) who may need accommodations in order to fully participate in this class are encouraged to contact the Office of Accessible Education at access@g.hmc.edu to request accommodations. Students from the other Claremont Colleges should contact their home college's Accessible Education officer.