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).

Schedule

The schedule will remain tentative all term.

Recommended readings are generally from the textbook, CS:APP3e. The second edition often has comparable readings; if two different sections are listed, the first is for second edition and the second is for third edition.

Videotaped lectures

Lecture by Lecture Details

<!--
      

--!>

Week

Date

Topic

Pre-Class Prep

Readings

1

Thu 9/3

Course Overview

None

None

2

           Section Notes

Tu 9/8

Unit 1: Fundamentals Exploring Memory

           `<a href = "https://mix.office.com/watch/12u3c9podjlau">`Administrivia`</a>` 
           (`<a href = "/wiki/images/3/38/Administrivia.pdf">`PDF`</a>`) (8:52)

            Course Mechanics             Abstractions

          (`<a href = "/wiki/images/5/55/Abstractions.pdf">`PDF`</a>`) (33:27)

            Web Work

           (`<a href = "/wiki/images/4/40/9_8_15-solutions.pdf">`Solutions`</a>`)
       
               1. A Tour of Computer Systems (1.1-1.10)
                3.11 Using GDB
       

Thu 9/10

Data Representation

               `<a href = "https://mix.office.com/watch/1ue5bhlr3nfzk">`Hexadecimal review`</a>` (`<a href = "/cs61wiki/images/e/e2/Hex.pdf">`PDF`</a>`) (15:27)
                `<a href = "https://mix.office.com/watch/19ykf7av27eiw">`Data Representation`</a>` (`<A href = "/cs61wiki/images/2/29/Representation.pdf">`PDF`</a>`) (23:18)

                Web Work

               (`<a href = "/cs61wiki/images/3/3f/Preclass-9-15-15.pdf">`Solutions`</a>`)
       
               2.1 Information Storage (2.1-2.1.6)
                2.2 Integer Representation
                3.8 Array Allocation and Access (skip 3.8.5)
                3.9 Heterogeneous Data Structures
                3.10/3.10.1 Understanding Pointers
                (Skip assembly code)
       

Fri 9/11

A1 Intermediate Checkin

3

           Section Notes

       

Tu 9/15

                Pointers and Strings

       

          Signed and Unisigned Arithmetic

          (`<a href = "/cs61wiki/images/e/ed/Arithmetic.pdf">`PDF`</a>`) (14:16)

          Alignment and Fragmentation

          (`<a href = "/cs61wiki/images/9/9e/Dynamic.pdf">`PDF`</a>`) (15:08)
           `<a href = "https://docs.google.com/forms/d/1vqEhH4A9hCAtjt7cVUYwp8cfHrtVpLD3qnZfW4i1vRg/viewform">`Web Work`</a>` (`<a href = "/cs61wiki/images/9/9a/9_15_15_solutions.pdf">`Solutions`</a>`)
       
           9.9 Dynamic Memory Allocation (9.9.1-9.9.4)
            9.11 Common Memory-Related Bugs in C
            (Skip Assembly)
       

Thu 9/17

A Simple Allocator

Garbage Collection (PDF) (22:05) Pre-class survey

               (`<a href = "/cs61wiki/images/2/2a/9_17_15-solutions.pdf">`Solutions`</a>`)
       
               9.9.5-9.9.8 Implementation issues
                9.10 Garbage Collection
       

Fri 9/18

A1 Due

4 Section Notes

Tu 9/22

Unit II: Machine Programming From C to Assembly and back

           `<a href ="https://mix.office.com/watch/1t0h04fwaaa9t">` Introduction to Assembly`</a>` (`<a href="/cs61wiki/images/0/05/Asm-intro.pdf">`PDF`</a>`) (13:10) 
            `<a href = "https://mix.office.com/watch/1fa23jmsx7ufw">`Arithmetic and Logical Operators`</a>` (`<a href = "/cs61wiki/images/a/a1/Asm-operators.pdf">`PDF`</a>`) (12:40)

            Web Work

           (`<a href = "/cs61wiki/images/c/c5/9_22_15-solutions.pdf">`Solutions`</a>`)
       

               See Note below

                3-3.5 Arithmetic and Logical Operations
       

Thu 9/24

Fun with Control Flow

Addressing Modes Control Flow

Addressing Modes

               (`<a href = "/cs61wiki/images/a/ad/Asm-addressing.pdf">`PDF`</a>`) (9:18)

             Control Flow

               (`<a href = "/cs61wiki/images/9/91/Asm-control.pdf">`PDF`</a>`) (19:54)

             Web Work

            (`<a href = "/cs61wiki/images/5/5a/9_24_15-solutions.pdf">`Solutions`</a>`)
       
               3.6-3.7 Control and Procedures
       

5 Section Notes

Tu 9/29

          Assembly Roulette

       

           Calling Conventions

           (`<a href = "/cs61wiki/images/b/bd/Asm-call.pdf">`PDF`</a>`) (20:11) 

             Web Work

           (`<a href = "/cs61wiki/images/c/c5/9_29_15-solutions.pdf">`Solutions`</a>`)
       
          3.12/3.10.3 Out of Bounds Memory
       

Thu 10/1

Unit III: The Memory Hierarchy Go Fast/Go Slow

               `<a href ="https://mix.office.com/watch/4ihl8cho7xnh">`Buffer Overflows`</a>`(`<a href="/cs61wiki/images/1/18/Buffer-overflow.pdf">`PDF`</a>`) (24:40)
                `<a href = "https://mix.office.com/watch/1wbbu07yuggh4">`Architecture and Caching`</a>` (`<a href="/cs61wiki/images/2/28/Architecture.pdf">`PDF`</a>`) (19:24) 

                Web Work

               (`<a href = "/cs61wiki/images/8/80/10_1_15-solutions.pdf">`Solutions`</a>`)
       
               6.1 Storage Technologies
                6.2 Locality
                6.3 The memory hierarchy
       

Fri 10/2

A2 Due

6 Section Notes

Tu 10/6

               Building a Simple Cache

       
           `<a href = "https://mix.office.com/watch/1oga2tvehka0m">`Cache Details`</a>` 
           (`<a href = "/cs61wiki/images/8/8c/Caching.pdf">`PDF`</a>`) (32:15) 

            Web Work

           (`<a href = "/cs61wiki/images/e/eb/10_6_15-solutions.pdf">`Solutions`</a>`)
       
               10 System I/O (skip 10.4)
       

Thu 10/8

Building a Simple Cache (cont)

               Replacement/Eviction Policies

               (`<a href = "/cs61wiki/images/c/cb/Replacement.pdf">`PDF`</a>`) (14:04)

                Web Work

               (`<a href = "/cs61wiki/images/3/33/10_8_15-solutions.pdf">`Solutions`</a>`)
               6.4 Cache Memories
                6.5 Writing Cache Friendly Code
                6.6 Putting it Together
       

Fri 10/9

A3 Intermediate Checkin

7 Section Notes

Tu 10/13

Matrix Multiply: HW Cache Effectiveness

mmap

             (`<a href ="/cs61wiki/images/6/6f/Mmap.pdf">`PDF`</a>`) (18:20)

              Web Work

             (`<a href = "/cs61wiki/images/0/0c/10_13_15-solutions.pdf">`Solutions`</a>`)
      

None

Th 10/15

               Unit IV: Process Management

                Baby Shell

               Baby Shell

               Fork and Exec

               (`<a href = "/cs61wiki/images/3/3f/Fork-exec.pdf">`PDF`</a>`) (25:08)

                Web Work

               (`<a href = "/cs61wiki/images/9/9d/10_15_15-solutions.pdf">`Solutions`</a>`)
       
               8.2 Processes
                8.4 Process Control
       

Fri 10/16

A3 Due

8 Section Notes

Tu 10/20

               Midterm review

       
               Midterm review

                Web Work

       

Thu 10/22

Midterm Exam

        (Solutions)           

 (Extension: 7:00 PM - 8:30, Maxwell Dworkin 221, 33 Oxford Street Cambridge)

9 Section Notes

Tu 10/27

Pipes and Redirection

               `<a href = "https://mix.office.com/watch/2x650fqml0z2">`Pipes`</a>` (`<a href = "/cs61wiki/images/4/4f/Pipes.pdf">`PDF`</a>`) (22:06)

                Web Work

              (`<a href = "/cs61wiki/images/8/8e/10-27-15-solutions.pdf">`Solutions`</a>`)
       
               8.1 Exceptions
                8.3 System Call Error Handling
                8.5 Signals
      

Thu 10/29

               Signals                 Process Groups

       

               Read This article

                `<a href = "https://mix.office.com/watch/asxtw3dsaqrj">`Signals`</a>` (`<a href = "/cs61wiki/images/d/d4/Signals.pdf">`PDF`</a>`) (24:40) 
                `<a href = "https://mix.office.com/watch/oosq2qnx6bxy">`Waiting`</a>` (`<a href = "/cs61wiki/images/5/5b/Waiting.pdf">`PDF`</a>`) (11:04)

                Web Work

               (`<a href = "/cs61wiki/images/3/37/10_29_15-solutions.pdf">`Solutions)
       

None

Fri 10/30

A4 Intermediate Checkin

10 Section Notes

Tu 11/3

               Midterm Solution Discussion
                A4 Mega Office Hours
       

               Synchronizing processes

               (`<a href = "/cs61wiki/images/1/18/Select.pdf">`PDF`</a>`) (20:43)

                Synchronization overview

              (`<a href = "/cs61wiki/images/c/c6/Synch-overview.pdf">`PDF`</a>`) (14:53)
               Web Work delayed until Thursday since these went up so late -- apologies -- awful Internet access!
       
               12.1 Concurrent Programming with Processes
                12.2 Concurrent Programming with I/O Multiplexing
       

Thu 11/5

Programming with pthreads

             Synchronization Primitives

             (`<a href = "/cs61wiki/images/6/67/Synch-primitives.pdf">`PDF`</a>`) (17:26)

              Threads and Pthreads

             (`<a href = "/cs61wiki/images/3/31/Threads.pdf">`PDF`</a>`) (12:12) 

              Web Work

             (`<a href = "/cs61wiki/images/0/0f/11_5_15-solutions.pdf">`Solutions`</a>`)
       
               12.3 Concurrent Programming with Threads
                12.4 Shared Variables in Threaded Programs
                12.5 Synchronizing Threads with Semaphores
                12.6 Using Threads for Parallelism
       

Fri 11/6

A4 Due

11

            Section Notes

       

Tu 11/10

More synchronization practice

                `<a href = "https://mix.office.com/watch/1gled1viz34rl">`Building and Programming with Semaphores`</a>` 
                (`<a href = "/cs61wiki/images/4/4f/Semaphores.pdf">`PDF`</a>`) (26:52)

                 Web Work

                (`<a href = "/cs61wiki/images/e/e7/11_10_15-solutions.pdf">`Solutions`</a>`)
       
               None
       

Thu 11/12

Solving Classic Synchronization Problems

Dobby the Elf (PDF) (10:12) No Web Work!

               None
       

12

            Section Notes

       

Tu 11/17

Unit 6: Virtual memory

                VM Overview

                (`<a href = "/cs61wiki/images/b/b6/Vm-concepts.pdf">`PDF`</a>`) (12:52)

                 x86 VM

               (`<a href = "/cs61wiki/images/b/bf/Vm-x86.pdf">`PDF`</a>`) (26:45)

                 Web Work

               (Solutions `<a href = "/cs61wiki/images/f/fc/11-17-15-12-solutions.pdf">`pp12`</a>` `<a href = "/cs61wiki/images/7/73/11-17-15-34-solution.pdf">`pp34`</a>`)
       
               9.1 Physical and Virtual Addressing
                9.2 Address Spaces
                9.3 VM as a tool for caching
        

Thu 11/19

Meet a Weensy OS (but not the Weensy OS)

              `<a href = "https://mix.office.com/watch/pfx56byheins">`VM Features`</a>` 
              (`<a href = "/cs61wiki/images/3/33/Vm-tricks.pdf">`PDF`</a>`) (28:00)

               Pre-class Work

              (`<a href = "/cs61wiki/images/5/57/11-19-15-solutions.pdf">`PDF`</a>`)
       
               9.7: The Intel Core i7/Linux Memory System
       

Fri 11/20

A5 Due

13

Tu 11/24

Weensy OS

        Kernel Programming/Introduction to Weensy OS

        (`<a href = "/cs61wiki/images/6/6e/Kernel.pdf">`PDF`</a>`) (36:44)

         Pre-class work

        (`<a href = "/cs61wiki/images/8/85/11_24_15-solutions.pdf">`Solutions`</a>`)
       

Read Assignment 6.

Thu 11/26

No class

14

Tu 12/1

Building a Network Server (1)

           Building a networked server

           (`<a href = "/cs61wiki/images/0/03/Network.pdf">`PDF`</a>`)  (31:36)

            Pre Class Work

           (`<a href = "/cs61wiki/images/2/2a/12_1_15-solutions.pdf">`Solutions`</a>`)
       
               11.1 Client/Server Programming
                11.2 Networks
       

Thu 12/3

Building a Network Server (2)

NONE!

               11.4 The Sockets Interface
                11.5 Web Services
                11.6 Putting it Together (The TINY Web Server)
       

15

Tue 12/8

A6 Due

Sat 12/12

Final Exam: 9:00 AM - Noon Lowell Lecture Hall (Both College and Extension) 17 Kirkland Street. (Solutions)

NOTE: The 3rd edition of the text book presents assembly language on a 64 bit machine, while the 2nd edition presents it on a 32 bit machine. Our appliance is a 32-bit machine and we will be using that for all our assembly language exercises (and the problem set). In general, the information is easily transferable, but everywhere that the 3rd edition talks about quad words (e.g., movq), we will be talking about longs (e.g., movl).

Calendar