15-213 Introduction to Computer Systems
Website
- Fall 2019 (latest) course website slides ✅
- Fall 2017 course website slides ✅ | videos ✅
- Fall 2015 course website videos slides ✅ | videos ✅
- CS:APP Book website assignments ✅
Overview
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.
Prerequisite: CS106B
Schedule (Fall 2017)
- Overview pptx pdf code video pdf tar
- Bits, Bytes, & Integers I pptx pdf video
- Bits, Bytes, & Integers II pptx pdf code video
- Floating Point pptx pdf video
- Machine Prog: Basics pptx pdf video
- Machine Prog: Control pptx pdf video
- Machine Prog: Procedures pptx pdf video
- Machine Prog: Data pptx pdf video
- Machine Prog: Advanced pptx pdf code video-partA video-partB
- Code Optimization pptx pdf video
- The Memory Hierarchy pptx pdf video
- Cache Memories pptx pdf video
- Linking pptx pdf video code
- ECF: Exceptions & Processes pptx pdf video code
- 7pm - 9pm Exam Review in Rashid Auditorium stack-cache float assembly
- ECF: Signals & Nonlocal Jumps pptx pdf video code
- System Level I/O pptx pdf video code
- Virtual Memory: Concepts pptx pdf video
- Virtual Memory: Systems pptx pdf video
- Dynamic Memory Allocation: Basic pptx pdf video
- Dynamic Memory Allocation: Advanced pptx pdf video
- 7pm - 9pm Malloc Bootcamp in Rashid Auditorium pdf video
- Network Programming pptx pdf video code
- Network Programming pptx pdf video code
- Concurrent programming pptx pdf video code
- Synchronization: Basic pptx pdf video code
- Synchronization: Advanced pptx pdf video code
- Thread-Level Parallelism pptx pdf video code
- Future of Computing I pptx pdf video
- Future of Computing II pptx pdf video
- 7pm - 9pm Final Review in Rashid Auditorium pdf pptx thread-sync virt-mem io-processes malloc signals
Lab
From Labs for self-study students (without solutions) on CS:APP3e Student Site
- Data Lab handout starter code
- Bomb Lab handout starter code
- Attack Lab handout starter code
- Cache Lab handout starter code
- Shell Lab handout starter code
- Malloc Lab handout starter code
- Proxy Lab handout starter code
There are some other labs available (Architecture Lab, Performance Lab) on CS:App3e Student Site, but those labs are not included in 15-213's course schedule. You can try these if you are interested.