CS-281 Schedule

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
Thanksgiving Break: Nov 19-27
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

Thomas Bressoud 2018