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
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.