2012/Schedule

From CS61
Jump to: navigation, search
Computer Science 61 and E61
Systems Programming and Machine Organization
This is the 2012 version of the course. Main site

Tentative Schedule

The schedule will remain tentative all term. If you’d like a preview of coming attractions, check the 2011 schedule.

“Scribe notes” were produced by students (or TFs), and may be incomplete or wrong (although we certainly hope they're awesome). “Thoughts” are instructors’ supplementary notes on the lecture; these will not necessarily be comprehensible on their own (they might build on, or go beyond, actual lecture material). You can view the schedule for scribe note assignments by date.

Recommended readings are generally from the textbook, CS:APP2e. The first edition often has comparable readings; we give section titles to help you match them up.

Videotaped lectures

You can also check the 2011 schedule, which has some section numbers for CS:APP1e when they don't match. (But we are rearranging the lectures this year.)

Date # Topic Recommended reading Notes
T 9/4 1 Course overview Scribe notesThoughts
R 9/6 2 Representing information 1 A Tour of Computer Systems
2.1 Information Storage
Scribe notesThoughts
T 9/11 3 Computer arithmetic 2.2 Integer Representations
2.3 Integer Arithmetic
3.2.1 Machine-Level Code
Scribe notes AScribe notes B
Computer arithmetic notes
R 9/13 4 Structured data. Memory layout 3.8 Array Allocation and Access
3.9 Heterogeneous Data Structures
In 3.8 and 3.9, skip the assembly code.
9.9 Dynamic Memory Allocation, through 9.9.4 Fragmentation
Scribe notes AScribe notes B
F 9/14 Assignment 0 due
Assignment 1 posted
T 9/18 5 Dynamic memory management. Memory errors 9.11 Common Memory-Related Bugs in C Programs Scribe notes AScribe notes B
Thoughts
R 9/20 6 Buffer overruns, Automatic memory management 9.10 Garbage Collection Scribe notes AScribe notes B
T 9/25 7 Automatic memory management 9.9 Dynamic Memory Allocation, from 9.9.5 Implementation Issues Scribe notes AScribe notes B
R 9/27 8 Machine programming 1: Arithmetic, data 3 through 3.5 Arithmetic and Logical Operations Scribe notes AScribe notes B
F 9/28 Assignment 1 due
Assignment 2 posted
T 10/2 9 Machine programming 2: Control, calling conventions 3.6–3.7 Control and Procedures Scribe notes AScribe notes B
R 10/4 10 Machine programming 3: Loops; Memory attacks 3.12 Out-of-Bounds Memory References; refresh 9.11 Scribe notes A part 1Scribe notes A part 2
T 10/9 11 Memory attacks 2; Process isolation 8.2 Processes
Scribe notes AScribe notes B
Thoughts
R 10/11 12 Process isolation; Multiprocessing 8 Exceptional Control Flow: 8.1 Exceptions
8.4 Process Control through 8.4.2
Scribe notes A — ‎Scribe notes BScribe notes B2
Thoughts
F 10/12 Assignment 2 due
T 10/16 13 Memory protection
Assignment 3 posted
9 Virtual Memory: 9.1 Physical and Virtual Addressing
9.2 Address Spaces
9.3.2 Page Tables
9.5 VM as a Tool for Memory Protection
Scribe notes A — ‎Scribe notes B
R 10/18 Midterm (in class)
T 10/23 14 Process virtual memory; Process control 9.6 Address Translation
8.2 Processes
8.4 Process Control (all)
(Additional Unix information: 8.3 System Call Error Handling
8.7 Tools for Manipulating Processes)
Scribe Notes AScribe Notes B
R 10/25 15 Virtual memory and performance 9.3 VM as a Tool for Caching
9.4 VM as a Tool for Memory Management
9.8 Memory Mapping
Scribe Notes AScribe Notes B
T 10/30 16 Caching and the memory hierarchy
Assignment 3 due
6.1 Storage technologies
6.2 Locality
6.3 The memory hierarchy
Scribe Notes A

Thoughts

R 11/1 17 Input and output 10 System I/O (but not 10.4) Scribe Notes AScribe Notes B
F 11/2 Assignment 4 posted
T 11/6 18 Caches 6.4 Cache Memories
6.5 Writing Cache-Friendly Code
6.6 Putting it together
Scribe Notes AScribe Notes B
Thoughts
R 11/8 19 Cache eviction, Processor caches N/A Scribe Notes AScribe Notes B
T 11/13 20 System optimization 5 Optimizing Program Performance, particularly 5.1-5.6, 5.13-5.14 Scribe Notes AScribe Notes B
W 11/14 Assignment 4 due
R 11/15 21 Advanced processor cache optimization N/A Scribe Notes A
T 11/20 22 Analyzing processor caches, Networking 11 Network Programming through 11.2 Scribe Notes A
Thoughts
R 11/22 Thanksgiving holiday
T 11/27 23 I/O parallelism 12 Concurrent Programming through 12.2 Scribe Notes A
R 11/29 24 Threaded parallelism 12.3 Concurrent Programming with Threads, 12.4, 12.6, 12.7 Scribe Notes AScribe Notes B
Scribe Notes C
T 12/4 25 Advanced concurrency N/A Scribe Notes AScribe Notes B