Textbook

The textbook for the course is Computer Systems: A Programmer’s Perspective, Third Edition (also known as CS:APP3e) by Randal E. Bryant and David R. O’Hallaron. Pearson, 2015, ISBN 978-0134092669.

The textbook is long, but comprehensive, and past students have found it very useful as reference during the class. It is strongly recommended that you obtain a copy of this textbook. It may be purchased at the Harvard Coop, or from one of many online bookstores.

We do not recommend using the 2nd edition of CS:APP, because that edition is based on a different computer architecture (32-bit x86, not 64-bit x86-64). International editions of CS:APP3e are likely to be OK.

The rest of this page lists specific textbook sections relevant for the units of our class.

Unit 1: Data representation

Other topics

Unit 2: Assembly & machine programming

Unit 3: Kernel

Unit 4: Storage

Unit 5: Process control

Unit 6: Synchronization

The textbook material on synchronization is worth scanning, but it is not as strong as the other units.