
CSCI 2330
Foundations of Computer Systems
The course schedule is tentative and subject to change. This page will be updated frequently to reflect the most up-to-date schedule. Chapter sections refer to the Computer Systems textbook.
| Date | Class | Topic | Readings | Slides | Exercises | |
|---|---|---|---|---|---|---|
| Wed | Sep 3 | 1 | Introduction, Lab 0 | Ch. 1 (skim) | Intro Slides Layers Slides | |
| Fri | Sep 5 | 2 | Numbering Systems | Ch. 2.1 | Representation Slides | Binary Exercises |
| Mon | Sep 8 | 3 | Bitwise Operators | Ch. 2.2 | Bitwise Exercises | |
| Wed | Sep 10 | 4 | Integer Representations, Lab 1 | Ch. 2.3 | Representation Exercises | |
| Fri | Sep 12 | 5 | Two's Complement, Bit Puzzles | Bitpuzzle Exercises | ||
| Mon | Sep 15 | 6 | Integer Logic & Floating-Point | Logic Exercises | ||
| Wed | Sep 17 | 7 | IEEE 754 Representation | Ch. 2.4 | Float Exercises | |
| Fri | Sep 19 | 8 | Memory, Endianness, & Pointers | Memory Slides | Pointer Exercises | |
| Mon | Sep 22 | 9 | Arrays and Strings | Array Exercises | ||
| Wed | Sep 24 | 10 | Memory Layout & Allocation | Allocation Exercises | ||
| Fri | Sep 26 | 11 | Debugging, Lab 2 | |||
| Mon | Sep 29 | 12 | Debugging Practice | GDB Reference | Debugging Exercises (mini-lab) | |
| Wed | Oct 1 | 13 | x86-64 ISA, Data Movement | Ch. 3.1-3.4 | x86-basics Slides | Mov Exercises |
| Fri | Oct 3 | 14 | Addressing & Arithmetic | Ch. 3.5 | Operand Exercises | |
| Mon | Oct 6 | 15 | Procedures & Condition Codes | Ch. 3.6 | x86-control Slides | Asm1 Exercises |
| Wed | Oct 8 | 16 | Conditionals & Loops | x86-64 Registers | Asm2 Exercises | |
| Fri | Oct 10 | Midterm Exam 1 | ||||
| Mon | Oct 13 | No Class: Fall Break | ||||
| Wed | Oct 15 | 17 | Reverse Engineering, Lab 3 | Gdb Exercises | ||
| Fri | Oct 17 | 18 | Switches & Jump Tables | |||
| Mon | Oct 20 | 19 | Procedures & Stacks | Ch. 3.7 | x86-procedures Slides | Procedures Exercises |
| Wed | Oct 22 | 20 | Stack Vars & Saved Registers | |||
| Fri | Oct 24 | 21 | Arrays & Structs | Ch. 3.8-3.9 | x86-structures Slides | Struct Exercises |
| Mon | Oct 27 | 22 | Buffer Overflows | Ch. 3.10 | Buffers Slides | |
| Wed | Oct 29 | 23 | Code Injection Attacks, Lab 4 | Overflow Exercises | ||
| Fri | Oct 31 | 24 | Return-Oriented Programming | |||
| Mon | Nov 3 | 25 | Caching & Cache Designs | Ch. 6.1 | Caching Slides | Caching Exercises |
| Wed | Nov 5 | 26 | Direct-Mapped Caches | Ch. 6.4 | Direct Exercises | |
| Fri | Nov 7 | 27 | Associative Caches, Lab 5 | Associative Exercises | ||
| Mon | Nov 10 | 28 | Locality & The Memory Hierarchy | Ch. 6.2-6.3, 6.5 | ||
| Wed | Nov 12 | Midterm Exam 2 | ||||
| Fri | Nov 14 | 29 | Processes & Exceptional Control Flow | Ch. 8.1-8.2 | ||
| Mon | Nov 17 | 30 | Process Management | |||
| Wed | Nov 19 | 31 | Lab 5 Discussion | |||
| Fri | Nov 21 | 32 | Process Control & Shells | Ch. 8.3 | ||
| Mon | Nov 24 | No Class: Thanksgiving Break | ||||
| Wed | Nov 26 | No Class: Thanksgiving Break | ||||
| Fri | Nov 28 | No Class: Thanksgiving Break | ||||
| Mon | Dec 1 | 33 | Signals & Zombies, Lab 6 | Ch. 8.4-8.5 | ||
| Wed | Dec 3 | 34 | Reaping & Concurrency | |||
| Fri | Dec 5 | 35 | Threads & Lab 6 Discussion | |||
| Mon | Dec 8 | 36 | Virtual Memory | Ch. 9.1 | ||
| Wed | Dec 10 | 37 | Virtual Memory | |||
| Fri | Dec 12 | 38 | Beyond 2330 & Wrap-up | |||