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

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