Topic Videos

Overview

The videos below are from an old online version of 351 and are available thanks to Luis Ceze and Gaetano Borriello (and past 351 TAs Katelin Bailey, Rachel Sobel, Kevin Bi, Thomas Neuman, and An Wang). Viewing these videos is generally optional, though they may be useful for reviewing lecture content or use of important tools for lab. We may occasionally assign some videos to supplement topics which we may cover only briefly in lecture.

Background, Tools, Debugging
Intro to the C programming languageNot CaptionedCaptioned
Macros in CNot CaptionedCaptionedespecially useful for lab 5
Intro to GDBNot CaptionedCaptioned
Endianness in GDBNot CaptionedCaptionedespecially useful for lab 3
Debugging in GDB using backtraceNot Captionedespecially useful for lab 5
Lecture Topics

Boolean Algebra and Bitwise Operations

Hardware PreliminariesNot CaptionedCaptioned
Memory OrganizationNot CaptionedCaptioned
Memory AddressesNot CaptionedCaptioned
Data and Memory in CNot CaptionedCaptioned
ArraysNot CaptionedCaptioned
Boolean Algebra and Bitwise OperationsNot CaptionedCaptioned

x86-64 Calling Conventions

StacksNot CaptionedCaptioned
Procedure Call and ReturnNot CaptionedCaptioned
Stack-Based LanguagesNot CaptionedCaptioned
Linux Stack Frame, Passing ArgumentsNot CaptionedCaptioned
Register-Saving Conventions, Local VariablesNot CaptionedCaptioned
x86-64 Calling ConventionsNot CaptionedCaptioned

Buffer overflows

ArraysNot CaptionedCaptioned
Multidimensional or Nested ArraysNot CaptionedCaptioned
Multi-Level ArraysNot CaptionedCaptioned
StructsNot CaptionedCaptioned
Data Structures and Memory AlignmentNot CaptionedCaptioned
Buffer overflowsNot CaptionedCaptioned

Cache-Aware Optimizations

Cache BasicsNot CaptionedCaptioned
LocalityNot CaptionedCaptioned
Memory HierarchiesNot CaptionedCaptioned
Cache Organization 1Not CaptionedCaptioned
Cache Organization 2Not CaptionedCaptioned
Cache-Aware OptimizationsNot CaptionedCaptioned

Process Management

Exceptional Control FlowNot CaptionedCaptioned
ProcessesNot CaptionedCaptioned
Process CreationNot CaptionedCaptioned
Process ManagementNot CaptionedCaptioned

Virtual Memory Examples

Virtual Memory OverviewNot CaptionedCaptioned
IndirectionNot CaptionedCaptioned
Virtual Memory for CachingNot CaptionedCaptioned
Address TranslationNot CaptionedCaptioned
Virtual Memory ExamplesNot CaptionedCaptioned

Memory Allocation Bugs

Memory Allocation IntroNot CaptionedCaptioned
ExamplesNot CaptionedCaptioned
Implicit Free ListsNot CaptionedCaptioned
Explicit Free ListsNot CaptionedCaptioned
Garbage CollectionNot CaptionedCaptioned
Memory Allocation BugsNot CaptionedCaptioned

Java Virtual Machine

Java Data RepresentationNot CaptionedCaptioned
Java ImplementationNot CaptionedCaptioned
Java Virtual MachineNot CaptionedCaptioned