C Systems Lab Course — Overview

A ground-up systems programming curriculum targeting developers with OOP backgrounds (Java, C#, JavaScript). The project has two deliverables:

Web App (complete)

A free, self-hosted React/Vite site with a dark terminal aesthetic. 10 modules, each containing 5 lessons + 1 capstone project. Deployed to Cloudflare Pages. Progress tracking via localStorage. Key design choice: inline styles + CSS variables (no Tailwind). Fonts: JetBrains Mono (body/code), Bebas Neue (headings).

Content is data-driven — each module lives in src/data/modules/m{N}.js exporting a structured object with lessons and sections. Section types include text, heading, code, callout, breakdown, stages, list, action, shell, expect. A simulated terminal (terminalScripts.js) provides interactive practice per lesson.

Companion PDF (shipped)

A paid Typst-based PDF sold on Gumroad. Adds what the static site can’t: exercises with annotated solutions, deeper “why” explanations, real-world codebase connections (SQLite, Redis, CPython, Linux kernel), a debugging chapter, and interview prep. All 12 chapters are written (ch12 = Game Boy Emulator capstone, PDF-exclusive) plus 4 appendices. The product now builds four local outputs: companion.pdf, companion-demo.pdf, companion-solutions.pdf, and companion-complete.pdf. The 2026-04-15 revision/QA pass validated the current baseline at 48 exercises / 12 chapters / 4 appendices.

Module Map

#TitleSubtitleLessonsProject
1m01-c-is-not-javaMindset shift for OOP developers5CLI Calculator
2m02-pointers-memory-modelThe core of C6Implement the String Library
3m03-dynamic-memoryYou own the heap5vec_t — Dynamic Array
4m04-structs-unions-bitfieldsLaying out data in memory5Free-List Allocator
5m05-c-preprocessorA separate language inside .c files5Debug Logging System
6m06-file-io-syscallsYour code talking to the OS5xxd — Hex Dumper
7m07-processes-signalsThe Unix process model5Minimal Shell
8m08-sockets-networkingNetwork code that works5HTTP/1.1 Static File Server
9m09-concurrencyThreads, mutexes, race conditions5Thread Pool with Work Queue
10m10-going-below-cRegisters, assembly, hardware5Coroutine Library

Concept Progression

The curriculum follows a deliberate bottom-up path: compilation model → types → pointers → heap → data layout → preprocessor → OS interface (files → processes → network) → concurrency → hardware. Each module assumes mastery of previous ones.

Key Design Decisions

  • OOP audience framing: Every concept is introduced relative to what a Java/C# developer already knows, then stripped down to what C actually does.
  • No textbook structure: Lessons read like guided walkthroughs, not reference material.
  • Projects are substantial: Shell, HTTP server, thread pool, coroutine library — these are real systems, not toys.
  • PDF as paid upsell: The web app is free and complete; the PDF adds structured practice and depth for serious learners.

Open Work

  • meta-project-status: Detailed completion tracking
  • PDF promotion gate — Gumroad listing updates (P1.6), price floor adjustment (P1.7), distribution priming HN/Reddit/Bluesky (P1.8). Active plan: VHCosta/csl → plans/2026-04-20-design-companion-v1x-plan.md.
  • PDF pre-publish audit — GUI viewer audit, full visual artifact pass all four outputs, release sign-off note.
  • Strategic questions — PDF versioning, long-term pricing, exercises repo as independent product, expansion beyond C. See source-product-strategy.