CS206
Computer Systems: A Programmer’s Perspective
How programs really run on hardware: number representation and overflow, pointers, and the stack and heap — the CSAPP view every serious programmer needs.
9 modules · 45 lessons · Practice after every lesson
Syllabus
Module 1
C and the Machine Model
- Compiling and Running C Programs
- Scalar Types and Machine Widths
- Operators and Undefined Behavior
- Control Flow at Low Level
- The Preprocessor and Translation Units
Module 2
Pointers and Memory
- Addresses, Pointers, and Dereferencing
- Arrays and Pointer Arithmetic
- Strings and Byte Sequences
- Structures, Unions, and Alignment
- Const Correctness and Aliasing
Module 3
Stack, Heap, and Object Lifetime
- Stack Frames and Automatic Storage
- Dynamic Allocation and the Heap
- Lifetime, Scope, and Ownership
- Memory Leaks and Use-After-Free
- Memory Debugging Tools
Module 4
Machine-Level Programs
- Reading Compiler-Generated Assembly
- Registers and Calling Conventions
- Condition Codes and Control Flow
- Procedure Calls and Recursion
- Data Layout in Assembly
Module 5
Linking and Loading
- Symbols and Relocatable Object Files
- Static Linking
- Dynamic Linking and Shared Libraries
- Loading and Address-Space Layout
- Linker Errors and Symbol Interposition
Module 6
Exceptional Control Flow
- Exceptions and Interrupts
- Processes and Context Switching
- Process Creation and Program Replacement
- Signals and Asynchronous Events
- Nonlocal Jumps and Cleanup Hazards
Module 7
System-Level I/O
- File Descriptors and Unix I/O
- Buffered and Unbuffered I/O
- Directory and File Metadata
- Pipes and Interprocess Communication
- Robust I/O and Partial Operations
Module 8
Memory Hierarchy and Performance
- Cache Organization from a Programmer’s View
- Locality in Loops and Data Layout
- Cache-Friendly Matrix Access
- Performance Measurement and Profiling
- Optimization Without Breaking Correctness
Module 9
Concurrency and Network Programming
- Threads and Shared Memory
- Synchronization Hazards
- Sockets and Client–Server Structure
- Concurrent Servers
- Security Failures at the Systems Boundary
Start Computer Systems: A Programmer’s Perspective.
No setup, nothing to install. Try the first lessons before you sign up.