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 |