Software Engineering for Web Applications

A photo of people and pigeons in the plaza.

A photo of Plaza de Bolivar in Bogota, Colombia found on, a bilingual online community developed by 6.171 students Aimee Lee and Kathy Lee. (Image courtesy of Sandra Gaviria.)


MIT Course Number


As Taught In

Fall 2003



Translated Versions


Cite This Course

Course Description

Course Features

Course Highlights

The detailed syllabus includes a summary of the history and pedagogy of 6.171.

Course Description

6.171 is a course for students who already have some programming and software engineering experience. The goal is to give students some experience in dealing with those challenges that are unique to Internet applications, such as:

  • concurrency;
  • unpredictable load;
  • security risks;
  • opportunity for wide-area distributed computing;
  • creating a reliable and stateful user experience on top of unreliable connections and stateless protocols;
  • extreme requirements and absurd development schedules;
  • requirements that change mid-way through a project, sometimes because of experience gained from testing with users;
  • user demands for a multi-modal interface.

Related Content

Harold Abelson, and Philip Greenspun. 6.171 Software Engineering for Web Applications. Fall 2003. Massachusetts Institute of Technology: MIT OpenCourseWare, License: Creative Commons BY-NC-SA.

For more information about using these materials and the Creative Commons license, see our Terms of Use.