Class meets Tuesdays and Fridays. Dates follow the American University Fall 2026 academic calendar.
What are websites (front end): HTML, CSS, JavaScript. Semantic HTML structure.
Assignment 01: First Webpage (due Fri 9/11, before class)
NO CLASS Friday 9/4 – instructor illness
Tue 9/8: HTML topics originally planned for Fri 9/4. Fri 9/11: Box model, flexbox, grid, responsive design basics (CSS catch-up).
Assignment 02: CSS Basics (due Fri 9/18, before class)
Variables, functions, events, DOM selection and manipulation.
Assignment 03: The Adventure Game (due Tue 9/29, before class)
Forms, validation, simple state; limits of manual DOM updates.
Tue 9/22 in-class example: Building Elements with JavaScript (source)
Fri 9/25 in-class examples: Adventure Game Demo (source) and Buttons and Input Demo (source)
Tue 9/29: callbacks (function-as-value, a hand-written higher-order function, addEventListener revisited). Fri 10/2: anonymous functions, arrow function syntax, and map/filter/forEach/sort written with arrows.
Tue 9/29 in-class example: Callbacks Example (source)
Fri 10/2 in-class example: Arrow Functions and Array Methods (source)
Assignment 04: E-Commerce Front End (due Fri 10/9, before class)
Tue 10/6: closures. Fri 10/9: turning form input into objects, JSON, and saving data with localStorage.
Tue 10/6 in-class examples: Closure Basics (source) and Album Genres (source)
Fri 10/9 in-class example: Forms, JSON, and localStorage (source)
Assignment 05: Inventory Tool (due Tue 10/20, before class)
Tue 10/13: Assignment 05 work session; why web pages need asynchronous code, callbacks, and promises.
NO CLASS Friday 10/16 – Fall Break
Tue 10/20: classes, this, and a wrapper class around an array; map over an array of objects. Fri 10/23: setTimeout, promises, and fetch with public APIs.
Tue 10/20 in-class examples (open the console): MyArray Wrapper Class and Mapping an Array of Objects (source)
Fri 10/23 in-class examples (open the console): setTimeout, a Fake Promise, and a Real Promise (source) and Fetching Random Dog Images (source)
Tue 10/27: async/await, fetch with try/catch, URL parameters, and external libraries (p5.js, Chart.js) driven by API data; Assignment 06 work time. Fri 10/30: more p5.js with API data (a class for each creature, each with its own Pokémon); Assignment 06 work time.
Tue 10/27 in-class examples (open the console): A Pokémon in p5.js with fetch and await (source, script.js)
Fri 10/30 in-class examples: Pokémon Creatures in p5.js (source, script.js)
Assignment 06: Visualizing Data from an API (due Tue 11/3, before class)
Assignment 07: JSON World
Tue 11/3: Node.js basics (the Node runtime, npm, and simple command-line scripts). Then Express: routes, serving static files, handling GET/POST. Hosting server-side code, CORS, lightweight storage (JSON files).
Assignment 08 Part 1: Server World
Storing and retrieving data with a database.
Assignment 08 Part 2: Server World
Review vanilla pain points (state, re-rendering, routing). Basics of React.
Assignment 09: React Basics
Components, props, state, JSX, effects, rendering.
Assignment 09 Part 2: React routing and useEffects
Final Project: Full-Stack Web App
Deploying full-stack apps on Render. Last day of classes: a celebration of full-stack excellence!
Final Project: Full-Stack Web App