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 1/17/2024 Introduction
Slides: slides
2 1/19/2024 Boolean algebra
Readings: Booleans (first 2 sections) - Slides: slides video
3 1/22/2024 binary arithmetic, ssh
Readings: Bits - Slides: slides video
LAB 1 1/23/2024 ssh, bash, and the command line
4 1/24/2024 binary arithmetic
Readings: Bits - Slides: slides video
5 1/26/2024 bitwise
Readings: Bits - Slides: slides video
6 1/29/2024 Bit-wise And floating point (Part 1)
Readings: Booleans (Bit-wise) - Slides: slides video
LAB 2 1/30/2024 hex editor add deadline
7 1/31/2024 Muxes clocks
Readings: Booleans (Fancier Logic) - Slides: slides video
8 2/2/2024 clocks, registers
Readings: Fancier Logic Components - Slides: slides video
9 2/5/2024 code and circuits
Readings: Components - Slides: slides video
Homework 1 due 11:59 pm
LAB 3 2/6/2024 circuits
10 2/7/2024 building to a computer
Readings: Designing a Processor - Slides: slides video
11 2/9/2024 fetch-decode-execute, ISA
Readings: Designing a Processor - Slides: slides video Two Instruction Machine Simulations
12 2/12/2024 writing machine code
Readings: Designing a Processor - Slides: slides video
Homework 2 due 5:30 pm
LAB 4 2/13/2024 Simulator
13 2/14/2024 writing machine code
Readings: Designing a Processor - Slides: slides video
14 2/16/2024 push, pop and functions
Readings: Designing a Processor - Slides: slides video
15 2/19/2024 Overview from gates to our toy processor
Slides: slides video
Homework 3 due 11:59 pm
LAB 5 2/20/2024 Fibonanci
16 2/21/2024 Executing instructons on our Toy Processor
Slides: slides video
2/23/2024 Exam 1
17 2/26/2024 ISAs, stack pointer, functions
Readings: Storing Data - Slides: slides video
LAB 6 2/27/2024 git, ToyASM
18 2/28/2024 addressing modes, endianness, assembly
Readings: Storing Data - Slides: slides video
Homework 4 due 11:59pm
19 3/1/2024 x86-64 assembly, functions, compilation
Readings: x86-64 Summary - Slides: slides video
drop deadline
3/4/2024 Spring Break
3/6/2024 Spring Break
3/8/2024 Spring Break
20 3/11/2024 x86-64 assembly, debugger overview
Slides: slides video
LAB 7 3/12/2024 debugger
21 3/13/2024 computed Jumps, x86-64 examples
Slides: slides video
22 3/15/2024 lea vs mov examples, assembly examples
Readings: Compilation - Slides: slides video
23 3/18/2024 Jump Tables and C
Readings: Wikipedia C Reference - Slides: slides video
Homework 5 due
LAB 8 3/19/2024 escape room
24 3/20/2024 C introduction
Readings: Wikipedia C Reference - Slides: slides video
25 3/22/2024 C introduction
Slides: slides video
26 3/25/2024 C introduction
Slides: slides video swap.c
LAB 9 3/26/2024 char*
27 3/27/2024 C Introduction
Slides: slides Video
28 3/29/2024 C Introduction, directives
Slides: slides video
29 4/1/2024 C Introduction, Undefined Behavior
Readings: Memory - Slides: slides video
Homework 6 due 11:59pm
LAB 10 4/2/2024 File Based Chat
30 4/3/2024 header files, memory
Slides: slides First 2 Pages of Exam video
4/5/2024 Exam 2
31 4/8/2024 malloc examples, memory errors
Slides: slides Video
Homework 7 due 11:59pm
LAB 11 4/9/2024 memcp, etc string.h, C std library conventions
32 4/10/2024 malloc examples, memory errors
Readings: Man and Library Conventions - Slides: slides video
33 4/12/2024 Mini Compiler Part I
Slides: slides video
34 4/15/2024 Mini Compiler Part II
Slides: slides video
Homework 8 due 11:59pm
LAB 12 4/16/2024 memory errors
35 4/17/2024 function Pointers Part I
Slides: slides video
36 4/19/2024 Function Pointers Part II
Slides: slides video
Extra Credit for finishing HW 9 Early by April 21st
37 4/22/2024 Sockets Part I
Slides: slides video
LAB 13 4/23/2024 sockets
38 4/24/2024 buffer overrun, reporting exploits, memory errors
Readings: Memory CVE - Slides: slides Video (TBR)
39 4/26/2024 Overview
Slides: slides [pending] Video [TBR]
40 4/29/2024 Spend time with a Friend or Loved One. Homework 9 due 11:59pm
LAB 14 4/30/2024 review session
5/6/2024 Final Exam 2:00pm - 5:00pm

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