CS 349W: Abstractions for Highly Interactive Web Applications

Quarter: Fall 2008
Lectures: MWF 10:00
Room: Building 200, Room 305
Instructor: John Ousterhout
Course assistant: Aditya Mandayam
Discussion section: Place and time TBD

The Web was originally designed as a mechanism for delivering documents, not applications. For many years a combination of browser incompatibilities and insufficient features made it nearly impossible to use the Web for applications that went beyond basic forms. However, Web facilities have been steadily improving, to the point where it is becoming possible to support more and more powerful interaction styles in Web-delivered applications. It seems likely that this trend will continue and that the Web will subsume many of the highly interactive applications that are currently delivered outside the Web.

Unfortunately Web application development is in a relatively disorganized state today, requiring the integration of numerous languages and technologies such as Java, PHP, HTML, XML, CSS, HTTP, and Javascript. The separation between Web server and browser also complicates application development. Existing frameworks have limited functionality and there are almost no reusable building blocks above the level of the base technologies listed above. Thus each application is built nearly from scratch. It may be possible to build highly interactive Web applications, but it is still not easy.

This course will explore (a) techniques for increasing the interactive-ness of Web applications and (b) creating reusable building blocks that allow new applications to be developed without building everything from scratch.

Lectures

Click here for more information.

Projects

Students will carry out three projects over the course of the term, each resulting in an in-class presentation.

Recommended Book

There is no required textbook for this class, but I strongly recommend Dynamic HTML: The Definitive Reference, by Danny Goodman (published by O'Reilly) as a reference manual for all of the basic browser technologies. Be sure to take a look also at the online supplement containing overview and background material; this is very useful material but was left out of the most recent printed edition in order to save paper.

Class Wiki

We will use a Wiki to collect and share information during the class; click here for the home page of the CS349 Wiki. Note: the Wiki moved on October 1 from a CS Department Wiki to a Stanford campus Wiki.

Last modified: October 1, 2008