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

Copyright © 2025 John Hott, portions Luther Tychonievich.
Released under the CC-BY-NC-SA 4.0 license.
Creative Commons License

This site uses Just the Docs, a documentation theme for Jekyll.