Syllabus for Web Development - Autumn 2026

Course Description

This course is intended to prepare students with a general programming background to work on teams producing modern web applications. Students will learn a strong foundation of core web technologies and protocols, an overview of the major design patterns in the history of web development, and a detailed introduction to the current industry standard. We will have an emphasis on learning from publicly-available documentation, so that students are equipped to learn new techniques and frameworks in this rapidly-evolving field.

Specifically, the course will cover content layout and styling with HTML and CSS, dynamically generating page content on the web server, interacting with databases, interacting with remote resources using HTTP and REST, client-side interactivity with modern Javascript, and the creation of single-page applications. This course uses agile software techniques to build real, working software each week. We will work as closely as possible to how software is developed in industry, and all work is asynchronous, open-note and open-internet. Students make individual submissions to assignments, but encouraged to discuss them amongst themselves.

We have a GitHub Organization for the course at https://github.com/UChicagoWebDev. I will be posting lecture notes and slides there, at https://github.com/UChicagoWebDev/course_materials.

We have a Slack channel #web-development-autumn-2026 on the UChicago CS Slack for the course that everyone should join and use. That's the best place to ask questions about course content, so that the whole class can benefit from the answers.

Course Contents

Contact Info and Office Hours

Lecturer - Trevor Austin (trevoraustin@cs.uchicago.edu)

TAs - Zitong Li (mailto:lztong@uchicago.edu)

Office Hours

Video links for hours are in the Zoom Tab on Canvas

Textbooks and Materials

All students should have access to Anthropic's Claude. MPCS students should all have Claude Pro accounts already. Others may need to purchase a subscription.

All students should have a GitLab repository for the course, created for them automatically at https://gitlab.cs.uchicago.edu/courses/aut-26/mpcs52553. Speak to me if you have any trouble accessing it.

Assignments and Grading

Students will be expected to complete small assignments in class ("Labs"), more substantial take home exercises ("Exercises") due the next week before class. AI use on Labs and Quizzes is unrestricted and encouraged, but students should be prepared to demonstrate their understanding of the material in in-class discussion.

New this quarter, in light of the rapid development of AI tools, students will also complete pen and paper Quizzes in class, and a pen and paper Final Exam. No technology, including AI, will be allowed on the Quizzes or Final Exam.

Grading Policy

Because of our focus on writing working applications, this course can be a lot of work. But the material is accessible and the grading relatively generous. Grades are not curved in this class, and there is no reason every student could not receive an A. Instead they are based on the percentage of all possible points students have earned on their labs and exercises: - 90.0/93.0%: A-/A - 80.0/83.0/87.0: B-/B/B+ - 70.0/73.0/77.0: C-/C/C+ - Below 70.0: Dealt with on a case-by-case basis

Late Policy

In-class Labs are due at 8:30 pm. Take-home exercises are due at 5:00pm on the day of the next class session. Work that is submitted after the deadline without an extension is subject to a 1 point penalty per day. Start early. Extensions must be granted before the deadline, and requests will be regarded more favorably the sooner they are made and the earlier your git history for the assignment begins.

Submitting on Canvas tells the grading team that you are done with the assignment, so you may push your code to GitLab as you work, even past the deadline, without fear that incomplete work will be graded. If you push to GitHub on time but forget to submit on Canvas, we will use the GitLab timestamp as the official submission and not penalize you.

Extra Credit

1 point per course session of extra credit may be awarded at the instructor's discretion for significant contributions to in-class discussion.

Tentative Weekly Schedule

Web Pages as Documents

Week 1 (1/10/25) - HTML5: Semantic Markup, Elements, Attributes, and the DOM - CSS3: Fonts, Colors, Borders, Ids, Classes, the Box Model, the Inspect panel - Exercise #1: Static Pages: A Resume

Week 2 (1/17/25) - HTML5 Accessibility, Screen Readers, Visual Alerting, Captioning - CSS3: Media Queries, Mobile-First Design, Icons, Web Fonts, Modern Layouts with Border-Box, Flexbox, and Grid - CSS Frameworks - Exercise #2: Advanced Layout: a Landing Page

Web Pages as Catalogs

Week 3 (1/24/25): - HTTP Network Basics, CRUD Operations, URL Parameters, Forms and Validation - Intro to the LAMP Stack and Flask - Intro to Databases - Exercise #3: Web Journal

Week 4 (1/31/25): - Javascript: ES6, Functions, Callbacks, DOM manipulation, Page State - Connecting to REST APIs - Advanced Databases - Exercise #4: Mood Board

Web Applications

Week 5 (2/7/25): - Timers, Asynchronous Functions, Promises - Intro to Node - Exercise #5: Watch Party

Week 6 (2/15/25): - Secure Logins - Single-Page Applications - Exercise #6: Watch Party 2: The Single-Page Experience

Week 7 (2/22/25): - Intro to React: Components, Props, State, JSX - Exercise #7: Watch Party 3: Chain Reaction

Week 8 (3/1/25): - Node - Javscript Modules - Typescript - CORS - Exercise #8: Watch Party 4: Just My Type

Week 9 (3/8/25): - Websockets - Security and Cloud Hosting - Exercise #9: Watch Party 5: For Real Time

Course Prerequisites

Students must be fluent in at least one programming language, preferably an object-oriented language. This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas if you do not have familiarity working on the command line in *nix environments.