Ancient CS 61 Content Warning!!!!!1!!!
This is not the current version of the class.
This site was automatically translated from a wiki. The translation may have introduced mistakes (and the content might have been wrong to begin with).

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