CS 4414/5416
Systems Programming (in Rust!)
Lecture: Baker Laboratory 200, TR 2:55-4:10 PM
Discussion 1: Statler Hall 185, F 2:55-4:10 PM
Discussion 2: CIS 142, F 8:40-9:55 AM
Prof: David Bindel
(bindel@cornell.edu)
OH: Thu 1:30-2:30, Fri 1-2, or by appt in CIS 487
News
2026-08-20: If you are having trouble adding yourself to the waitlist, first check the FAQ, and if you are still having trouble file a ticket.
2026-08-20: There was an issue with the waitlist system that has been resolved. If you failed in earlier attempts to enroll or add yourself to the waitlist (before around noon on 8/20), please try again.
2026-08-18: I have added a page to address some Frequently Asked Questions
2026-08-11: Welcome to CS 4414/5416!
Older news »Overview
CS 4414 (co-meets with CS 5416) is a course in systems programming. We assume you are coming to the class with experience in the C programming language and some understanding of computer organization (at the level of CS 3410, and want a deeper understanding of how high-performance low-level computing systems are built. Our objectives are:
- Program in Rust, and explain how the main Rust abstractions are implemented.
- Model and profile program performance, analyzing the impact of data structure layout, algorithm selection, and implementation choices.
- Describe standard Unix system abstractions and use them in applications.
- Write concurrent programs, reasoning about correctness issues (like deadlock) and performance issues (like contention).
- Write asynchronous programs and explain how the asynchronous programming abstractions are implemented.
Along the way, you will get plenty of experience working in a Linux environment.
See the syllabus for more information on course logistics.