Course Schedule Spring 2026

This schedule is subject to change. Please check back frequently.


Part 1. Introduction

Monday Wednesday Friday
Jan. 9
Welcome
Course overview
Jan. 12
C review
Types, functions, binary/hex numbers
Jan. 14
C review II
Structs, pointers, Introduction to ISA
Jan. 16
D flip-flops and Registers
Building register files and updating state

Part 2. Assembly

Monday Wednesday Friday
Jan. 19
Martin Luther King Jr. Day - no class
Jan. 21
Instruction registers
PC, intro to branches/control flow
Jan. 23
Assembly
Introduce Nios II, decoding instructions
Homework 1: Numbers and C due 6pm
Jan. 26
DE10-Lite
Assembler directives, creating Nios program from scratch
Jan. 28
Assembly II
Basic assembly examples
Jan. 30
Number representations
Two's complement, sign extension
Feb. 2
Number representations 10
Floating point
Feb. 4
Logic operations
ALU design/logic operations, overflow
Feb. 6
Turing C into assembly
Compiler examples
Project 1: Assembly due 6pm
Feb. 9
Memory layout
Loads/stores, stack, MMIO
Feb. 11
Memory alignment
bytes vs words, alignment
Feb. 13
Exam 1 review
Prepare for first exam
Homework 2: Logic and ALUs due 6pm
Feb. 16
Exam 1
During class exam
Feb. 18
Basic peripherals
Switches, hex displays, buttons, ADC/DAC
Feb. 20
Basic I/O
Busy wait vs polling, UART

Part 3. Interfaces

Monday Wednesday Friday
Feb. 23
Interacting with peripherals
Bit-bang WS2812 interface
Feb. 25
Application Binary Interface (ABI)
function calls in assembly, caller/callee saved
Feb. 27
Procedure calls
Return addresses, assembly examples
Mar. 2
Procedure calls
Calling C functions from assembly
Mar. 4
Buffer overflows
Smashing the stack for fun and profit
Mar. 6
Overflows, continued
Buffer overflow walkthrough
Project 2: Basic I/O due 6pm
Mar. 9
Interrupts
ISR, configuring interrupt peripherals
Mar. 11
Interrupts
Code walkthrough, Interrupts in C
Mar. 13
Interrupt example
continue code walkthrough
Homework 3: Functions due 6pm
Mar. 16
Spring break
No class
Mar. 18
Spring break
No class
Mar. 20
Spring break
No class
Mar. 23
Interrupts continued
continue code walkthrough
Mar. 25
Interrupts continued
continue code walkthrough
Mar. 27
Interrupts continued
continue code walkthrough
Project 3: Calling Convention due 6pm

Part 3. CPU design

Monday Wednesday Friday
Mar. 30
Caching
Indexing, Direct mapped, associativity
Apr. 1
Exam 2 review
Apr. 3
Exam 2
During class
Apr. 6
Caching
Replacement policy, handling writes, impact on MMIO
Apr. 8
Caching
Spacial vs. temporal, predictive, multi-layer caches
Apr. 10
Pipeline
CPU pipeline stages, data hazards
Homework 4: Caching and Interrupts due 6pm
Apr. 13
Pipeline stage 2
pipeline stalls, basic out-of-order execution
Apr. 15
Virtual Memory
Paging, multi-level page tables
Apr. 17
System calls
OS privileges, system calls
Project 4: Interrupts due 6pm
Apr. 20
Hardware side channels
Mistakes we continue to make
Apr. 22
Speculative hazards
Spectre / Meltdown
Apr. 24
Exam review
Homework 5: Pipelines and Virtual Memory due 6pm

Final Exam   TBD