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 Fall 2010, Anthony Tomasic will be teaching this course (15-437 and 15-637 listings only).
Note: Undergraduates must register for 15-437 and graduate students must register for 15-637. Ungrads that register for the 15-637 will simply be waitlisted and will not get in. Similarly, grad students that register for 15-437 will simply be waitlisted and will not get in.
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. Note that Undergraduates must register for 15-437 and graduate students must register for 15-637. Ungrads that register for the 15-637 will simply be waitlisted and will not get in. Similarly, grad students that register for 15-437 will simply be waitlisted and will not get in.
  • 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.