CS 240 Introduction to Computer Systems, Fall 2015

Syllabus

Staff / Hours

Instructor: Ben Wood, SCI E128 or micro-focus, office hours / contact here
Lab Instructor: Jean Herbst, SCI E129, office hours / contact here
Tutor: Amy Qiu, hours TBD
Tutor: Meera Hejmadi, hours TBD

Schedule (jump to now)

Relevant reading is listed next to each lecture topic.
CSAPP: Computer Systems: A Programmer’s Perspective, 2/E
K&R: The C Programming Language, 2nd edition
SCO: Structured Computer Organization

TueWedThuFri
01 September
  • introduction (slides)
  • themes (slides; skim CSAPP 1.0 - 1.7, 1.9.2 - 1.10)
  • binary data representation (slides; CSAPP 2.0 - 2.1.3)
  • Boolean and bitwise operations
  • digital logic gates (slides; PH C.1-C.2)
  • Assign: Assignment Zero
  • Assign: Bit Transfiguration
02 September
  • environment and tools
  • first charms in C
  • digital logic gates
03 September04 September
  • Boolean and bitwise operations
  • digital logic gates (slides; PH C.1-C.2)
  • Due: Assignment Zero
08 September
  • integer representation (slides; CSAPP 2.2 - 2.2.3, 2.3. Skim 2.2.4 - 2.2.8)
  • Assign: Integer Arithmancy
09 September
  • digital logic gates
10 September11 September
  • Checkpoint: Bit Transfiguration
  • floating point (skim CSAPP 2.4)
  • MUX, adder, ALU (CSAPP 2.3, 4.2.0 - 4.2.3, PH C.3, C.5: stop at middle of page C-31; slides; slides)
15 September
  • Due: Integer Arithmancy
  • MUX, adder, ALU (CSAPP 2.3, 4.2.0 - 4.2.3, PH C.3, C.5: stop at middle of page C-31; slides; slides)
16 September
  • ALU construction
17 September
  • Due: Bit Transfiguration
18 September
22 September
  • memory and addressing (slides; CSAPP 2.1.4 - 2.1.6)
  • memory devices (slides; PH C.9: pages 58-67)
23 September
  • finite state machines
  • memory devices
24 September
  • Due: HW
25 September
29 September
  • C, pointers, arrays (slides; K&R 5; CSAPP 3.10)
  • Assign: Pointer Potions
30 September
  • processor datapath
01 October02 October
  • PADDING
06 October
  • x86 basics (CSAPP 3.4 - 3.5; slides)
07 October
  • computer teardown
08 October
  • Due: Pointer Potions
09 October
  • x86 control flow (CSAPP 3.6; slides)
13 October Fall Break14 October
  • TBD
15 October16 October
  • x86 control flow (CSAPP 3.6; slides)
  • x86/linux procedures and stacks (CSAPP 3.7; slides)
20 October
  • x86 control flow (CSAPP 3.6; slides)
  • x86/linux procedures and stacks (CSAPP 3.7; slides)
  • Assign: Ancient x86 Runes
21 October
  • disassembly and reverse engineering
22 October23 October
  • x86/linux procedures and stacks (CSAPP 3.7; slides)
27 October Tanner Conference28 October
  • disassembly and reverse engineering
29 October
  • Checkpoint: Ancient x86 Runes
30 October
  • data structures (CSAPP 3.8 - 3.11)
03 November
  • Due: Ancient x86 Runes
  • buffer overrun exploits (CSAPP 3.12; slides)
  • 2D arrays (slides; CSAPP 3.8)
  • Assign: Dark Buffer Arts
04 November
  • TBD
05 November06 November
  • memory hierarchy and cache (slides; CSAPP 6.2-6.5)
10 November
  • memory hierarchy and cache (slides; CSAPP 6.2-6.5)
11 November
  • memory hierarchy and cache
12 November13 November
  • OS, process, exceptional control flow (slides; CSAPP 8.2, 8.1)
  • process management (slides; CSAPP 8.4)
17 November
  • shells and signals (slides; CSAPP 8.5 as needed)
  • Assign: Shell Spells
18 November
  • process management
19 November20 November
  • virtual memory (CSAPP 9.0 - 9.7; slides)
24 November
  • virtual memory (CSAPP 9.0 - 9.7; slides)
25 November Thanksgiving Break26 November Thanksgiving Break27 November Thanksgiving Break
01 December
  • dynamic memory allocation (slides; CSAPP 9.9 - 9.12)
  • Assign: Remembrallocator
02 December
  • Pensieve virtual memory
  • allocator
03 December04 December
  • garbage collection
  • compilers and runtime systems
08 December 09 December Reading Period10 December Reading Period11 December Reading Period