CSCI 237

Computer Organization

Home | Schedule | Assignments | Links | Slack | Williams CS

Course Schedule

The table below lists the topics we will discuss and the readings associated with each topic. This schedule represents our goals for this semester and is based on our previous experiences exploring this material at Williams—it is tentative: we may get ahead or behind as the semester progresses. The calendar will be updated to reflect any shift in topics or readings, so check back regularly.

Assigned readings should ideally be completed before coming to class.

Some of these resources will only be accessible from within the campus network. If you are off campus, please use the proxy server or connect to the campus VPN.

Slides and course materials are to help you with the course. Please do not post them publicly.

Book references:

Date Topic Reading(s) Handout(s)
Fr: 09/06 Course overview, C functions and printing Syllabus, Coding Standards, K&R Ch. 1 (as a reference), CSAPP Ch 1.1-1.4 [slides]
Mo: 09/09 C basics K&R Ch. 2&3 (as a reference) [slides]
We: 09/11 C basics CSAPP 2.1 [slides]
Fri: 09/13 Binary, Binary representation, Hexadecimal representation, bit/logic operators CSAPP 2.2 [slides]
Mo: 09/16 Twos complement, converting between signed/unsigned, casting, truncation CSAPP 2.2 [slides]
We: 09/18 Pointers and structs CSAPP 2.3, K&R 4-6 (as a reference) [slides]
Fr: 09/20 Arithmetic operations, memory layout and C references CSAPP 2.3, 2.1.3-2.1.4 [slides]
Mo: 09/23 Fractional numbers, floating point CSAPP 2.4-2.5 [slides]
We: 09/25 Floating point CSAPP 2.4-2.5 [slides]
Fr: 09/27 Floating point [slides]
Mo: 09/30 Intro to Intel, ISA, virtual address spaces, memory addressing modes, and dynamic memory allocation CSAPP 3.1-3.4 [slides]
We: 10/02 C Dynamic memory allocation, Addressing modes CSAPP 3.1-3.4, K&R 7 [slides]
Fr: 10/04 Arithmetic and logic instructions, control instructions CSAPP 3.4-3.5, K&R 7 [slides]
Mo: 10/07 Control instructions (cont.), loops CSAPP 3.4-3.5 [slides]
We: 10/09 Loops and switches CSAPP 3.6-3.7 [slides]
Fr: 10/11 Mountain Day!
Mo: 10/14 Reading Period
We: 10/16 Switches and procedures CSAPP 3.7-3.8 [slides]
Fr: 10/18 Procedures and stack space, register conventions CSAPP 3.8 [slides]
Mo: 10/21 Recursion and memory layout of arrays CSAPP 3.8, 3.10.4 (stack smashing for bomb lab) [slides]
We: 10/23 Arrays and structs CSAPP 4.1-4.2 [slides]
Wednesday, October 23, in lab Midterm
Fr: 10/25 Y86-64, Y86-64 Encodings and Compiling, RISC vs. CISC CSAPP 4.1-4.2 slides
Mo: 10/28 Logic gates CSAPP 4.2-4.3 [slides]
We: 10/30 Storage circuits and sequential datapath CSAPP 4.2-4.3 [slides]
Fr: 11/01 Sequential datapath and pipelining concepts CSAPP 4.3 [slides]
Mo: 11/04 Y86-64 pipelined datapath, data hazards, data forwarding CSAPP 4.4-4.5
We: 11/06 Control hazards, branch prediction, exceptions CSAPP 4.5-4.6
Fr: 11/08 Exceptions, Storage technologies: RAM and memory hierarchy CSAPP 6.1
Mo: 11/11 Caching CSAPP 6.2-6.4
We: 11/13 Caches CSAPP 6.4-6.6
Fr: 11/15 Caches (cont.) CSAPP 6.4-6.6
Mo: 11/18 Caches (cont.), memory mountain, and virtual memory CSAPP 6.4-6.6
Mo: 11/18 Virtual memory, address translation, page tables CSAPP 9.1-9.6
We: 11/20 Page tables, TLBs, example memory system (see video) CSAPP 9.6, 9.9
Fr: 11/22 Dynamic memory allocation, Implicit free lists CSAPP 9.9
Mo: 11/25 Implicit, Explicit and segregated free lists CSAPP 9.9
We: 11/27 Thanksgiving break
Mo: 12/02 Segregated free lists and exceptional control flow CSAPP 8.1-8.2
We: 12/04 Processes and Wrap-up CSAPP 8.2-8.4
Final exam period Final exam