CS 241: Systems Programming — Fall 2025

Instructor: Professor Stephen Checkoway stephen.checkoway@oberlin.edu
Lectures: Monday, Wednesday, Friday. 15:30–16:20 in King 237
Labs: Tuesday. 13:00–14:50 in King 201
Office Hours: Thursday 13:00–15:00 in King 231
Final presentation: Friday, December 19 at 09:00–11:00 in King 237

Course Description

This course will use Bash and the Rust programming language as tools to explore systems programming concepts. Students will be introduced to various Unix tools and shell scripting. Some Unix system programming issues will also be included. The course will require a significant amount of programming.

Assessment

Your final course grades are based on three categories.

The final project must be completed to pass the course.

Final group project

The final project is to be completed in groups of three or four. If you work alone, you will not be able to earn higher than a B on the project. Grades will be assigned on an individual basis, with individual contributions to the project factoring into the grade. You must submit a teammate assessment form before the start of presentations.

More details here.

Course Materials

Required Texts

Resources

Learning Goals

By the end of the course, you will know how to use

You will also know

Course Policies

Prerequisites

CS 151 is required. You should be comfortable with programming with higher level languages, such as Python or Java. No prior experience with Unix or Rust is expected.

Attendance Policy

You are not required to attend; however, you receive points for participation in each class period that count toward your final grade. You can miss up to 3 days without penalty. Research indicates that students who attend class are more likely to be successful. You are strongly encouraged to attend every class. Lectures are not recorded. If you are unable to attend class, you should consider asking a classmate to take notes for you.

Missed or Late Work Policy

Reading exercises are due before the class they are assigned for. You are expected to attend class having completed the readings.

Labs are due by 23:59 on the day specified on each lab page. You have 3 late days that you can use throughout the semester. Each day that a homework is late decreases the number of late days you and your partner have left. If you run out of late days, labs turned in late without prior approval will receive a score of 0. You are responsible for keeping track of your late days. There will be no exceptions to this policy without prior approval from Prof. Checkoway.

Your participation is computed using both your clicker responses and lab attendance.

Electronic Communication Policy

All electronic communication with course staff should take place on Ed unless emails are specifically requested by the staff. Course staff may, from time to time, respond to emails, but a response to one email does not guarantee a response to a second. Use Ed!

Collaboration Policy

You are allowed, and encouraged, to work in groups of size two on all labs starting with lab 2. For labs 0 and 1, you will work by yourself. For the project, you must work in groups of four. You are free to have different groups for different assignments. You are allowed to talk to anyone in the course about the assignments; however, you are not allowed to share solutions with anyone outside your group. Doing so is academic misconduct.

Academic Integrity Policy

You must adhere to the Oberlin College Academic Integrity Policy. Please familiarize yourself with the Honor Code.

Religious Holiday Observance Policy

Students wishing to be excused from class in order to observe religious holidays must follow the Oberlin College Religious Holiday Observance Policy.