| Date | Lecture | Reading | Homework | ||
| Week 0: | |||||
| Fri | Sept | 2 | Introduction | Syllabus | Read Chapter 1 |
| Week 1: | |||||
| Mon | Sept | 5 | Info Storage 1: Binary/Hex, Data Sizes, Ordering, Strings | 1, 2.1.1 thru 2.1.4 | |
| Tues | Sept | 6 | HWLab1: Breadboard/Arduino Intro | ||
| Wed | Sept | 7 | Info Storage 2: Boolean Ops, C Bit, Logical, Shift Ops (bool.c) | 2.1.5 thru 2.1.9 | |
| Fri | Sept | 9 | C Operations; Memory Ordering; Strings, if time | Lab01 Writeup Due by class time | |
| Week 2: | |||||
| Mon | Sept | 12 | Integer Representations: Unsigned, Two's Complement (hexdec.cpp) | 2.2 thru 2.2.3 | |
| Tues | Sept | 13 | No Class: Flipped Classroom Prep | ||
| Wed | Sept | 14 | Conversions: Signed/Unsigned, expanding, truncating | 2.2.4 thru 2.2.8 | |
| Fri | Sept | 16 | Integer Arithmetic I: Addition (Overflow), Negation | 2.3 thru 2.3.3 | Lab2 Prelab Out |
| Week 3: | |||||
| Mon | Sept | 19 | Flipped Class Post Mortem -- addition and overflow, negation, bit ops for checking positive or negative overflow | ||
| Tues | Sept | 20 | HWLab2: Combinational Building Blocks IC Docs; MuxValidate.cpp | Datalab I Project Out (datalab-handout.tar) | |
| Wed | Sept | 21 | Integer Arithmetic II: Signed/Unsigned Multiplication, Mult/Dvide by Constants and Powers of 2 | 2.3.4 thru 2.3.8 | |
| Fri | Sept | 23 | Program Encodings; Data Formats | 3.1 to 3.3 | Lab writeup due by classtime to submitbox |
| Week 4: | |||||
| Mon | Sept | 26 | Data Formats, x86_64 movement instructions | 3.4 | |
| Tues | Sept | 27 | Prelab03, Lab03: Boolean Function Simplification | Datalab I Due by 11:59pm | |
| Wed | Sept | 28 | Movement Instructions through swap() | 3.5 | |
| Fri | Sept | 30 | Arith Logic; Control I | 3.6 | |
| Week 5: | |||||
| Mon | Oct | 3 | Control II: cmp, set, jmp | ||
| Tues | Oct | 4 | Lab 4a: Sonar/Lights/Buzzer | ||
| Wed | Oct | 5 | Control to Procedures: call, ret, push, pop; conventions | 3.7 | Bomblab Out (bomblab request); gdb single page of commands |
| Fri | Oct | 7 | Midterm 1 | ||
| Week 6: | |||||
| Mon | Oct | 10 | switch statements; function calls and the stack | ||
| Tues | Oct | 11 | Lab 4b: Sonar/Lights/Buzzer | Hack 'N Help at 7:30 pm | |
| Wed | Oct | 12 | Stack discipline: caller vs. callee saved registers | Bomblab Phases 1-4 Due; Hack 'N Help on Midterm Questions | |
| Fri | Oct | 14 | Finishing Stack Discipline/Conventions | ||
| Week 7: | |||||
| Mon | Oct | 17 | Data and Buffer Overflow | Remainder of Chapter 3; Data And Overflow Notes | |
| Tues | Oct | 18 | Lab 05: Multi-sensors and Serrvo Motor Actuator | Bomblab Phases 5-6 Due; Attacklab Out (attacklab request) | |
| Wed | Oct | 19 | Buffer Overflow conclusion | ||
| Fri | Oct | 21 | No class: Fall Study Break | ||
| Week 8: | |||||
| Mon | Oct | 24 | Y86 Instruction Set Architecture and Encoding | 4.1 | Lab06 Prelab |
| Tues | Oct | 25 | Lab06: Finite State Machines and Sequential Circuits | Lab05 Writeup Due | |
| Wed | Oct | 26 | Y86 Instruction Encoding II | 4.3 | |
| Fri | Oct | 28 | Y86 Instruction Semantics | Y86 Arch and SEQ Org | ctarget Attacklab phases due |
| Week 9: | |||||
| Mon | Oct | 31 | Y86 Instruction Stage Requirements | ||
| Tues | Nov | 1 | Lab07: Hardware Multiply (Hardware Multiply) | rtarget Attacklab phases due | |
| Wed | Nov | 2 | Y86 CPU Datapath and Functional Elements | Recursive Linked List Search in Y86 | |
| Fri | Nov | 4 | Y86 CPU Control (y86.circ, imem.circ) | Y86 Logisim CPU out | |
| Week 10: | |||||
| Mon | Nov | 7 | Midterm 2 | Sunday Q&A at 8 pm | |
| Tues | Nov | 8 | Lab08: Y86 CPU (regs.circ, alu.circ, dmem.circ, yo2imem, yo2dmem) | ||
| Wed | Nov | 9 | Exceptional Control Flow (notes, slides): Concepts to Processes | 8.1, 8.2 | |
| Fri | Nov | 11 | Exceptional Control Flow II: Fork, Exec, Process Control | 8.3, 8.4 | Shell Lab Out |
| Week 11: | |||||
| Mon | Nov | 14 | Memory Hierarchy I: Concepts to Caches | 6.1 to 6.3 | |
| Tues | Nov | 15 | CPU Project Work | ||
| Wed | Nov | 16 | Memory Hierarchy II: Caches | 6.4 | Y86 Logisim CPU Due |
| Fri | Nov | 18 | Memory Hierarchy III: Caches some more | 6.5 | |
| Week 12: | |||||
| Mon | Nov | 28 | Cache Final Wrapup | Cache Lab Out | |
| Tues | Nov | 29 | Final Project: Exploration | ||
| Wed | Nov | 30 | Floating Point Representation I | 2.4 | |
| Fri | Dec | 2 | Floating Point Representation II | ||
| Week 13: | |||||
| Mon | Dec | 5 | Pipeline I | Float Datalab out; (datalab-floats-handout.tar) | |
| Tues | Dec | 6 | Final Project Work | ||
| Wed | Dec | 7 | Pipeline II | Cache Lab Due 11:59pm (or Thursday 11:59pm for 5% deduction) | |
| Fri | Dec | 9 | Pipeline III | ||
| Week 14: | |||||
| Mon | Dec | 12 | Course Evaluations | float datalab due | |
| Tues | Dec | 13 | Final Project Work | ||
| Wed | Dec | 14 | Midterm 3 | ||
| Fri | Dec | 16 | HW Lab Final Project Completion | (Demo by 5pm) | |
| Final Exam - Monday Dec. 19, 9-11am | |||||
| | |||||