Teaching

Web Programming

Description

The web is arguably today’s most important application platform. Web browsers run on practically every device, and even many phone applications are in fact web applications under the covers. This course covers a broad range of client-side web technologies, including HTTP itself, HTML5, CSS, and JavaScript; it additionally covers key concepts for the server side of web applications, including persistent storage and databases. This course is hands-on and heavily project-based; students will construct a substantial dynamic web application based on the concepts, technologies, and techniques presented in the knowledge units. This course satisfies the IE Requirement and an Elective for both the CS and INFORM Majors.

Prerequisites: COMPSCI 220 with a grade of C or better, or INFO 248 and CICS 210 (or COMPSCI 187) with a grade of C or better. 4 credits. Instructor: Tim Richards.

Overview

You build a real running server in the first week and a complete full-stack web application by the end of the term. The course is concept-first: most units have you build or observe something before the pattern behind it is named. Along the way you work with Express on Node.js, HTML and CSS, JSON APIs, MongoDB with Mongoose, Jest tests, HTMX, Tailwind CSS, accessibility, and authentication and authorization. All of it runs in a development container, so everyone works in the same environment.

Git and GitHub are not side tools here. Every homework, sprint, and line of project code lives in a repository, and a weekly lab builds those skills one at a time.

How the course is structured

  • Knowledge units. 18 units, two a week. You read each unit before its lecture; lecture is where we clear up what did not land and build something with it.
  • Lectures. Twice a week, in person: a short reading check before class, a paired in-class activity, a discussion, and an exit ticket.
  • Labs. One Friday lab section a week, ten labs in all, each teaching one Git skill: from the first commit to branching, rebasing, bisect, and worktrees.
  • Homework. Four autograded assignments in Gradescope, each covering a block of units and labs.
  • Team project. Teams of 3 to 4 build one application across six sprints, in the spirit of Computing for the Common Good. Units finish in Week 10; the rest of the term is project time. The project ends with the repository, a recorded demo, a poster, and individual reflections.
  • No exams. Grades come from quizzes, homework, labs, sprints, the project, and in-class work. No curve, no extra credit.

AI tools have a clear, graded-by-level policy: they may help you learn, but no AI writes work that is being evaluated. The details are in the syllabus.

Read the Spring 2027 syllabus

Canvas opens to enrolled students at the start of the term. Staff, office hours, and the dated calendar are posted there.