Calendar, Notes, and Assignments

Date Subject Assignment
Week 1
Mon, Aug. 22 Introduction; Terminology; Digital Circuits
Wed, Aug. 24 Basic assembly; converting between numeric representations
(In-class notes)
Assignment 1: See Canvas for details/submission
Week 2
Mon, Aug. 29 Registers and simple loops
Wed, Aug. 31 Arithmetic operations; simple functions
Week 3
Mon, Sep. 05 Labor Day Assignment 2
Wed, Sep. 07 Branching
Week 4
Mon, Sep. 12 Branching and conditions -- applications
Wed, Sep. 14 Functions and the stack
Week 5
Mon, Sep. 19 Functions continued
Wed, Sep. 21 Functions continued
Week 6
Mon, Sep. 26 Interop. with C; Floating-point operations
Wed, Sep. 28 Floating point and vector operations
Week 7
Mon, Oct. 03 Floating point, continued Assignment 3
Group project 3
Assigmnent 4
Group project 3
Group project 4
Wed, Oct. 05 Instruction-level parallelism; pipelining on MIPS
Week 8
Mon, Oct. 10 Bitwise operations Assignment 5 — Caching
Wed, Oct. 12 Midterm Review Midterm practice test
(Solutions)
Week 9
Mon, Oct. 17 Midterm exam
Wed, Oct. 19 Midterm Recap; Computer Organization and Caching
Week 10
Mon, Oct. 24 C-compatible structures; alignment and packing
Wed, Oct. 26 C-compatible structures continued
Week 11
Mon, Oct. 31 Assembly on the Z80 processor
Wed, Nov. 02 C-style strings; string operations
Week 12
Mon, Nov. 07 Macros part 1
Wed, Nov. 09 Macros part 2
Week 13
Mon, Nov. 14 Macros part 3
Wed, Nov. 16 Instruction formats
Week 14
Mon, Nov. 21 Memory Management Assignment 6 — Decoding MIPS
Wed, Nov. 23 Operating systems part 1: the boot process
Week 15
Mon, Nov. 28 Operating systems pt. 2: boot process continued
Wed, Nov. 30 Operating systems pt. 3: 32-bit mode Assignment 7 — Hello world in 16-bit mode
Final practice test
(Solutions)
Week 16
Mon, Dec. 05 Final review
Wed, Dec. 07 Final exam