| Week |
Topic |
Reading |
Examples |
Weekly Labs/Assignments |
| 1 |
Introduction / Course Overview
|
ECS: Introduction
CSAPP: 1.0 - 1.3
Code: Ch 1 - 6
|
|
|
| 1 |
Circuits and Logic Gates
Boolean Logic
|
ECS: Chapter 1
(CSAPP: 4.2.1)
Code: Ch 7 - 11
|
|
HW01: Nand2Tetris Project 1 - Basic Logic Gates
|
| 2 |
Backgrounder: Number Systems
Backgrounder: Binary Math
Combinational Logic
Nand2Tetris - Binary Math
|
ECS: Chapter 2
CSAPP: Ch 2, 4.2.2, 4.2.3
Code: Ch 12 - 13
Combinational Logic - Wikipedia
|
|
HW02: Nand2Tetris Project 2 - Combinational Chips
|
| 3 |
Feedback and Flip-Flops
Sequential Logic
|
Flip-Flop (Electronics) - Wikipedia
Sequential Logic - Wikipedia
ECS: Chapter 3
Code: Ch 14
|
|
Lab 03: Use Logic.ly to re-create the leading-edge triggered D-Flip Flop
and a 4-bit ripple counter discussed in class.
HW03: Nand2Tetris Project 3 - Sequential Logic
|
| 4 |
Machine Language
Bits and Ints
|
Endianness (Wikipedia)
ECS: Chapter 4
CSAPP: Chapter 3
Code: Ch 15-18
|
|
Lab04: Data Representation TBA
HW04: Assembly Language Programming Due TBA
|
| 5 |
Nand2Tetris: Architecture
|
ECS: Chapter 5
Code: Ch 19-20
|
|
HW05: Nand2Tetris Project 5 - Computer Architecture Due TBA
Prep: Review CS:APP Chapter 2, especially floating point
|
|
Nand2Tetris: Assembler
|
ECS: Chapter 6
|
|
Lab06: C Bootcamp TBA
HW06: Assembler
Pair programming allowed/encouraged. See rules in assignment page.
Checkpoint due: 4/8
Final version due: 4/19
|
| ? |
CS:APP Intro
Bits and Ints
Floating Point
|
CSAPP: Ch 2
Data structure alignment (Wikipedia)
|
|
HW07: datalab pdf writeup (Tar file: datalab-handout.tar)
|
| ? |
Machine Programming Basics
|
CSAPP: Ch 3
x86 Assembly Tutorial
AMD's new Ryzen chip reviews:
Anandtech,
Toms Hardware
|
|
Lab08 - Assembly and Machine Code.
|
| ? |
Quiz 4 - Wed 3/30
Machine Programming Control
Machine Programming Procedures
|
CSAPP: Ch 3
Stack Machine (wiki)
Call Stack (wiki)
|
|
Lab09 - Machine Code: Control
HW08: Bomb Lab - Due Saturday April 09, 2022, 10pm
GDB tutorial,
Reference: test.c
To view scoreboard while logged in to csgateway, type w3m http://heracles:14113/scoreboard
|
| ? |
Machine Programming Data
|
CSAPP: Ch 3
x86 Calling Conventions (wiki)
|
|
Lab10
|
| |
Machine Programming Advanced
Quiz 5
|
CSAPP: Ch 3
Stack buffer overflow
Buffer overflow protection
|
|
HW09: Attack Lab
|
| ? |
Program Optimization
|
CSAPP: Ch 5
Inline Function
Loop Unrolling
|
|
Lab 11 - Profiling
|
| ? |
Memory and
Cache Optimization
(ppt)
Quiz 6
|
CSAPP: Ch 6
|
|
Cachelab: Writeup, cachelab-handout.tar
Style Guide,
Presentation
|
|
Friday May 6
|
Final Exam - 8am-10am in JC001
|