| Mon | 01/12/2026 | Introduction Slides: Introduction - Hott (blank) Introduction - 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: Boolean algebra - Hott (blank) Boolean algebra - Hott (notes) Boolean algebra - Xinyao (blank) Boolean algebra - Xinyao (notes) | |
| Fri | 01/16/2026 | multi-bit values, binary arithmetic Readings & Resources: Bits Slides: multi-bit values, binary arithmetic - Hott (blank) multi-bit values, binary arithmetic - Hott (notes) multi-bit values, binary arithmetic - Xinyao (blank) multi-bit values, binary arithmetic - 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: binary arithmetic - Hott (blank) binary arithmetic - Hott (notes) binary arithmetic - Xinyao (blank) binary arithmetic - Xinyao (notes) | |
| Fri | 01/23/2026 | bitwise Readings & Resources: Booleans (Bit-wise) Slides: bitwise - Hott (blank) bitwise - Hott (notes) bitwise - Xinyao (blank) bitwise - Xinyao (notes) | |
| Mon | 01/26/2026 | floating point Readings & Resources: Booleans (Bit-wise) - Bits (on non-integral numbers) Slides: floating point - Hott (blank) floating point - Hott (notes) floating point - Xinyao (blank) floating point - 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: floating point, adder - Hott (blank) floating point, adder - Hott (notes) floating point, adder - Xinyao (blank) floating point, adder - Xinyao (notes) | |
| Fri | 01/30/2026 | adders, clocks, registers Readings & Resources: Fancier Logic - Components Slides: adders, clocks, registers - Hott (blank) adders, clocks, registers - Hott (notes) adders, clocks, registers - Xinyao (blank) adders, clocks, registers - Xinyao (notes) | |
| Mon | 02/02/2026 | code and circuits Readings & Resources: Components Slides: code and circuits - Hott (blank) code and circuits - Hott (notes) code and circuits - Xinyao (blank) code and circuits - 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: building to a computer - Hott (blank) building to a computer - Hott (notes) building to a computer - Xinyao (blank) building to a computer - Xinyao (notes) | |
| Fri | 02/06/2026 | building to a computer, fetch-decode-execute Readings & Resources: Designing a Processor Slides: building to a computer, fetch-decode-execute - Hott (blank) building to a computer, fetch-decode-execute - Hott (notes) building to a computer, fetch-decode-execute - Xinyao (blank) building to a computer, fetch-decode-execute - Xinyao (notes) | |
| Mon | 02/09/2026 | ISA, writing machine code Readings & Resources: Designing a Processor Slides: ISA, writing machine code - Hott (blank) ISA, writing machine code - Hott (notes) ISA, writing machine code - Xinyao (blank) ISA, writing machine code - Xinyao (notes) | Homework 2 due |
| LAB 5 | 02/10/2026 | simulator | |
| Wed | 02/11/2026 | ISA, writing machine code, using jumps Readings & Resources: Designing a Processor Slides: ISA, writing machine code, using jumps - Hott (blank) ISA, writing machine code, using jumps - Hott (notes) ISA, writing machine code, using jumps - Xinyao (blank) ISA, writing machine code, using jumps - Xinyao (notes) | |
| Fri | 02/13/2026 | writing machine code Readings & Resources: Designing a Processor Slides: writing machine code - Hott (blank) writing machine code - Hott (notes) writing machine code - Xinyao (blank) writing machine code - Xinyao (notes) | |
| Mon | 02/16/2026 | functions, variables, arrays, ISAs Slides: functions, variables, arrays, ISAs - Hott (blank) functions, variables, arrays, ISAs - Hott (notes) functions, variables, arrays, ISAs - Xinyao (blank) functions, variables, arrays, ISAs - Xinyao (notes) | |
| LAB 6 | 02/17/2026 | programming in binary | |
| Wed | 02/18/2026 | review (midterm 1) Slides: review (midterm 1) - Xinyao (blank) | |
| Fri | 02/20/2026 | Midterm 1 | |
| Mon | 02/23/2026 | ISAs, stack pointer, backdoors, adjacency and pointers Readings & Resources: Storing Data Slides: ISAs, stack pointer, backdoors, adjacency and pointers - Hott (blank) ISAs, stack pointer, backdoors, adjacency and pointers - Hott (notes) ISAs, stack pointer, backdoors, adjacency and pointers - Xinyao (blank) ISAs, stack pointer, backdoors, adjacency and pointers - 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: addressing modes, backdoors - Hott (blank) addressing modes, backdoors - Hott (notes) addressing modes, backdoors - Xinyao (blank) addressing modes, backdoors - Xinyao (notes) | |
| Fri | 02/27/2026 | endianness, x86-64 assembly Readings & Resources: x86-64 Summary - AMD64 Architecture Programmer's Manual (for reference only) Slides: endianness, x86-64 assembly - Hott (blank) endianness, x86-64 assembly - Hott (notes) endianness, x86-64 assembly - Xinyao (blank) endianness, x86-64 assembly - 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 Slides: x86-64 assembly, functions, compilation - Hott (blank) x86-64 assembly, functions, compilation - Hott (notes) x86-64 assembly, functions, compilation - Xinyao (blank) x86-64 assembly, functions, compilation - Xinyao (notes) | Homework 4 due |
| LAB 8 | 03/10/2026 | debugger | |
| Wed | 03/11/2026 | the stack, x86-64 examples, lea Readings & Resources: x86-64 Summary Slides: the stack, x86-64 examples, lea - Hott (blank) the stack, x86-64 examples, lea - Hott (notes) the stack, x86-64 examples, lea - Xinyao (blank) the stack, x86-64 examples, lea - Xinyao (notes) | Withdraw deadline |
| Fri | 03/13/2026 | assembly examples, stack, debugger overview Readings & Resources: Complation Slides: assembly examples, stack, debugger overview - Hott (blank) assembly examples, stack, debugger overview - Hott (notes) assembly examples, stack, debugger overview - Xinyao (blank) assembly examples, stack, debugger overview - Xinyao (notes) | |
| Mon | 03/16/2026 | stack, debugger, compilation Readings & Resources: Complation - C Reference Slides: stack, debugger, compilation - Hott (blank) stack, debugger, compilation - Hott (notes) stack, debugger, compilation - Xinyao (blank) | Homework 5 due |
| LAB 9 | 03/17/2026 | assembly/C puzzle | |
| Wed | 03/18/2026 | patents, compilation, C introduction Readings & Resources: Wikipedia - C Reference Slides: patents, compilation, C introduction - Hott (blank) patents, compilation, C introduction - Hott (notes) patents, compilation, C introduction - Xinyao (blank) patents, compilation, C introduction - Xinyao (notes) | |
| Fri | 03/20/2026 | C introduction, compilation pipeline Readings & Resources: Wikipedia - C Reference Slides: C introduction, compilation pipeline - Hott (blank) C introduction, compilation pipeline - Hott (notes) C introduction, compilation pipeline - Xinyao (blank) C introduction, compilation pipeline - Xinyao (notes) | |
| Mon | 03/23/2026 | C introduction, types, pointers Slides: C introduction, types, pointers - Hott (blank) C introduction, types, pointers - Hott (notes) C introduction, types, pointers - Xinyao (blank) C introduction, types, pointers - Xinyao (notes) | Homework 6 due |
| LAB 10 | 03/24/2026 | programming in C | |
| Wed | 03/25/2026 | C introduction, pointers, arrays Slides: C introduction, pointers, arrays - Hott (blank) C introduction, pointers, arrays - Hott (notes) C introduction, pointers, arrays - Xinyao (blank) C introduction, pointers, arrays - Xinyao (notes) | |
| Fri | 03/27/2026 | C Introduction, pointer examples Slides: C Introduction, pointer examples - Hott (blank) C Introduction, pointer examples - Hott (notes) C Introduction, pointer examples - Xinyao (blank) C Introduction, pointer examples - Xinyao (notes) | |
| Mon | 03/30/2026 | C Introduction, structs, directives, switch Slides: C Introduction, structs, directives, switch - Hott (blank) C Introduction, structs, directives, switch - Hott (notes) C Introduction, structs, directives, switch - Xinyao (blank) C Introduction, structs, directives, switch - Xinyao (notes) | Homework 7 due |
| LAB 11 | 03/31/2026 | args and inputs | |
| Wed | 04/01/2026 | review (midterm 2) Slides: review (midterm 2) - Xinyao (blank) | |
| Fri | 04/03/2026 | Midterm 2 | |
| Mon | 04/06/2026 | C Introduction, header files, directives, memory Slides: C Introduction, header files, directives, memory - Hott (blank) C Introduction, header files, directives, memory - Hott (notes) C Introduction, header files, directives, memory - Xinyao (blank) C Introduction, header files, directives, memory - Xinyao (notes) | |
| LAB 12 | 04/07/2026 | working with files | |
| Wed | 04/08/2026 | Memory, malloc and free Readings & Resources: Memory - Man and Library Conventions Slides: Memory, malloc and free - Hott (blank) Memory, malloc and free - Hott (notes) Memory, malloc and free - Xinyao (blank) Memory, malloc and free - Xinyao (notes) | |
| Fri | 04/10/2026 | malloc examples, memory errors, man pages Slides: malloc examples, memory errors, man pages - Hott (blank) malloc examples, memory errors, man pages - Hott (notes) malloc examples, memory errors, man pages - Hott (list.c example) malloc examples, memory errors, man pages - Xinyao (blank) malloc examples, memory errors, man pages - Xinyao (notes) | |
| Mon | 04/13/2026 | memory, string.h Slides: memory, string.h - Hott (blank) | Homework 8 due |
| LAB 13 | 04/14/2026 | memory and memory errors | |
| 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 |