COMP 211
Home
Lectures
Extra resources
Beyond 211
Grammars
Video Lectures
Slides
Lesson 01 - Context Free Grammars
Lesson 02 - Context Free Grammars Practice
Everything vim!
Video Lectures
Lesson 03 - What is vim? A brief history and motivation
Lesson 04 - Starting and Exiting vim Sessions
Lesson 17 Playlist - vim - registers, macros, visual mode, windows
Slides
Lesson 03 - What is vim?
Lesson 04 - vim Start Stop
Lesson 05 - vim Grammar
Lesson 17 - Advanced vim
Extra Resources
vim Cheatsheet
Everything git!
Video Lectures
Lesson 06 - What is a version control system? What is git?
Lesson 07 - git Fundamentals - add, commit, branch, checkout, merge
Lesson 07 - The Grammar of vim - an introduction to the fundamental movements and actions.
Lesson 28 Playlist - git merging
Slides
Lesson 06 - git Background
Lesson 07 - git Fundamentals
Lesson 28 - git Merging
Numerical representations, n-ary, bits, and ASCII!
Video Lectures
Lesson 09 - Bits, Nibbles, and Bytes in Memory
Lesson 10 - Decimal System - Base 10 - Tutorial
Lesson 12 - Hexadecimal - Base 16
Lesson 13 - Signed Binary Representation - Two's Complement System
Lesson 14 - Bit Patterns in C - Binary and Hex Literals
Lesson 15 - ASCII Encoding and Binary
Lesson 16 - Bitwise Operators in C
Lesson 19 - Toward Floating Point Representation: Fractional Numbers
Lesson 19 - Toward Binary Floating Point: Decimal Floating Point
Lesson 19 - Binary Representation of Floating-Point Values - Mini-float 8-bit Floats
Slides
Lesson 09 - Bits, Nibbles, and Bytes Abstraction
Lesson 10 - Decimal Base 10
Lesson 11 - Binary Base 2
Lesson 12 - Hexadecimal Base 16
Lesson 13 - Two’s Complement Signed Integers
Lesson 19 - Floating Point
Lesson 14 - Bit Patterns
Lesson 15 - ASCII
Lesson 16 - Bitwise Operators
Pointers, arrays, and structs :)
Video Lectures
Lesson 20 - Introducing Pointers and the Address of Operator in C
Lesson 21 - C Arrays and Pointers to Pointers
Lesson 29 - Function Pointers in C - How to Read and Write Function Pointer Types and use Dynamic Dispatch
Lesson 30 - Structs in C - An Introductory Tutorial on typedefs, struct pointers, & arrow operator
Lesson 32 - Design Principles with Pointer Parameters and Functions
Slides
Lesson 20 - Pointers
Lesson 21 - Arrays
Lesson 29 - Function Pointers
Lesson 30 - Structs
Lesson 32 - Design Principles of C Functions with Pointer Parameters
Extra Resources
Bitwise Cheatsheet
Lifetimes and memory
Video Lectures
Lesson 22 - Where in a Process' Memory are Arguments and Environment Variables? Let's explore in a C program!
Lesson 24 - The Lifetime of Automatic, Stack Variables in the C Programming Language
Lesson 25 - Static Memory and Static Lifetimes in the C Programming Language
Lesson 26 - malloc, calloc, realloc, and free - Introducing Dynamic Heap Memory System Calls in C's stdlib.h
Slides
Lesson 22 - Arguments and Environment Variables
Lesson 24 - Lifetimes of Automatic Variables
Lesson 25 - Lifetimes of Static Variables
Lesson 26 - Dynamic Memory
Lexical analysis, parsing, and processes
Video Lectures
Lesson 34 Playlist - Vec Interface and Implementation
Lesson 35 Playlist - Lexical Analysis, Regular Expressions, and Tokenization
Lesson 36 Playlist - Parsing and Unions
Lesson 37 Playlist - Input/Output, Pipes, and a cat Implementation
Lesson 38 Playlist - exec, dup2, and fork
Lesson 39 Playlist - Executing a command, Piping Strategy, and a Shell Tutorial!
Shell Scripting Playlist
Slides
Lesson Lesson 35 - Lexical Analysis
Lesson Lesson 36 - Recursive Descent Parsing
Other (modules, abstraction, testing)
Video Lectures
Lesson 31 - C "Modules" - Tutorial on .h Header Files, Include Guards, .o Object Code, & Incremental Compilation
Lesson 34.1 - Abstraction Barriers
Lesson 34.5 - Testing with Test-driven Development to Increase Confidence and Avoid Regressions
Lesson 33.2 - C - Unit Testing Introduction with Google Test
Slides
Lesson 31 - Modularization
Lesson 34 - Abstraction Barriers
Lesson 34.5 - Testing