About the course

This course will focus on web programming and good software development techniques. Teams (of size 2-3) will build and deploy a web application as the class project. We'll explore the "culture" of web programming such as agile methodology, testing, key aspects of software engineering, using web services and APIs, and deploying to the cloud.

Throughout the semester, teams will learn and use the same world-class tools that are used to deploy and build real world web apps such as NodeJS, GitHub, MongoDB, MySQL, Heroku, React, Jest, Selenium, Redux, etc.


Eric Fouh
efouh [at] cis.upenn.edu


You should be comfortable with programming (in Java) and data structures - i.e., CIS 121, CIT 594, or equivalent.


Here's the tentative list of topics:

  • Basics of the Internet and the Web
  • JavaScript - basics and advanced
  • Software Architecture, Software as a Service, REST, MVC
  • Databases: SQL and NoSQL
  • Testing, TDD
  • Security
  • State management
  • Deployment and Monitoring


The (tentative) guidelines for the final grade are:

  • 35% individual homework
  • 35% team project
  • 20% midterm exams 1 and 2
  • 10% reading quizzes + class participation


No textbook.