Home Page
Bio
Courses
Publications
Projects

Web Application Development
Variously cross-listed as: 08-707, 08-764, 15-437, 15-637, and 46-864
(see the end of this page for details as to which cross-listing is right for you)
Jeff Eppinger teaches this course in every Spring semester. In Spring 2010, he will be co-teaching Web Application Development with Anthony Tomasic. (Charlie Garrod is teaching this course in Fall 2009.)
Update as of 11/21/09:
15-437 At this point, 15-437 is full and we are not planning to let in any Sophomores. We were able to let in from the wait list all the Juniors that attempted to enroll on "Junior Day" (11/17) and all the Seniors that attempted to enroll on "Senior Day" (11/16). Note that 15-437 is for undergrads only. Grad students that attempt to register for 15-437 will simply be wait listed but never enrolled. Grad students should register for 15-637 and not 15-437.
15-637 We were able to expand the class and let in many of you from the wait list. (In particular, we were able to let in all students on the 15-637 wait list that attempted to enroll before noon on 11/16. This is a significant improvement from previous years.) We will review the course rosters over the next two weeks to see if any additional wait listed students can be let in. If we can, it will probably not be many of you. If you are still wait listed, you may wish to consider trying to take 08-764. Note 15-637 is for graduate students only. Undergradate students that attempt to register for 15-637 will simply be wait listed and not enrolled. Undergradate students should register for 15-437 and not 15-637. If you are a senior in a program that requires graduate credit, register for 15-437. After you are enrolled in 15-437, you can discuss with the instructor switching to 15-637.
08-764 We have been able to let in almost every student on the wait list for 08-764. We think we'll be able to let in a few more students into 08-764. Note that 08-764 is the mini-semester version of this course. It's the first half only -- no project. See below for more info.
15-600 Students Note that students who have taken 15-600 are not allowed to take 15-637 or 08-764 (or 15-437 or 46-864) because of the significant content overlap in these courses and 15-600. (This was noted in the course information for 15-600 when you signed up.) Students that are taking or have taken 15-600 and enroll in one of the above web app classes will be removed.
MSIT-eBiz Students Note that students who are in the ISR MSIT-eBusiness Technologies program are required to take or place out of 15-600 and then must take 08-707 (aka Task 8) in the Spring semester. You are not allowed to take 15-637 or 08-764 (or 15-437 or 46-864) because of the significant content overlap in these courses and the 15-600 / 08-707 sequence. Students that are in the ISR MSIT-eBusiness Technologies program that enroll in one of the above web app classes will be removed.
Below is a description of the web application course. For a more detailed syllabus from a recent running of the course, click here.
This course will introduce concepts in programming web application servers. We will study of the fundamental architectural elements of programming web sites that produce content dynamically. The primary technology introduced will be Java Servlets and Java Server Pages (JSPs), but we will also cover the related topics as necessary so that students may build significant applications. Such topics include:
  • HTTP
  • HTML and XML
  • JavaBeans
  • Design Patterns (e.g., Abstract Factories and Model-View-Controller)
  • Tag Libraries (JSTL)
  • Relational Databases (MySQL/JDBC)
  • Object-Relation Mapping tools (BeanFactory)
  • Security (including SSL)
  • AJAX (including JavaScript and the DOM)
  • Web Services (SOAP/WSDL/UDDI)
  • Frameworks (Struts)
  • Internationalization
  • Scalability and Performance Issues
Several tools, software packages, and example web applications will be demonstrated.
There is no required course text for this course. You can find online documentation for most everything on the web. There is no book that covers all of the above topics, but I recommend O'Reilly's "Head First Servlets and JSP" by Basham, et al. It covers most of the topics and would be a good choice for a course textbook (as long as you like the Head First Series writing style). Feel free to select another book or other books if you find something else that you like.
Students will be required to build web applications in the form of four homeworks and for students in 15-437 or 15-637 one large project. Grading will be based on the homework, the final exam, and (for 15-437/15-637 students) the project.
About the project: Students enrolled in 15-437 or 15-637 will be required to create and demonstrate a web application. This will be the primary focus of the second half of the semester. They may use the software demonstrated in class or similar software packages with permission of the professor. Students have significant latitude in choosing what to build for their projects. Projects can be done individually or in small groups. The more people in the group the more that is expected of the project so rarely do we have more than two students in a group.
Students are required to provide their own computer hardware for this course. Student hardware must run a recent version of one of the following operating systems: Windows, MAC OS X, Linux. Student hardware must also have sufficient memory and disk space and be attached to the internet. Students will have to install update-to-date versions of Java, Java Web Development, and database software.
Students are required to have sufficient Java programming capabilities. For undergraduates, the prerequisite is 15-212 (and its prerequisites).
This course is recommended for students contemplating enrollment in 15-413 (the Software Engineering Project). Many of the projects in 15-413 are expected to be web-based.
This course has several cross listings:
  • Two 12 unit listings run for the full semester: 15-437/15-637. These are full semester courses that include a project component that is the primary focus of the second half. Undergraduate students register for 15-437. Graduate students register for 15-637. Seniors that need graduate credits but are blocked by the system from registering for 15-637 should register for 15-437; if they get in, they can switch to 15-637 with permission from the instructor.
  • Two 6 unit listings run only for Mini 3: 46-864/08-764. These are half semester courses consisting of lectures, homework, and a final exam (but no project). Students in the Tepper's Technology Leadership Program register for 46-864. Graduate students interested in the lectures, but not the project may register for 08-764; Seniors may register for 08-764 on a space-available basis with permission of the instructor.
  • There is a special version of this course for MSIT-eBusiness Technologies students: 08-707. Due to the structure of the MSIT-eBiz program, students from other programs cannot take 08-707.