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 Notes
1 Jan 13 2025 Introduction
Slides: slides
2 Jan 15 2025 Boolean algebra
Readings: Booleans (first 2 sections) - Slides: slides video
3 Jan 17 2025 binary arithmetic, ssh
Readings: Bits - Slides: slides video
LAB 1 Jan 21 2025 ssh, bash, and the command line
4 Jan 22 2025 binary arithmetic
Readings: Bits - Slides: slides video
5 Jan 24 2025 bitwise
Readings: Bits - Slides: slides video
6 Jan 27 2025 Bit-wise And floating point (Part 1)
Readings: Booleans (Bit-wise) - Slides: slides video
LAB 2 Jan 28 2025 hex editor add deadline
7 Jan 29 2025 Muxes clocks
Readings: Booleans (Fancier Logic) - Slides: slides video
8 Jan 31 2025 clocks, registers
Readings: Fancier Logic Components - Slides: slides video
9 Feb 3 2025 code and circuits
Readings: Components - Slides: slides video
Homework 1 due 11:59 pm
LAB 3 Feb 4 2025 circuits
10 Feb 5 2025 building to a computer
Readings: Designing a Processor - Slides: slides video
11 Feb 7 2025 fetch-decode-execute, ISA
Readings: Designing a Processor - Slides: slides video Two Instruction Machine Simulations
12 Feb 10 2025 writing machine code
Readings: Designing a Processor - Slides: slides video
Homework 2 due 5:30 pm
LAB 4 Feb 11 2025 Simulator
13 Feb 12 2025 writing machine code
Readings: Designing a Processor - Slides: slides video
14 Feb 14 2025 push, pop and functions
Readings: Designing a Processor - Slides: slides video
15 Feb 17 2025 Overview from gates to our toy processor
Slides: slides video
Homework 3 due 11:59 pm
LAB 5 Feb 18 2025 Fibonacci
16 Feb 19 2025 ISAs, stack pointer, functions
Slides: slides video
17 Feb 21 2025 Executing instructons on our Toy Processor
Readings: Storing Data - Slides: slides video
Feb 24 2025 Exam 1 - Review drop deadline
Feb 25 2025 Exam 1
18 Feb 26 2025 addressing modes, endianness, assembly
Readings: Storing Data - Slides: slides video
19 Feb 28 2025 Toy Assembly
Slides: slides
20 Mar 3 2025 x86-64 assembly, functions, compilation
Readings: x86-64 Summary - Slides: slides video
Homework 4 due 11:59pm
LAB 6 Mar 4 2025 git, ToyASM
21 Mar 5 2025 x86-64 assembly, debugger overview
Slides: slides video
22 Mar 7 2025 computed Jumps, x86-64 examples
Slides: slides video
Mar 10 2025 Spring Recess
Mar 11 2025 Spring Recess No labs.
Mar 12 2025 Spring Recess
Mar 14 2025 Spring Recess
23 Mar 17 2025 lea vs mov examples, assembly examples
Readings: Assembly Examples - Slides: slides video
Homework 5 due 11:59pm
LAB 7 Mar 18 2025 debugger
24 Mar 19 2025 Jump Tables and C
Readings: Wikipedia C Reference - Slides: slides video
25 Mar 21 2025 C introduction
Readings: Wikipedia C Reference - Slides: slides video
26 Mar 24 2025 C introduction
Slides: slides video
LAB 8 Mar 25 2025 escape room
27 Mar 26 2025 C introduction
Slides: slides video swap.c
28 Mar 28 2025 C Introduction
Slides: slides Video
Mar 31 2025 Exam 2 - Review
Apr 1 2025 Exam 2
29 Apr 2 2025 C Introduction, directives
Slides: slides video
30 Apr 4 2025 C Introduction, Undefined Behavior
Readings: Memory - Slides: slides video
31 Apr 7 2025 header files, memory
Slides: slides First 2 Pages of Exam video
Homework 6 due 11:59pm
LAB 9 Apr 8 2025 char *
32 Apr 9 2025 malloc examples, memory errors
Slides: slides Video
33 Apr 11 2025 malloc examples, memory errors
Readings: Man and Library Conventions - Slides: slides video
34 Apr 14 2025 function Pointers Part I
Slides: slides video
Homework 7 due 11:59pm
LAB 10 Apr 15 2025 memcp, etc string.h, C std library convention
35 Apr 16 2025 Function Pointers Part II
Slides: slides video
36 Apr 18 2025 buffer overrun, reporting exploits, memory errors
Readings: Memory CVE - Slides: slides Video
37 Apr 21 2025 Socket Based Chat walk through
Slides: slides video
Homework 8 Due 11:59pm
LAB 11 Apr 22 2025 memory errors
38 Apr 23 2025 TBD
39 Apr 25 2025 TBD
40 Apr 28 2025 TBD
LAB 12 Apr 29 2025 TBD
TBD Exam Review Q&A (time and location TBD)
TBD Final Exam (time and location TBD)

Copyright © 2023 Daniel Graham, John Hott and Luther Tychonievich.
Released under the CC-BY-NC-SA 4.0 license.
Creative Commons License