MPCS 52553 Web Development (Autumn 2022)

Section 1
Instructor(s) Cohen, Jeffrey (jeffcohen)
Location JCL 011
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Elective Specialization - Application Development (APP-1)


Course Description

This course is intended to prepare students with a general programming background to work on 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. 

Most of the course is focused on modern "front-end" development: client-side interactivity with modern Javascript, single-page applications, and interacting with remote resources using HTTP and REST.  But we also cover the basics of back-end development as well.

Please note that lectures are about 2 hours long, but may be slightly longer as needed.  In addition, asynchronous videos, about 1 hour per week, are required viewing between classes.  

All homework and quizzes are asynchronous, open-note, and open-internet, but quizzes are generally timed. Homework collaboration is encouraged but subject to the department's academic honesty policy.


Course Contents

  • Fundamentals of HTML5, CSS3, and JavaScript/ES6 for front-end programming
  • Visual design, accessibility requirements, and assistive technologies
  • Mobile website development
  • Single-page application development in React
  • Essentials of HTTP 1.1 and 2.0
  • Server-side logic and templating
  • REST API development with Python/Flask
  • Debugging tools and techniques


Course Work

Students will be expected to complete:

  • 6 take-home quizzes (60 pts)
  • 5 programming assignments (80 pts)



MDN Web Docs:
SQLite Documentation:
Flask Documentation:
React Documentation:

Office Hours

TBD. May be via Zoom depending on COVID conditions.

Contact Info

Grading Policy
Grades are not curved in this class, and instead are based on the sum of all points students have earned on their quizzes, excercises, and final projects:

  • 93.0 and above: A
  • 90.0 and above: A-
  • 87.0 and above: B+
  • 83.0 and above B
  • 80.0 and above B-
  • 77.0 and above C+
  • 73.0 and above: C
  • 70.0 and above C-
  • Below 70.0: Dealt with on a case-by-case basis

Late Policy

Assignments are due within a designated two-week time period rather than hard deadline dates, but late work is generally not accepted.

Tentative Weekly Schedule

Web Pages as Documents

  • Week 1: Developming an Eye for the Web, HTML5, CSS3
  • Week 2: Classic JavaScript, Box Model, Web Fonts, Modern Layouts with Border-Box, Flexbox, and Grid.
  • Week 3: Modern JavaScript Syntax, Functions, Callbacks, DOM Manipulation, Connecting to REST APIs
  • Week 4: HTTP Network Basics, CRUD Operations, URL Parameters, Forms and Validation
  • Week 5: Abstractions and Frameworks: Media Queries, Mobile-First Design, CSS Frameworks. Server-Side Development Part 1
  • Week 6: Intro to React, Components, JSX, Server-Side Development Part 2
  • Week 7: Reach Props, State, HTML5 Accessibility, Screen Readers
  • Week 8: React Hooks, Composability
  • Week 9: The Future Web: WASM, WebSockets, H3

Course Prerequisites

Core Programming

Other 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 ( or review the UChicago CS Student Resource Guide here:

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 53020-1 -- Foundations of Database Systems
  • MPCS 56511-1 -- Introduction to Computer Security
  • MPCS 55001-2 -- Algorithms
  • MPCS 53112-1 -- Advanced Data Analytics

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 1: Research-Oriented) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)