Examples of Courses Based on
Computer Systems: A Programmer's Perspective (CS:APP)

Randal E. Bryant and David R. O'Hallaron

CS:APP Home Page

The CS:APP Preface proposes 5 basic styles of systems courses (ORG, ORG+, ICS, ICS+, and SP) that could be taught from the book:

ChapTopicORGORG+ICSICS+SP
1Tour of systemsXXXXX
2Data representationXXXXx (d)
3Machine languageXXXXX
4Processor architectureXX
5Code optimizationXXX
6Memory hierarchyx (a)XXXx (a)
7Linkingx (c)x (c)X
8Exceptional control flowXXX
9Performance measurementXX
10Virtual memoryx (b)XXXX
11System-level I/OXX
12Network programmingXX
13Concurrent programming XX
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.

Last modified: Sat Dec 8 00:39:23 EST 2007