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/7-9/9)
- Introduction: Software Design with Interfaces in C
Read:
Notes for all lectures appear on one large page.
Design (also in PDF) due on 9/12.
Homework (also in PDF) due on 9/15.
- iii (9/12-9/23)
- Interfaces, implementations, and images
Read:
Design (also in PDF) due on 9/20.
Homework (also in PDF) due on 9/25.
- locality (9/26-10/3)
- 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/2.
Homework (also in PDF) due on 10/6.
- arith (10/5-10/17)
- Data! Bits, bytes, words, and arithmetic
Read: Bryant and O'Hallaron, Sections 2.1–2.4
Notes for all lectures appear on one large page.
Design (also in PDF) due on 10/12.
Homework (also in PDF) due on 10/16.
- Midterm exam in class (10/19)
- 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 (10/21-10/28)
- From C code to machine instructions
Read:
- If you have the second (new) edition of Bryant and O'Hallaron:
- New material in Sections 3.1–3.7 (but be aware this material uses the wrong machine for examples)
- Section 3.13 on the AMD64
- Material for review in Sections 3.8–3.10
- If you have the first (old) edition of Bryant and O'Hallaron:
- New material in Sections 3.1–3.7 (but be aware this material uses the wrong machine for examples)
- The AMD64 supplement
- Material for review in Sections 3.8–3.11
Homework (also in PDF) due on 11/1.
- um (10/31-11/9)
- Machine code: Virtual Machines
Design (also in PDF) due on 11/3.
Homework (also in PDF) due on 11/13.
- profile (11/14-11/21)
- Profiling and Code Tuning
Read:
- Bryant and O'Hallaron, sections of Chapter 5 (for details, see homework)
- Documentation for valgrind and kcachegrind (for reference)
Notes for all lectures appear on one large page.
Homework (also in PDF) due on 11/22.
- asm (11/28-12/2)
- From assembly code to machine code
Read:
Homework (also in PDF) due on 12/4.
- asmcoding (12/5-12/9)
- Programming in assembly code
Read: Programming the Universal Machine (also in PDF)
Design (also in PDF) due on 12/6.
Homework (also in PDF) due on 12/11.
- review (12/12)
- Final-exam review
- Final exam (12/16)
- 12:00 PM, Halligan 111A