Staff email:
Course Instructor
- Mark Oskin, 206-293-9456
- Office Hours by Appt.
Course TAs
- Matt Dorsett, madman2@cs.washington.edu, M 12:30-1:20
- Benjamin Du, bendu@cs.washington.edu, T 1:00-1:50
- Mark Wyse, wysem@cs.washington.edu, W 2:30-3:20
- Whitney Schmidt, wps5@cs.washington.edu, Th 2:30-3:20
- All TA office hours will be in CSE 002
Late Work Policy
|
Day 1 slides: here
|
Module 1: Memory Data, Addressing & Number Representation
Lecture Videos
- Hardware Preliminaries
- Memory Organization
- Memory Addresses
- Data and Memory in C
- Arrays
- Boolean Algebra and Bitwise Operations
- Encoding
- Integers
- Integers in C
- Shifting
- Fractions
- IEEE Floating Point
- Floating Point Operations
- Floats in C
|
Module 2: Intro to assembly programming
Friday 1/17 - Intro
Monday - Holiday
Wednesday 1/22 - Discussion
Friday 1/24 - Advanced
Lecture videos
- ISA
- Architecture
- mov, swap
- x86-64
- Address Computation
- Condition Codes
- Conditional Jumps
- Loops
- Switch
|
Module 3: Procedures & Stacks
Monday 1/27 - Intro
Wednesday 1/29 - Discussion
Friday 1/31 - Advanced
Lecture videos
- Stacks
- Procedure Call and Return
- Stack-Based Languages
- Linux Stack Frame, Passing Arguments
- Register-Saving Conventions, Local Variables
- x86-64 Calling Conventions
Resources
x64 ABI
inline assembly guide x86
"Official inline assembly guide
guide for x64
|
Module 4: Data structures
Monday 2/3 - Intro
Wednesday 2/5 - Intro/Discussion
Friday 2/7 - Advanced topics
Videos
- Arrays
- Multidimensional or Nested Arrays
- Multi-Level Arrays
- Structs
- Data Structures and Memory Alignment
- Buffer overflows
|
Module 5: CPUs
Friday 2/14 - Intro
Monday 2/24 - Intro 2
Wednesday 2/26 - Discussion
Friday 2/28 - Advanced topics
Videos
- Cache Basics
- Locality
- Memory Hierarchies
- Cache Organization 1
- Cache Organization 2
- Cache-Aware Optimizations
- Virtual Memory Overview
- Indirection
- Virtual Memory for Caching
- Address Translation
- Virtual Memory Examples
|
Module 6: Processes & libc
Monday 3/3 - Intro
Wednesday 3/5 - Intro 2 / Discussion
Friday 3/7 - Advanced topics
Videos
- Exceptional Control Flow
- Processes
- Process Creation
- Process Management
- Memory Allocation Intro
- Examples
- Implicit Free Lists
- Explicit Free Lists
- Garbage Collection
- Memory Allocation Bugs
|
Module 7: Managed languages
Monday 3/10 - Intro
Wednesday 3/12- - Advanced topics
Videos
- Java Data Representation
- Java Implementation
- Java Virtual Machine
|
Friday 3/15 - Wrapup and Review |
Lecture Slides
|
Readings
- Module 1: Chapters 1 & 2
- Module 2: Chapter 3.1-6
- Module 3: Chapter 3.7, 3.13
- Module 4: Chapter 3.8-12
- Module 5: Chapter 6.2-5, 9.1-7
- Module 6: Chapter 8.1-2, 8.4.1-2, 9.9-12
- Module 7: None
|
Labs
|
Homework
|
Section Slides
|
Other Resources
|