CS 105 — Spring 2025

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. Arthi Padmanabhan

Class Meetings:

Lecture: Mon/Wed in SHAN 2475 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-204

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 and your partner have two "late days" to use on lab assignments during the half of the semester you work together. You need not notify the professor about using late days - please use the Harvey Mudd Honor Code to use at most two. Late lab work is generally not accepted after you have used up your late days. For emergencies, please contact the professor.

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.

Tools and Access to Materials:

Website: All lecture notes and labs will be posted on the calendar on the course website. Incomplete lecture notes will be posted just before class, and a version with exercises filled in will be posted by the beginning of the next class.

Piazza: We will use Piazza for all course discussion. For help with assignments, Piazza is preferable to email because your TAs can help you out too

Gradescope: Quizzes and exams will be released and submitted through Gradescope

Canvas: We will use Canvas only for making your grades visible to you

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:

HMC 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.