CS140 Spring 2022 SCHEDULE
Course Materials


Key:
    ECS The Elements of Computer Systems - Nisan and Schocken
    CSAPP Computer Systems: A Programmers Perspective - Bryant and O'Hallaron
    Code Code - The Hidden Language of Computer Hardware and Software - Petzold (optional)


The topics below will be updated as we go through them.
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