MIT-Software Engineering for Web Applications

download MIT-Software Engineering for Web Applications

of 2

Transcript of MIT-Software Engineering for Web Applications

  • 7/31/2019 MIT-Software Engineering for Web Applications

    1/2

    13/12Ware | Electrical Engineering and Computer Science | 6.171 Software Engineering for

    w.mit.edu/courses/electrical-engineering-and-computer-science//syllabus/

    Syllabus

    Course Meeting Times

    Lectures: 2 sessions / week, 1.5 hours / session

    Prerequisites

    This is a senior-level class at MIT where we expect the average student to be working on a bachelor's ormaster's degree in computer science, to have taken our introduction to computer science (6.001), to have takenour core software engineering class (6.170), and to have done a t least some programming during summer jobs.

    That said, the class does not requ ire any knowledge o f particular computer languages or syste ms. I.e., thestudents will learn enough about the required tools as the course progresses.

    Admission to 6.171 is by permission o f instructor. If you'd like to take the class , please fill out the survey (PDF)and return it via email. If you are unsure about whether your prepa ration is adequa te, a good way to find out isby simply doing the wo rk in the first chapter/problem set and including the URL of your running system in yoursurvey. This w ill reassure us of your ability to install and maintain the multiple subsystems that are ,unfortunately, required to support a modern Web application.

    Description

    This is a course for students who already have some programming and software engineering experience, e.g., atMIT the prerequisite is 6.170, Laborato ry in Software Engineering. In 6.171 we try to give stude nts someexperience in dealing with those challenges that are unique to Internet applications:

    Concurrency 1000 people might be us ing the system at the same timeUnpredictable load 100,000 users might show up tomorrow even if only 100 are using the system todaySecurity risks an Internet application is forced to expose itse lf to attacksOpportunity for wide-area d istributed computing, i.e., using "Web services" provided by other machines onthe InternetCreating a reliable and stateful user experience on top of unreliable connections and stateless protocolsExtreme requirements and absurd development schedulesRequirements that change mid-way through a project, sometimes be cause of experience gained from testingwith usersUser demands for a multi-modal interface: Web, mobile (WAP), and voice

    The bottom line: we want one someone who has finished this course to be able to build amazon.com, eBay,or photo.net by him or herself.

    This is a laboratory course whe re most of the learning occurs during the completion of problem sets. Studentsorganize into groups o f 2-4 for the purpo se o f building an online learning community. Each problem set isdevoted to adding features and capabilities to the online community. We encourage students to work with a real

    customer or client. Good sources of clients for online communities include o rganizations that want knowledgesharing systems (intranets) and non-profit organizations that wish to operate a public online learning communitywithin their area of expertise. Students w ho themselves have a passion for a particular topic sometimes build anonline community in that area.

    Practical Stuff

    One of the good things about 6.171 is that students are free to use too ls of their choosing in completing thecoursework. The ups ide of this is that if you've had a summer job in which you used Postgres and PHP (forexample), you won't be distracted during the semester by having to learn new syntax. The downside is that we,the teaching staff, can't help you very much with setup and administration of tools. Each student is expected toset up and maintain his or her environment, on his or her own computer, idea lly a couple of weeks before thestart of the semester.

    If you have not done any Web development already and therefore aren't familiar with any of the standard tools,we can suggest some ways to configure your development server base d on our past e xperience. The Basicschapter of the course text discusses tool options. In choosing tools, please note that 6.171 requires the use ofan ACID-compliant relational database manage ment system. You'll learn the definition of "ACID" during thesemester. But for now suffice it to say that MySQL is out; Microsoft SQL Server, Postgres, and Oracle are in.

    Here are some helpful links for things that are either popular or non-obvious:

    Microsoft .NET, SQL Server, Windows 2003: these tools are available at no charge to MIT students doingcourseworkThe Oracle database server: all the Oracle database server tools can be downloaded; these are a vailable atno charge to developers worldwide; the versions that you download do not expire and are not crippled inany wayPostgreSQLAOLserver; if you need help plugging it together with Oracle or Postgres, look at these forumsApache: Apache HTTP Server Project and Apache ModulesMicrosoft Internet Information Server (IIS): microsoft.public.inetserver.* new sgroups

    Grading and Required Work

    Participation in Design Reviews (30%)

    A central activity in 6.171 is presentation of des igns and critique of those designs. This happens mostly in classbut also via written critiques. When you're presenting, points are given for clear presentations of design

    Home > Courses> Electrical Engineering and Computer Science > Software Engineering for Web Applications > Syllabus

  • 7/31/2019 MIT-Software Engineering for Web Applications

    2/2

    13/12Ware | Electrical Engineering and Computer Science | 6.171 Software Engineering for

    w.mit.edu/courses/electrical-engineering-and-computer-science//syllabus/

    Your use of the MIT OpenCourseWare site and course materials is subject to our Creative Commons License and other terms of use.

    decisions and open questions. When you're in the audience or writing, points are given for constructive criticism.

    Term Project (60%)

    You and your partner(s) will share a grade for the quality of the work that you do during the semester in buildingan on line learning community. Quality is defined as a combination of use r experience, the maintainability of thesystem, and the helpfulness of the documentation.

    Mid-term Exam (10%)

    The mid-term is a one-week take-home exam, intended to require about 6 hours of work. Your ability to thinkabout data model, user experience, and overall system engineering will be tested.

    Textbooks

    See the readings section for more information on the required textbooks.

    Adoption by Universities and Companies

    This course is designed for easy adoption by other universities. We provide the following materials online forfree:

    TextbooksProblem Sets (incorporated in main text)Lecture NotesSample Exams (on request)

    You may wish to provide a computing environment for your students. Students have been most success ful usingeither Microsoft .NET (Windows 2000 only; one machine per student) or AOLserver/Oracle (a single pizza boxUnix machine can support 10 students).

    Course History

    This course was developed by Hal Abelson, the late Michael Dertouzos, and Philip Greenspun.

    Fall 2003: offered as MIT course 6.171Spring 2002: offered as MIT course 6.171Spring 1999: offered as MIT course 6.916: Software Engineering of Innovative Web Services (3-0-9)Summer 1999: offered as an intens ive summer course at University of Hamburg and New York University, asa 5-week boot camp (three prob lem sets plus Unix sysadmin and Oracle dbadmin), and as a 2-week bootcamp (problem sets 1 and 2)Fall 1999: adopted by California Institute of Technology; offered again as MIT course 6.916Winter 2000: offered as an intensive 9-unit course during MIT's IAP;Spring 2000: repea ted as MIT course 6.916, offered to remote students at UC Berkeley (thanks to DougTygar) and Stanford University (thanks to Jeff Ullman)Spring/Summer 2000: offered as CS190 at UCLA, taught by Robe rt DennisSummer 2000: adopted by University of Michigan, taught by Nandit SoparkarJune-December 2000: adopted by UFM (Guatemala C ity, Guatemala), taught by Oscar BonillaSpring 2001: offered at Carnegie-Mellon, University of New South Wa les (Sydney, Australia; led by JohnShepherd)May 2001: "Teaching Software Engineering" paper presented at the Web conference in Hong Kong,describing our experience with the course and the rationale behind the new curriculum and textbookSpring 2002: the revamped version offered at MIT as 6.171

    Bottom line: about 1000 CS majors have gone through this curriculum and a ll but about 30 have becomecompetent database-backed Web service developers. A more detailed history and explanation of this courseis available.

    Ongoing Glory

    Here are some examples of good things have happened in or because of 6.916/6.171:

    From Spring 1999The image sharing service at photo.net was developed in Spring 1999 by a student team. The systemcontinues to run on the public Internet and permits nea rly 300,000 to share and comment on uploadedphotographs.From Fall 1999Camfield Estate s continues to serve the res idents of a public housing project in inner-city Boston (seethe background on this project by Randal D. Pinkett, a Media Lab graduate student)From Fall 2000MIT UPV is online and providing an international cultural exchange for hundreds of students at MIT andValencia, as described in this WIRED magazine article.

    A reasonably complete list of old projects is available. In addition to continuing public sites, 6.916/6.171 has a lsoproduced a few startup companies as students who took the course together continued their collaboration inindustry. (Of course, that was in the go-go years of the Internet; now most of the students graduate and take

    jobs at IBM, Microso ft, and Oracle.)