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 |