Appendix 1: Course Description

Synchronous Learning at a Distance:
Experiences with Tango

The goal of this course is to teach students the basic programming skills and languages that are needed to implement distributed Web applications. Coursework will include a short programming module on CGI scripting in Perl and a more lengthy module on programming the Java applet interface to the World Wide Web. Background material on Web architecture, networking, and multimedia will be included. An overview of more advanced Web software and tools will also be given.

The Architecture of the Web

Understand how networks, message-passing protocols, Web servers, and browsers pass information in a typical Web application. Understand how open software/protocols evolve and the role of organizations such as the IETF.

The Common Gateway Interface (CGI)

Learn how the CGI protocol is used to connect Web pages to files, databases, and other computing resources on the Web server. Write CGI scripts in the language Perl to process information from HTML forms, using Unix files to store the data. (Programs are written "by example"; the language Perl is not covered in detail.)

Java

This module covers Java programming in some detail, and comprises the bulk of the course:

Programming assignments will be written in Java 1.1, an important new version of the language that introduces a new event model called the delegation event model.

Advanced Web Software and Tools

The above modules serve as a basic introduction to Web programming. We will discuss other Web software as well, including: