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 Toy Assembly
Slides: slides
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 addressing modes, endianness, assembly
Readings: Storing Data - Slides: slides video
20 10/18/2024 x86-64 assembly, functions, compilation
Readings: x86-64 Summary - Slides: slides video
21 10/21/2024 x86-64 assembly, debugger overview
Slides: slides video
LAB 7 10/22/2024 debugger
22 10/23/2024 computed Jumps, x86-64 examples
Slides: slides video
23 10/25/2024 lea vs mov examples, assembly examples
Readings: Assembly Examples - Slides: slides video
24 10/28/2024 Jump Tables and C
Readings: Wikipedia C Reference - Slides: slides video
Homework 5 due 11:59pm
LAB 8 10/29/2024 escape room
25 10/30/2024 C introduction
Readings: Wikipedia C Reference - Slides: slides video
26 11/01/2024 C introduction
Slides: slides video
27 11/04/2024 C introduction
Slides: slides video swap.c
11/05/2024 Election Day (No Lab) (Remember, Remember the .. )
28 11/06/2024 C Introduction
Slides: slides Video
29 11/08/2024 C Introduction, directives
Slides: slides video
11/11/2024 Exam 2 Review
LAB 9 11/12/2024 Exam 2
30 11/13/2024 C Introduction, Undefined Behavior
Readings: Memory - Slides: slides video
31 11/15/2024 header files, memory
Slides: slides First 2 Pages of Exam video
32 11/18/2024 malloc examples, memory errors
Slides: slides Video
Homework 6 due 11:59pm
LAB 10 11/19/2024 char *
33 11/20/2024 malloc examples, memory errors
Readings: Man and Library Conventions - Slides: slides video
34 11/22/2024 function Pointers Part I
Slides: slides video
35 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
36 12/02/2024 buffer overrun, reporting exploits, memory errors
Readings: Memory CVE - Slides: slides Video (TBR)
LAB 12 12/03/2024 memory errors
37 12/04/2024 Socket Based Chat walk through
Slides: slides video
38 12/06/2024 Exam Review Q&A (Last lecture 15 minutes) Homework 8 Due 11:59pm
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