CS 241: System Programming

Spring 2022

Latest Assignments


Nonstop Networking

Due: Week 15 · 2022-04-18 23:59


Lovable Linux

Due: Week 16 · 2022-05-06 23:59

Course Description

This course is designed to challenge you as a programmer and new computer scientist at the University of Illinois Urbana-Champaign. Rather than the sand-boxed, contained, and simple problems of your previous courses that used significant scaffolding and pre-built libraries, you will be interacting with a much more complex environment: the entire system and even computing networks.

You will need to fully understand how memory is allocated, used, and re-used within a process.

You will also need to know how input and output can be optionally buffered between processes and files.

In short, it is time to remove the training wheels off and instead fling open the doors, welcoming you to the big, wide world of computing.

Oh, and did we mention the challenge of concurrency and solving asynchronous problems, so that your program can take advantage of the multi-core CPU inside each machine?

Time and Location

Instructor: Lawrence Angrave (angrave@illinois.edu)

Peer tutoring and Office hours will be announced in week 2: here. Prof. Angrave's in-person office hour is TBA in SC2217, and also immediately after every lecture. Other times by appointment.

Recorded Lecture: : See Schedule

Location: 0027/1025 Campus Instructional Facility (from Mon 24th; see COVID policy)

Getting Help


You can find a full list of times and locations on our peer tutoring calendar.

Ed Forum

Please read our forum policy, before posting.

Grading Policy (subject to minor changes)

Machine Problems: 45% (weekly)

Labs: 17% (weekly, lowest lab dropped)

Quizzes: 15% (7 quizzes, multiple re-takes, no drops). At PrairieLearn; Available until Reading Day.

Final Exam: 23% ; however upto 3% can be pre-credited based on physical lab attendance i.e. the fractional contribution of the final exam can be reduced.

Course Prerequisites

CS 225: Data Structures

CS 233: Computer Architecture

Covid-19 and CS241

We will follow the UIUC COVID-19 recommendations. For the on-campus instruction please see the following instructions. This course is designed to help you succeed whether you attend in person or learn virtually. If you prefer or are unable to attend in person you may attend online and use online resources. Zoom links for the sections will be posted in Ed.

This course is optimized for on-campus in-person students. Though it will be possible to earn an A in CS241 without physically attending not all points and all experiences may be available online.

The first week of class will be online only. Where possible, alternative online activities will be offered for all weeks via Zoom and other online formats (links will be posted in the class forum). Equivalent lecture content is available on ClassTranscribe and as the course book. A fitted, high quality 3-ply mask or (K)N95 mask is recommended for in-person activities.

Mental Health, anti-racism and inclusivity, and CS Cares

Please see our important course statements on anti-racism and inclusivity, and information about CS Cares.