|
The CS:APP 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 | Performance measurement | | | | X | X |
| 10 | Virtual memory | x (b) | X | X | X | X |
| 11 | System-level I/O | | | | X | X |
| 12 | Network programming | | | | X | X |
| 13 | Concurrent programming | | | | X | X |
Notes: (a) Hardware only, (b) No dyn. storage alloc,
(c) No dyn. linking, (d) No f.p.
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 230J: Computer Organization,
Steve Goddard, Spring 2004 (14-week semester)
- An interesting variant of the 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.
- College of William & Mary, Dept. of Computer Science,
CS 304-01: Computer Organization,
Bill Bynum, Spring 2004 (14-week semester).
- A nice example of the the ICS course.
- Northwestern University, Dept. of Computer Science,
CS 213: Introduction to Computer Systems,
Peter Dinda, Spring 2005 (10-week quarter).
- A good example of the ICS course for schools on the quarter system.
Skips coverage of code optimization.
- Carnegie Mellon University, School of Computer Science,
15-213: Introduction to Computer Systems,
Randy Bryant and David O'Hallaron, Fall 2002 (14-week semester).
- This is the ICS+ course, the primary inspiration for the CS:APP 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.
|