CS 341: System Programming
Fall 2026
Latest Assignments
System Project (with AI)
Concurrent Calypso
Due: 2026-11-04 23:59 · 2026-11-04 23:59
Weekly Programming Challenge (no AI)
Password Cracker
Due: Week 9 · 2026-10-21 23:59
Homework 0 - "My first grind" or "Love to live to learn to love C programming?"
Can you show me your passion for learning the basics of C? Homework 0 is available on PrairieLearn. See you in class, Monday (8/24/2026) 9am ECEB 1002 - Prof. Angrave.
Hunger
For inspiration please see this Hunger song (mp3) (lyrics and description) by Prof. Angrave
Bring Your Own Laptop!
Some students like annotate a pdf handouts during lecture but paper handouts are also provided. Bring your own Windows, Linux, or MacOSX laptop to your CS341 discussion sections because the lab will not have desktop machines. A Chromebook with Linux enabled may work but is not recommended. The recommended minimum laptop specification for CS341 is: i) A basic 10 year-old laptop if you just want to write code using VS Code locally but compile and test remotely using the CS Cloud : VS Code minimum requirements. Alternatively, to run a multi-CPU core Linux locally (e.g. by running a Linux Virtual Machine on your laptop) then you will need something newer and powerful e.g. i5 x64 4-core 8th generation (or similar) CPU, 8GB RAM (16GB recommended), 100 GB Disk Space, SSD recommended. High-end gaming laptops are not recommended because they are bulky, heavy and have poor battery life.
There is the new loaner laptop program run by the Main Library Scholarly Commons at the 3rd floor of the U of I Main Library (Room 306, ADA Map). You may borrow a laptop for up to 10 days e.g. while waiting for your laptop - just bring your physical ICARD. A typical loaner laptop is a 2020 Windows Dell Latitude 5310.
There is also a limited laptop loaner program by EngrIT for students and faculty in the Grainger College of Engineering
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 ([email protected])
Head TA: Christina Youn
Head CA: Ryan Kumar
Prof. Angrave's in-person FA26 office hours are provisionally Wednesdays 10:10am in the ECEB coffee area, and also immediately after every lecture. Other times by appointment at SC2217. Peer tutoring is announced here.
Recorded Lecture: : See Schedule
Class: ECEB 1002 MWF 9:00AM - 9:50AM
Sections: See courses.illinois.edu. Note some sections are in the DCL 2240 Test Kitchen (second floor, West end).
Getting Help
Academic
You can find a full list of times and locations on our peer tutoring calendar.
Please read our forum policy, before posting.
Grading Policy (subject to minor changes)
Final Exam: 10%.
Section Attendance: 14%.
System Projects (with AI): 18%.
Weekly Programming Assignments (no AI): 24%.
CBTF Tests (6): 24%.
Interview clinics (4): 8%.
Homework 0 (on PrairieLearn): 2% .
Course Prerequisites
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.