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:
     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

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.