MPCS 52553 Web Development (Spring 2023)

Section 1
Instructor(s)
Location None
Meeting Times
Fulfills Elective Specialization - Application Development (APP-1)

Syllabus

*Please note: This is the syllabus from the 2021/22 academic year and subject to change.*

 

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 webserver, 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 on how software is developed in the industry, and all work is asynchronous, open-note, and open-internet, with collaboration, encouraged.

Course Contents

  • Fundamentals of HTML5, CSS3, and JavaScript/ES6 for front-end programming
  • Visual Design and Responsive Web Design
  • Client/Server Communication
  • Building Web Applications
  • Single-page application development
  • Server-side page rendering
  • Database-driven application development
  • Content Management Systems
  • REST API development 
  • Network Attacks & Web App Security
  • Debugging tools and techniques

Tentative Weekly Course Schedule

Week 1 (Exercise #1): 

  • Web foundations
  • HyperText Markup Language (HTML)

Week 2 (Exercise #2): 

  • URL and Links
  • Cascading Style Sheets (CSS)

Week 3 (Exercise #3): 

  • JavaScript Basics
  • JavaScript Programming

Week 4 (Exercise #4): 

  • Document Object Model (DOM)
  • DOM - Events
  • Asynchronous Functions, Promises

Week 5 (Exercise #5): 

  • Intro to Front End Programming
  • Introduction to ReactJS
  • Introduction to Angular
  • Single Page Applications

Week 6 (Exercise #6): 

  • Responsive Web Design
  • Building Web Applications
  • Client/Server Communication

Week 7 (Exercise #7): 

  • Web Servers / Intro to the LAMP Stack
  • Node.js/ExpressJS
  • Apache/PHP

Week 8 (Exercise #8): 

  • Storage Tier
  • Cookies and Session
  • Input and Validation

Week 9 (Exercise #9): 

  • Web services
  • REST API development 
  • SOAP API
  • XML

Week 10: 

  • Web App Security
  • Network Attacks
  • Large scale applications
  • Cloud Hosting
  • Data Centers

Exercises: Students will be expected to complete:

  • 7-9 programming exercises due the day before class
  • 1 final project due by the end of finals week

References 


Office Hours
By appointment 

Contact Info
ralmhana@uchicago.edu

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

  • 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
Exercises and quizzes are due the day before the class. Late Exercises are accepted but penalized 1 point per hour.

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 (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas.

Overlapping Classes

This class is scheduled at a time that does not conflict with any other classes this quarter.

Eligible Programs

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