Videos

The videos here are available thanks to Luis Ceze and Gaetano Borriello (and previous 351 TAs Katelin Bailey and Rachel Sobel), from an online version of CSE 351 in 2013. Viewing these videos is optional. They are slightly outdated (use IA32 instead of x86-64), but are still useful for reviewing lecture content for large portions of this class. We may occasionally assign some videos to supplement topics that we cover only briefly in lecture.

Quizzes are not part of your course grade, but are a good way to self-check your understanding of content in the videos.

Tools, etc.

  1. Intro to the C programming language
  2. Intro to GDB (especially useful for lab 2)
  3. Buffer overflows (especially useful for lab 3)

Lecture Content

1. Memory, Data, and Addressing

  1. Hardware Preliminaries
  2. Memory Organization
  3. Memory Addresses
  4. Data and Memory in C
  5. Arrays
  6. Boolean Algebra and Bitwise Operations

2. Number Representation

  1. Encoding (quiz)
  2. Integers (quiz)
  3. Integers in C (quiz)
  4. Shifting (quiz)
  5. Fractions (quiz)
  6. IEEE Floating Point (quiz)
  7. Floating Point Operations (quiz)
  8. Floats in C (quiz)

3. Basic Machine Programming

  1. ISA (quiz)
  2. Architecture (quiz)

4. x86 Programming

  1. mov, swap (quiz)
  2. x86-64 (quiz)
  3. Address Computation (quiz)
  4. Condition Codes (quiz)
  5. Conditional Jumps (quiz)
  6. Loops (quiz)
  7. Switch (quiz)

5. Procedures and Stacks

  1. Stacks (quiz)
  2. Procedure Call and Return (quiz)
  3. Stack-Based Languages (quiz)
  4. Linux Stack Frame, Passing Arguments (quiz)
  5. Register-Saving Conventions, Local Variables (quiz)
  6. x86-64 Calling Conventions (quiz)

6. Data Structures

  1. Arrays (quiz)
  2. Multidimensional or Nested Arrays (quiz)
  3. Multi-Level Arrays (quiz)
  4. Structs (quiz)
  5. Data Structures and Memory Alignment (quiz)
  6. Buffer overflows (quiz)

7. Memory and Caches

  1. Cache Basics (quiz)
  2. Locality (quiz)
  3. Memory Hierarchies (quiz)
  4. Cache Organization 1 (quiz)
  5. Cache Organization 2 (quiz)
  6. Cache-Aware Optimizations (quiz)

8. Exceptional Control Flow and Processes

  1. Exceptional Control Flow (quiz)
  2. Processes (quiz)
  3. Process Creation (quiz)
  4. Process Management (quiz)

9. Virtual Memory

  1. Virtual Memory Overview (quiz)
  2. Indirection (quiz)
  3. Virtual Memory for Caching (quiz)
  4. Address Translation (quiz)
  5. Virtual Memory Examples (quiz)