- C0 - Basics (playlist - 1:39:45)
- C0 - Part 1 - C Programming Basics (15:34)
- C0 - Part 2 - Hello World (6:47)
- C0 - Part 3 - Header Files and Man Pages (6:14)
- C0 - Part 4 - Control Flow and True/False (11:20)
- C0 - Part 5 - Function Declaration and Definition (4:13)
- C0 - Part 6 - Headers, Source Files, and Multi-Step Compilation (10:25)
- C0 - Part 7 - printf() and scanf() (intro) (9:45)
- C0 - Part 8 - printf() and scanf() (programming examples) (15:11)
- C0 - Part 9 - File I/O, fopen(), fclose(), fprintf(), and fscanf() (9:01)
- C0 - Part 10 - Standard File Streams and Error Checking (11:15)
- Lab 0 - Git And VSCode Familiarization (14:10)
- Lab 1 - Basic C Programming (playlist - 19:43)
- Lab 1 - Part 1 - Introduction (2:58)
- Lab 1 - Part 2 - Getting Started (16:45)
- C1 - Data Types, Arrays, Pointers (playlist - 1:56:29)
- C1 - Part 1 - Basic Data Types (12:40)
- C1 - Part 2 - sizeof() (3:02)
- C1 - Part 3 - Signed vs. Unsigned (8:34)
- C1 - Part 4 - 2’s Compliment (17:02)
- C1 - Part 5 - Numeric Operators (9:44)
- C1 - Part 6 - struct and typedef (9:56)
- C1 - Part 7 - Pointers (13:35)
- C1 - Part 8 - Step by Step Memory Diagram (7:58)
- C1 - Part 9 - Pointers to Structs (5:43)
- C1 - Part 10 - Arrays (6:58)
- C1 - Part 11 - Pointers to Arrays (11:45)
- C1 - Part 12 - Arrays of Structs (2:07)
- C1 - Part 13 - Passing Arrays to Functions (7:16)
- Lab 2 - Working with Arrays and Functions
- C2 - C Strings, Double Arrays, and Command Line Args (playlist - 1:27:43)
- C2 - Part 1 - C Strings and Arrays (6:14)
- C2 - Part 2 - Strings scanf() and Overflows (6:08)
- C2 - Part 3 - Comparing Strings and the String Library (16:36)
- C2 - Part 4 - String Length vs. sizeof() (7:56)
- C2 - Part 5 - Strings and Pointer Arithmetic (11:46)
- C2 - Part 6 - Pointer Arithmetic and Other Types (11:40)
- C2 - Part 7 - Double Arrays (8:12)
- C2 - Part 8 - Arrays and Strings (6:09)
- C2 - Part 9 - Command Line Args (5:08)
- C2 - Part 10 - Parsing Ints from Command Line Args (7:54)
- C3 - Dynamic Memory (playlist - 1:15:43)
- C3 - Part 1 - Memory Model and Stack Allocation (9:45)
- C3 - Part 2 - Heap Allocation (8:12)
- C3 - Part 3 - malloc() and free() (7:00)
- C3 - Part 4 - Program Memory Layout (5:19)
- C3 - Part 5 - Using Valgrind to Detect Memory Leaks and Violations (6:31)
- C3 - Part 6 - Dynamic Array Allocation (8:34)
- C3 - Part 7 - Allocating Double Arrays (10:05)
- C3 - Part 8 - Programming a Dynamic Data Structure (20:17)
- Project 1 - Boggle Solver (playlist
- J0 - OOP, Java Review, and Encapsulation (playlist - 1:05:06)
- J1 - Inheritance (playlist - 52:09)
- J1 - Part 1 - Motivating Inheritance (11:46)
- J1 - Part 2 - Extending a Class (14:41)
- J1 - Part 3 - Protected (17:06)
- J1 - Part 4 - UML Diagrams (8:36)
- J2 - Polymorphism (playlist - 50:11)
- J3 - Interfaces and Generics (playlist - 1:04:48)
- J3 - Part 1 - Multiple Inheritance Problem (9:39)
- J3 - Part 2 - Java Interfaces (14:05)
- J3 - Part 3 - Realizing Multiple Interfaces (4:48)
- J3 - Part 4 - Java Generics (11:50)
- J3 - Part 5 - Example Interfaces: Comparable (3:51)
- J3 - Part 6 - Example Interfaces: Iterable and Iterator (17:40)
- J3 - Part 7 - Java Collections (2:55)
- J4 - GUIs (playlist - 44:15)
- J5 - Threads (playlist - 57:04)
- J5 - Part 1 - Intro to Threads (7:44)
- J5 - Part 2 - Java Threads (12:38)
- J5 - Part 3 - Concurrence Volatile (7:30)
- J5 - Part 4 - Concurrency Synchronized (13:25)
- J5 - Part 5 - Non Atomic Operations (9:29)
- J5 - Part 6 - join (6:18)
- J6 - IO and Sockets (playlist - 59:00)
- J6 - Part 1 - Java IO Reading (15:58)
- J6 - Part 2 - Java IO Writing (7:23)
- J6 - Part 3 - Networking Client Server Model (10:31)
- J6 - Part 4 - Java Client Sockets( (14:25)
- J6 - Part 5 - Java Server Sockets (10:43)
- Project 3: GWack (playlist)