Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e)
Course Description
The ICS course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.
Lab Assignments
- Data Lab
- Bomb Lab
- Attack Lab
- Buffer Lab
- Architecture Lab
- Cache Lab
- Performance Lab
- Shell Lab
- Malloc Lab
- Proxy Lab
Lecture Notes
My own lecture notes of CS 15-213