Courses Based on CS:APP2e
The CS:APP2e Preface
proposes 5 basic styles of systems courses
(ORG, ORG+, ICS, ICS+,
and SP) that could be taught from the book:
Chap
| Topic |
ORG |
ORG+ |
ICS |
ICS+ |
SP |
1 | Tour of systems | X | X | X | X | X |
2 | Data representation | X | X | X | X | X (d) |
3 | Machine language | X | X | X | X | X |
4 | Processor architecture | X | X | | | |
5 | Code optimization | | X | X | X | |
6 | Memory hierarchy | X (a) | X | X | X | X (a) |
7 | Linking | | | X (c) | X (c) | X |
8 | Exceptional control flow | | | X | X | X |
9 | Virtual memory | X (b) | X | X | X | X |
10 | System-level I/O | | | | X | X |
11 | Network programming | | | | X | X |
12 | Concurrent programming | | | | X | X |
Notes: (a) Hardware only, (b) No dyn. storage alloc,
(c) No dyn. linking, (d) No f.p.
Specific Examples
Here are some variants on these styles that real instructors have
developed for their classes.
- University of Nebraska, Dept. of Computer Science and Engineering,
CSCE/RAIK 284H Foundations of Computer Systems
Steve Goddard, Spring 2010 (14-week semester)
- An interesting variant of an ORG+ course that augments the usual topics
of data representation, assembly language, processor architecture, and the
memory system, with additional coverage of basic system-level programming.
To see how the student's respond to Steve's dedication to the material, check out
this picture
- Northwestern University, Dept. of Computer Science,
EECS 213: Introduction to Computer Systems,
Fabian Bustamante, Spring 2012 (10-week quarter).
- A good example of a variant of an ICS course for schools on the
quarter system. It skips coverage of code optimization, but includes
some coverage of systems programming.
- Carnegie Mellon University, School of Computer Science,
15-213/18-213: Introduction to Computer Systems,
Taught every semester (14 weeks)
- This is the ICS+ course, the primary inspiration for the CS:APP2e text.
- Carnegie Mellon University, School of Computer Science,
15-349: Introduction to Processor Design,
Randy Bryant and David O'Hallaron, Summer 2002 (3-week mini-course).
- A well-received mini-course on processor architecture that we taught
to help us debug the material in Chapter 4.
- The original course material has been updated for CS:APP2e.