COMP 40 Syllabus

Note: This syllabus is subject to change without notice at any time. Expect it to change approximately weekly throughout the semester. Scheduling is by ``units,'' not weeks. Units and weeks may not correspond exactly. Check the dates carefully. If you want to see something organized more by date, look at the schedule.
intro (9/9-9/11)
Introduction: Old wine in new bottles
Read:
Design (also in PDF) due on 9/14.
Homework (also in PDF) due on 9/17.
iii (9/14-9/28)
Interfaces, implementations, and images
Read:
Design (also in PDF) due on 9/24.
Homework (also in PDF) due on 9/30.
locality (9/30-10/14)
Machine storage and locality
Read:
  • Bryant and O'Hallaron: Chapter 1 (skim)
  • Bryant and O'Hallaron, Section 1.7 (read)
  • Bryant and O'Hallaron, Sections 6.2 to 6.5

Design (also in PDF) due on 10/8.
Homework (also in PDF) due on 10/13.
arith (10/16-10/26)
Data! Bits, bytes, words, and arithmetic
Read: Bryant and O'Hallaron, Sections 2.1–2.4
Lecture notes are not yet available.
Design (also in PDF) due on 10/21.
Homework (also in PDF) due on 10/25.
Midterm exam in class (10/28)
Interfaces and implementations; caches and locality; machine arithmetic.The midterm will focus on material from the first three assignments and on material from in-class exercises. I will also expect you to have some grasp of floating-point arithmetic.You will be expected to read and write C code, although if you can't remember some syntax, you can make it up and explain its meaning.
code (11/2-11/9)
From C code to machine instructions
Read:
  • Bryant and O'Hallaron, new material in Sections 3.1–3.7 (but be aware this material uses the wrong machine for examples)
  • Bryant and O'Hallaron AMD64 supplement
  • Bryant and O'Hallaron, material for review in Sections 3.8–3.11

Homework (also in PDF) due on 11/10.
um (11/11-11/18)
Machine code: Virtual Machines
Design (also in PDF) due on 11/17.
Homework (also in PDF) due on 11/19.
profile (11/20-11/30)
Code IV: Profiling and Code Tuning
Read:
  • Bryant and O'Hallaron, sections of Chapter 5 (for details, see homework)
  • Documentation for valgrind and kcachegrind (for reference)

Lecture notes are not yet available.
Homework (also in PDF) due on 12/3.
asm (12/2-12/11)
From assembly code to machine code
Read:
Homework planned to be due on 12/10.
Final exam (12/16)
12:00 PM, Halligan 111A