Lesson catalog
Ten weeks, three modules, thirty lessons. Each entry lists what the lesson actually covers, how long it takes to read, and where it sits in the textbooks. Click a module to expand.
- Weeks
- 10
- Lessons
- 30
- Textbooks
- 2
- This week
- —
Module I · Weeks 1–3 Unix & Shell
The shell as a real programming environment. By week three you can move through a filesystem, wire programs together with pipes, and read a man page without flinching.
-
Week 01 This week
- Unix History & the ShellWhere Unix came from, the three principles, and your first look at the terminal
- Your First Commandswhoami, pwd, ls, cd, and the five-step process that runs every command you type
- Files, Directories & Pathsmkdir, cd, cp, mv, rm — building and organizing your workspace from the command line
-
Week 02 This week
- Man Pages & Getting HelpFour types of commands, the manual system, and how to answer your own questions
- File PermissionsThe 10-character permission string, chmod, and why 'permission denied' happens
- Redirection & Pipesstdout, stderr, stdin — rewiring program I/O and building data pipelines
- Shell EnvironmentPATH, .bashrc, environment variables, and configuring your shell
- Shell Expansion & QuotingHow the shell rewrites your commands before executing them — and how to control it
-
Week 03 This week
Module II · Weeks 4–6 C Fundamentals, Pointers & Files
The paradigm shift from Java. Raw memory, manual allocation, and the pointer-arithmetic idioms every later week depends on.
-
Week 04 This week
- Java to CThe paradigm shift from managed-language CSCD 210 to raw-memory C, and every first-day mechanic you need for Lab 1
- Operators & ExpressionsArithmetic, comparison, logical, bitwise, and the one typo that sank more systems than any other
- Control Flow & FunctionsBranching, loops, and how C functions pass arguments by value
-
Week 05 This week
- PointersThe address-of operator you have been using with scanf, generalized into the feature that makes C usable
- Dynamic MemoryStack vs heap, malloc and free, and the bug taxonomy you will meet for the rest of your career
- FilesFILE*, fopen, fread/fwrite, fscanf/fprintf, and why stderr exists
- Three-File Formatmain.c + lib.c + lib.h, the one-definition rule, and why programs split cleanly or painfully
-
Week 06 This week
- Structs & typedefBundling related data into one type, and how the -> operator reads through a struct pointer
- Arrays of Structs & SortingOrganizing collections of records, and the two sorts you should be able to write from scratch
- 2D ArraysRows and columns, row-major memory layout, and why pointer arithmetic still works
Module III · Weeks 7–9 Advanced C & Systems
Generic code with void pointers and function pointers, heap-connected data structures, and the Unix system calls that make a shell possible.
-
Week 07 This week
-
Week 08 This week
-
Week 09 This week