Topics
Course content organized by topic. Each topic links to its content slides and the sessions where it is taught.
Foundations
Tools
1 session · GitHub Pages activation, deploy troubleshooting (file paths, casing, missing index.html), GitHub Actions deploy status…
1 session · version control concepts, Git basics, GitHub Desktop workflow (commit, push, pull)…
1 session · client/server model, DNS, HTTP request/response…
Not yet scheduled · user + content first, sketching screens / wireframes, breaking a page into components…
HTML & CSS
2 sessions · document structure, common tags, semantic HTML…
1 session · selectors (element/class/ID/pseudo), the cascade, specificity at a working level…
2 sessions · box model, display values, Flexbox (justify/align/direction/gap)…
1 session · form element and action, input types and labels, GET vs POST…
1 session · viewport meta, mobile-first media queries, fluid layouts…
Not yet scheduled · transitions and keyframe animations, CSS variables, frameworks (Tailwind intro)…
JavaScript
1 session · document.querySelector, addEventListener, modifying text/style…
2 sessions · const/let (no var), primitive types, string vs number…
1 session · array literals, for loop, for...of…
1 session · fetch, await, JSON…
1 session · separation of concerns / why split files, export / import (ES modules) + script type=module, comments and TODOs…
1 session · localStorage (save data between visits), setTimeout / setInterval (timers), Geolocation API…
1 session · pixels and RGBA, canvas + getImageData / putImageData, per-pixel for loop…
1 session · an extension is a folder + manifest.json (no build, no server, no deploy), content scripts = your DOM code on someone else's page, matches / host permissions as a judgment call…
Not yet scheduled · entity-driven vs component-driven, controllers → event handlers, the JSON you return → DOM updates…
AI Track
1 session · Markdown syntax (headings, lists, code fences, links), writing prompts that get useful output, ask modes: explain vs generate vs refactor
2 sessions · read HTML/CSS/JS that AI produced, identify unfamiliar pieces, ask AI to explain specific pieces (not the whole thing)
2 sessions · Copilot: inline + chat + edits, Cursor, Claude Code…
1 session · .gitignore, config.js pattern, why API keys must not be in client-side code…
2 sessions · POST with fetch (body + headers), OpenAI Responses API (model, input, instructions), reading the reply JSON (output array)…
1 session · GitHub Pages vs Vercel (when you need a server), Vercel + serverless functions for hidden API keys, custom domains via Cloudflare…
2 sessions · terminal-based AI coding, multi-step workflows, when to let the agent run vs review each step…
Not yet scheduled · when AI output is overcomplicated, when it uses a library you haven't learned, asking for a refactor without losing the working version…
Not yet scheduled · console errors and what they say, Network tab for fetch failures, Elements tab for CSS overrides…
Projects
MP1: Website for Someone Else (launch) MP1 Progress Demo (mid) MP1 Final Showcase MP2 Final Showcase MP3: API-Powered App (launch) MP3 Final Showcase Final Demo Day Final Project Introduction MP2: Interactive Web Tool (launch)