Semester Schedule
The schedule will be flexible as we cover each topic. We might spend some extra time on topics, so we will update the schedule as we progress through the semester.
| Mtg | Date | Topic | Deadlines |
|---|---|---|---|
| Mon | 01/12/2026 | Introduction Slides: Hott (blank) - Xinyao (blank) | |
| LAB 1 | 01/13/2026 | ssh, bash, and the command line | |
| Wed | 01/14/2026 | Boolean algebra Readings & Resources: Booleans (first 2 sections) Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 01/16/2026 | multi-bit values, binary arithmetic Readings & Resources: Bits Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| 01/19/2026 | MLK Holiday | ||
| LAB 2 | 01/20/2026 | bits, entropy, command line | |
| Wed | 01/21/2026 | binary arithmetic Readings & Resources: Bits Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 01/23/2026 | bitwise Readings & Resources: Booleans (Bit-wise) Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Mon | 01/26/2026 | floating point Readings & Resources: Booleans (Bit-wise) - Bits (on non-integral numbers) Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | Add deadline |
| LAB 3 | 01/27/2026 | bits and bytes | |
| Wed | 01/28/2026 | floating point, adder Readings & Resources: Booleans (Fancier Logic) Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 01/30/2026 | adders, clocks, registers Readings & Resources: Fancier Logic - Components Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Mon | 02/02/2026 | code and circuits Readings & Resources: Components Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | Homework 1 due |
| LAB 4 | 02/03/2026 | circuits | |
| Wed | 02/04/2026 | building to a computer Readings & Resources: Designing a Processor Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 02/06/2026 | building to a computer, fetch-decode-execute Readings & Resources: Designing a Processor Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Mon | 02/09/2026 | ISA, writing machine code Readings & Resources: Designing a Processor Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | Homework 2 due |
| LAB 5 | 02/10/2026 | simulator | |
| Wed | 02/11/2026 | ISA, writing machine code Readings & Resources: Designing a Processor Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 02/13/2026 | writing machine code Readings & Resources: Designing a Processor Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Mon | 02/16/2026 | functions, variables, arrays, ISAs Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| LAB 6 | 02/17/2026 | programming in binary | |
| Wed | 02/18/2026 | review Slides: Xinyao (blank) | |
| Fri | 02/20/2026 | Midterm 1 | |
| Mon | 02/23/2026 | ISAs, stack pointer, backdoors, adjacency and pointers Readings & Resources: Storing Data Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | Drop deadline Homework 3 due |
| LAB 7 | 02/24/2026 | git, programming in assembly | |
| Wed | 02/25/2026 | addressing modes, backdoors Readings & Resources: Storing Data Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Fri | 02/27/2026 | endianness, x86-64 assembly Readings & Resources: x86-64 Summary - AMD64 Architecture Programmer's Manual (for reference only) Slides: Hott (blank) - Hott (notes) - Xinyao (blank) - Xinyao (notes) | |
| Mon | 03/02/2026 | Spring Break | |
| Wed | 03/04/2026 | Spring Break | |
| Fri | 03/06/2026 | Spring Break | |
| Mon | 03/09/2026 | x86-64 assembly, functions, compilation Readings & Resources: x86-64 Summary | Homework 4 due |
| LAB 8 | 03/10/2026 | debugger | |
| Wed | 03/11/2026 | the stack, x86-64 examples, lea Readings & Resources: x86-64 Summary | Withdraw deadline |
| Fri | 03/13/2026 | assembly examples, stack Readings & Resources: Complation | |
| Mon | 03/16/2026 | patents, compilation, debugger overview Readings & Resources: Complation - C Reference | Homework 5 due |
| LAB 9 | 03/17/2026 | assembly/C puzzle | |
| Wed | 03/18/2026 | compilation, C introduction Readings & Resources: Wikipedia - C Reference | |
| Fri | 03/20/2026 | C introduction Readings & Resources: Wikipedia - C Reference | |
| Mon | 03/23/2026 | C introduction | Homework 6 due |
| LAB 10 | 03/24/2026 | programming in C | |
| Wed | 03/25/2026 | C introduction | |
| Fri | 03/27/2026 | C Introduction | |
| Mon | 03/30/2026 | C Introduction, directives, switch, variadic functions | Homework 7 due |
| LAB 11 | 03/31/2026 | programming in C | |
| Wed | 04/01/2026 | review | |
| Fri | 04/03/2026 | Midterm 2 | |
| Mon | 04/06/2026 | Memory, malloc and free Readings & Resources: Memory - Man and Library Conventions | |
| LAB 12 | 04/07/2026 | memory and memory errors | |
| Wed | 04/08/2026 | Memory, malloc and free, examples, memory errors | |
| Fri | 04/10/2026 | malloc examples, memory errors, man pages | |
| Mon | 04/13/2026 | memory, string.h | Homework 8 due |
| LAB 13 | 04/14/2026 | args and inputs | |
| Wed | 04/15/2026 | string.h, C std library conventions | |
| Fri | 04/17/2026 | string.h, printf, stdio.h and varargs | |
| Mon | 04/20/2026 | stdio.h, processes, unistd.h | Homework 9 due |
| LAB 14 | 04/21/2026 | sockets | |
| Wed | 04/22/2026 | system calls, unistd.h and so on | |
| Fri | 04/24/2026 | function pointers, buffer overrun, reporting exploits Readings & Resources: Memory - CVE | |
| Mon | 04/27/2026 | reporting exploits, finale | Homework 10 due |
| LAB 15 | 04/28/2026 | review | |
| 4/30/2026 | 4/30/2026 | Final Exam | 7-10pm |