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, or CS 60 and 70.

Lectures

Lectures take place on Tuesdays and Thursdays 1:15-2:30pm in Edmunds 101. See the schedule for details.

Labs

Lab section will meet on Fridays 1:15-2:30pm in Edmunds 105.

You must attend the lab section.

Instructors

Sam Thomas Sam Thomas
samuel.thomas@pomona.edu
Edmunds 112
Office hours for Fall 2026 are Monday 4-5pm, Tuesday 2:30-3:30pm, Wednesday, 4-5pm, and Thursday 2:30-3:30pm.

TAs

Connor Wang Mentor Hours: TBD
Kai Parker Mentor Hours: TBD
Nate Wehner Mentor Hours: TBD
Vika Prokopenko Mentor Hours: TBD

Assignments

There will be ten weekly assignments in CS 105. These assignments are supposed to be fun and challenging, and they should help you learn the material covered in this course. Assignments will generally be released before lab on Fridays and will be due the following Thurdsy at 11:59pm PT (unless otherwise specified). See the assignment page for details. The assignments are done in a pair programming paradigm. Adequate performance on all the assignments is required to get a passing grade in the course.

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. You get ten late days that may be used at your discretion to submit assignments after the deadline with no penalty. Both you and your partner must spend a late day available to use one. Further extensions after you have exhausted all your late days will be granted only in exceptional circumstances.

All laboratory exercises will be done—and graded—on itbdcv-lnx04p.campus.pomona.edu, a machine configured for this class. Everyone registered should have an account when classes begin. This machine is remotely accessible when connected to Pomona campus wifi (or ethernet) or when connected to the Pomona VPN. We will try to make assignments compatible with other machines, but you might encounter some problems if you are unable to connect. If this becomes a problem for you let us know.

Check-ins

There will be 4 check-ins this semester. Each check-in will be comprised of 3-4 questions about topics covered in the preceeding weeks (13 total topics).

You can improve your grade on any topic by answering a new question on that topic (the extra chance question). This extra chance question must be taken during the scheduled final exam slot (Thursday, Dec. 17 @ 2-5pm). Re-takes will not lower your grade, but lower scores may result in sad faces from your professor.

Grades

Finishing all the assignments successfully is required to pass the class. After that, grades are computed on a point basis, as follows:

Assignments: 45%
Check-ins: 45%
Participation: 10%

Academic Integrity

As part of the Pomona CS AI Policy, this class maintains the Tier 0 level of acceptable AI use. Courses in this tier do not allow the use of any AI. Disallowed uses include, but are not limited to, using generative AI tools to brainstorm ideas, find source materials, summarize ideas, create study guides, generate code snippets, images, or videos, revise your writing, or check your work. Tools that automatically flag spelling and grammatical errors as you write are allowed (for example, the spelling and grammar checkers built into Microsoft Word), but not tools that offer suggested revisions of your sentences (for example, Grammarly). If English is not your first language, please ask your instructor about whether tools for translating words or texts between languages are allowed.

The principle behind applying this AI tier is to ensure that your out-of-class help is targeted towards your learning. In general, you are to use your professor and TAs as the primary resource for out-of-class help rather than AI tools.

Accomodations

I am committed to ensuring that everyone can successfully master the material in this course. If you have a disability (for example, mental health, learning, chronic health, physical, 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.) If you have extended time or other exam-related accomodations, you should plan to take the course check-ins at the SDRC. In such cases, I will try to be available to answer any questions via slack; I encourage you to confirm my availability in advance.