CSC-336 Web Programming

Course Schedule (SUBJECT TO CHANGE)

Back to Home

Class meets Tuesdays and Fridays. Dates follow the American University Fall 2026 academic calendar.

Part I: Foundations (Weeks 1–8)

  1. Week 1 (Tue 9/1, Fri 9/4) – Introduction to the Web

    What are websites (front end): HTML, CSS, JavaScript. Semantic HTML structure.

    Assignment 01: First Webpage (due Fri 9/11, before class)

    GitHub Setup Instructions

    NO CLASS Friday 9/4 – instructor illness

  2. Week 2 (Tue 9/8, Fri 9/11) – HTML (continued) & CSS Basics

    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)

  3. Week 3 (Tue 9/15, Fri 9/18) – JavaScript Basics

    Variables, functions, events, DOM selection and manipulation.

    Assignment 03: The Adventure Game (due Tue 9/29, before class)

  4. Week 4 (Tue 9/22, Fri 9/25) – Interactivity with Vanilla JS

    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)

  5. Week 5 (Tue 9/29, Fri 10/2) – Callbacks & Arrow Functions

    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)

  6. Week 6 (Tue 10/6, Fri 10/9) – Closures, Forms, JSON & localStorage

    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)

  7. Week 7 (Tue 10/13, Fri 10/16) – Introduction to Asynchronous Code

    Tue 10/13: Assignment 05 work session; why web pages need asynchronous code, callbacks, and promises.

    NO CLASS Friday 10/16 – Fall Break

  8. Week 8 (Tue 10/20, Fri 10/23) – Further Adventures in JavaScript: Classes, Promises & Fetch

    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)

Part II: Servers & Data (Weeks 9–11)

  1. Week 9 (Tue 10/27, Fri 10/30) – async/await & Front-End Libraries

    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

  2. Week 10 (Tue 11/3, Fri 11/6) – Node.js Basics, Express Servers and Persistence

    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

  3. Week 11 (Tue 11/10, Fri 11/13) – Databases

    Storing and retrieving data with a database.

    Assignment 08 Part 2: Server World

Part III: Frameworks & Modern Development (Weeks 12–15)

  1. Why Frameworks? Week 12 (Tue 11/17, Fri 11/20) – Introduction to Frameworks

    Review vanilla pain points (state, re-rendering, routing). Basics of React.

    Assignment 09: React Basics

  2. Week 13 (Tue 11/24, Fri 11/27) – NO CLASS - Thanksgiving Break

  3. Week 14 (Tue 12/1, Fri 12/4) – React Fundamentals, continued

    Components, props, state, JSX, effects, rendering.

    Assignment 09 Part 2: React routing and useEffects

    Final Project: Full-Stack Web App

  4. Week 15 (Tue 12/8, Fri 12/11) – Final Project Workshop & Final Session

    Deploying full-stack apps on Render. Last day of classes: a celebration of full-stack excellence!

    Final Project: Full-Stack Web App

View Course Syllabus