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 take place on Mondays and Wednesdays 11am-12:15pm in Edmunds 114. See the schedule for details.
Labs will be Wednesdays 7-8:15pm in Edmunds 219/229.
Eleanor Birrell eleanor.birrell@pomona.edu Edmunds 221 |
Office hours: Tuesdays 1-2:30pm and Wednesdays 5-6:30pm. I also have a 105 mentor session Tuesdays 7-9pm.
I am generally in my office most afternoons, so feel free to drop by with quick questions or just to say hi. The best way to contact me is by email. I try to respond to all messages within 24 hours. |
Andy Han | Mentor Hours: Mondays 3-5pm | |
Austin Zang | Mentor Hours: Tuesdays 7-9pm | |
Chuck Rak | Mentor Hours: Mondays 6-8pm | |
Christy Marchese | Mentor Hours: Mondays 8-10pm | |
Josh Yum | Mentor Hours: Thursdays 6-8pm | |
Zach Hinz | Mentor Hours: Saturdays 10am-noon and Sundays 1-3pm |
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 on Wednesdays during lab and
will be due the following Tuesday at 11:59pm PT. 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 accessble when connected to Pomona campus
wifi (or ethernet) or when connected to the Pomona VPN.
I 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 me know, and I will make
accomodations as necessary.
Finishing all the assignments successfully is required to
pass the class. After that, grades are computed on a point basis, as
follows:
Assignments: 50%
Check-ins: 45%
Participation: 5%
In general, collaboration is encouraged in this course. This means
that you may discuss approaches to solving problems with anyone in
this class, including students, faculty, and TAs. As specified in the
department policy, you may help, or receive help, in using systems
and tools, in debugging code, and in working with high-level design
issues. You may use the internet to look up error codes or other
issues you encounter while debugging, but searching for solutions
online, seeing help from
people not in the class, or using ChatGPT to generate solutions
is forbidden. The actual solutions to the laboratory
exercises and the code you submit must be your own and your
partner’s. Except for material from the textbook or lecture, you may
not copy, retype, view, or share a copy of any file. If you have any
questions about what is appropriate or inappropriate collaboration,
please speak with the instructor. When in doubt, credit your sources.
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.
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.)