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, security, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: data representations, computer arithmetic, machine-level code and its generation, performance evaluation and optimization, memory organization and management, processes and concurrent computation, and networking technology and protocols.

Prerequisites: CS 54 and 62.

Instructor

Anthony Clark Anthony Clark
Edmunds 127
Office hours:
  • Monday from 9 to 10
  • Wednesday from 9 to 10
  • Wednesday from 1:30 to 3:30


Please use Slack for class-related communication.

TAs

Mercy Bickell Mentor Hours: Tuesdays from 7 to 9 PM Pacific Time (zoom link on Slack)
Lucky Lim Mentor Hours: Wednesdays and Thursdays from 8 to 9 Pacific Time (zoom link on Slack)
Pei Qin Mentor Hours: Saturdays from 10 AM to 12 PM Pacific Time (zoom link on Slack)
Gabriel Konar-Steenberg Mentor Hours: Mondays and Wednesday from 7 to 9 PM Pacific Time (zoom link on Slack)
Ziang Xue Mentor Hours: Tuesdays from 7 to 8 PM Pacific Time (zoom link on Slack)

Lectures

Lectures take place on Mondays and Wednesdays 11:00 AM to 12:15 PM Pacific Time in Edmunds 229. See the schedule for details.

Lab Sessions and Assignments

Labs will be Fridays 11:00 AM to 12:15 PM Pacific Time in Edmunds 229. You will start assignments during lab sessions.

Assignments will be started in the laboratory sessions and will be completed with a partner. It is your responsibility to complete the assignments and turn them in on time.

There will be eleven weekly assignments. These assignments are supposed to be fun and challenging, and they should help you master the material covered in this course.

Exams

There will be one midterm exam and one final exam in this course. See the schedule for details.

Grades

Grades are computed as follows:

  1. A Requirements
    • Pass all assignments.
    • Receive an "A" on both the midterm and final.
  2. B requirements
    • Pass all assignments.
    • Recieve at least a "B" on both the midterm and final.
  3. C Requirements
    • Pass nine assignments.
    • Recieve at least a "C" on both the midterm and final.
  4. D Requirements
    • Pass seven assignments.
    • Receive at least a "D" on both the midterm and final.

You will have multiple attempts to pass assignments, and you will have a change to improve exam grades. More details on this will follow.

Accommodations

If you have a disability (for example, mental health, learning, chronic health, physical, hearing, vision, neurological, etc.) and expect barriers related to this course, it is important to request accommodations and establish a plan. I am happy to help you work through the process, and I encourage you to contact the Student Disability Resource Center (SDRC) as soon as possible.

I also encourage you to reach out to the SDRC if you are at all interested in having a conversation. (Upwards of 20% of students have reported a disability.)

Academic Honesty and Collaboration

I encourage you to study and work on assignments with your peers (unless otherwise specified). If you are ever unsure about what constitutes acceptable collaboration, please ask!

For more information, see the Computer Science Department and the Pomona College policies.

I take violations of academic honesty seriously. I believe it is important to report all instances, as any leniency can reinforce (and even teach) the wrong mindset (“I can get away with cheating at least once in each class.”).

Course materials provided to you, including graded papers and exam summaries, are for your use in the course. You are encouraged to use them to the fullest extent, but you are not to publish them or distribute them to other people or organizations.

Academic Advisory Notice

I will do my best to update you if I think you are not performing at your best or if you are not on pace to pass the class. I will first reach out to you and then use the system built-in to my.pomona.edu that will notify your advisor so you are encouraged to work with a mentor or advisor on a plan.

Attendance

I expect you to attend every class, but I will not penalize you for missing class. Know that there is a strong correlation between attendance and grades, and you will almost certainly be indirectly penalized.

You are responsible for any discussions, announcements, or handouts that you miss, so please reach out to me. If you need to leave class early for any reason, please let me know before class begins so that I am not concerned when you leave.

Late Submissions

Late assignments will not be accepted. However, if you plan ahead you can ask for an extension prior to the assignment deadline (at least four days).

Unless requested ahead of time, some assessments (e.g., exams) cannot be completed after the class period in which they are scheduled.

Covid Safety Awareness

During the past academic year, we built community remotely, and this year we will build on the pedagogical improvements we acquired last year. For example, we might meet on zoom from time to time, or hold discussions online.

Our health, both mental and physical, is paramount. We must consider the health of others inside and outside the classroom. All Claremont Colleges students have signed agreements regulating on-campus behavior during the pandemic; in the classroom, we will uphold these agreements. We need to take care of each other for this course to be successful. I ask you therefore to adhere to the following principles:

  • there is a mask mandate for all indoor spaces on campus. You must wear a mask for the entire class; eating and drinking are not permitted. Your mask must cover your mouth and nose. The college has zero-tolerance for violations of this policy, and our shared commitment to the health and safety of our community members means if you come to class unmasked you will have to leave class for the day.
  • Class attendance is required, but if you need to miss class for health reasons, concerning symptoms, suspected Covid exposure, unexpected dependent care, technology issues, or other emergency reasons I will work with you. Let me underscore this: please make your decisions always based on health, safety, and wellness—yours and others—and I will work with you at the other end. Take any potential symptoms seriously; we’re counting on each other.
  • When not in class, avoid closed public spaces, and if you can’t avoid them: wear your mask properly, wash your hands, and maintain social distance.
  • If you, or a family member, are experiencing hardship because of the pandemic, talk to me or to someone in the Dean of Students office. You are not alone during this time.

The pandemic is fast-moving, and we might have to adjust these principles as the semester evolves. I am always happy to receive your feedback to make this course work.

Let’s care for each other, show empathy, and be supportive. While there will likely be some community transmission and breakthrough infections, together, we can minimize their effect on our community and on your learning.

© Eleanor Birrell and Anthony Clark, 2022