Mastering the WWW - A348 CSCI A348/A548
Mastering the World-Wide Web

Sept 1-3, 1998
Initial student feedback, overview of the course, account creation information. Setting up Apache for Unix. Basic directory structure. The cgi-bin directory. The Hello World! program in perl and the Hello World! program in Java. A preview of things to come.

Lecture Notes 1
Lecture Notes 2
Notes for Assignment 1
Lab 1 (Apache installation)

Sept 8, 1998
Simple perl scripts and programs. (Variables, loops, conditionals, subroutines.) A program that returns the date and time on the localhost. A program that returns random numbers. Associative arrays. Experimenting with a simple script (printing out environment variables).

Lecture Notes 3
Lab Notes (Simple Perl)

Sept 10, 1998

The HTTP protocol: GET vs. POST (I). Making the output of scripts more context sensitive: using some of the environment variables, showing the local time of day, and printing random quotations. Query string: starting the script with initial information.

Lecture Notes 4
Assignment 2

Sept 15, 1998

Apache installation & configuration revisited. Starting and stopping the server. Protecting against machine reboot with Steve Kinzler's starthttpd. Basic Unix (cron, crontab), basic HTML. HTML forms, and a simple Javascript calculator.

Lecture Notes 5
Lab Notes (starthttpd, crontab, menu & calculator CGI scripts (hw2))

Sept 17, 1998

Introduction to Java. A review of the Java packages (will be included in the lecture notes in a more comprehensive format than the one hinted at in the lecture.) Introduction to Java applets. The Scribble applet in java (1.0 event model, though).

Lecture Notes 6 (almost finished)

Sept 22, 1998

CGI programming using the module. HTML form elements, a generic framework for CGI state machines, feedback by e-mail through an HTML textarea field, file uploads, clickable image map that acts as a submit button.

Lecture Notes 7
Lab Notes (Perl: filehandles, regular expressions)

Sept 24, 1998

Lecture Notes 8

Continuation of last lecture: feedback form, file upload, and making images behave like radio buttons with Java and Javascript.

Sept 29, 1998

Baby Celina German was born!

Lab Notes (CGI, HTML forms, Perl exercises)

October 1, 1998

The feedback form in Java (client side Java applet talks to a perl CGI server script). Server side vs. client side programming. Servlets vs CGI. A talk with the (httpd) daemon. The HTTP protocol revisited: clients and servers. How the IMG tag works. Basic layouts, forms, and GUIs in Java. Basic networking.

Lecture Notes 9a
Lecture Notes 9b

Oct 6, 1998

Using the library to produce graphical output (images on the fly). Showing submission status in QuizSite. A simple web counter. More perl: reading from a file, writing/appending to a file, locking a file for synchronized access.

Lecture Notes 10 (almost done)
Lab Notes (Homework hints & more Perl: pattern matching, DBM files)

Solutions for Lab 5

Oct 8, 1998

The general framework for CGI programming (connectionless state diagrams) revisited: a simple Post'em system. Redundancy of processing and security. Cookies as access tokens.

Lecture Notes 11

Oct 13, 1998

JavaScript (Lecture Notes 12). Review I: HTML forms. Reading Assignment: Stein, Chapter 10. Also re-read: Stein, pp. 408-419 (from Chapter 8).

Lab Notes (Javascript)

Oct 15, 1998

Review II: Writing Server Scripts (Lecture Notes 13) Reading Assignment: Stein, Chapter 9.

Midsemester Summary

Oct 20, 1998

Review III: Perl, Apache configuration, Using Java applets. Also introducing Web Security issues. Reading Assignment: Skim chapters 11, 3 (mostly pp. 68-119), and 5. For Perl review: pattern matching, filehandles, associative arrays, lists, DBM files. For the security issues look through: The Web Security FAQ.

Lecture Notes
Lab Notes (using

Oct 22, 1998

Guest Lecture 1: Web Security. Special Guest Lecturer: Scott Hutton, UITS Information Security Office Here's Scott's Lecture. Reading Assignment: Stein, Chapter 4

Oct 27, 1998

Conditional review lecture based on specific questions collected from the audience in advance (by e-mail or through the feedback program) In the event that few or no questions are collected

Java RMI (Lecture Notes)
will be presented as an alternative approach to the low level networking scheme presented in Lecture 9 (October 1) after all questions are answered.

Lab Notes

Oct 29, 1998


Exam will be open-book, mostly multiple choice with items similar to those that will be available for practice as random draws from QuizSite (and posted as a whole on the course site) or comprising assigned homework.

Some questions will require short answers (completing a program or writing a few lines of HTML, Perl, Java or JavaScript code). Additional information was posted in the Midterm Preparation section off the front page.

Nov 3, 1998

Dynamic HTML (Lecture Notes)

Lab Notes (Java RMI Lab)

Nov 5, 1998

Java RMI (II). The Object Web (Byte Magazine, 10/97)

Nov 10, 1998

Data Structures (linked lists) and Threads (a brief introduction) in Java
Lecture Notes

Lab Notes

Nov 12, 1998

Java Threads: Theory and Examples. We will look at the Thread class, and then describe the four kinds of threads (or concurrent) programming: unrelated threads, related but unsynchronized, mutually exclusive, and synchronized threads.
Lecture Notes

Nov 17, 1998

Server-Side Java (I): The Java Servlet Development Kit. Servlets are offering an increasingly stronger alternative to CGI. We will cover the basics of writing servlets with JSDK2.0, and will introduce the Java Apache Server Project

Lecture Notes

Lab Notes (Java Servlets)
Lab Note: JPL: Mixing Java with Perl (from Web Techniques)

Nov 19, 1998

Guest Lecture 2: Next-Generation Internet.

Special Guest Lecturer:

Jacob Levanon, IU Director of Telecommunications.
The next generation research network known as Abilene has only a few weeks left before its scheduled January opening. From Abilene's 'brain center' the Network Operations Center at IU's Indianapolis campus this special guest presentation.

A recent and related article in The Chronicle of Higher Education.

Nov 24, 1998

Java: What You Need to Know for the Exam. The lecture notes will go over all aspects of basic Java in an attempt to collect the essence of the language into one single place.

Lecture Notes

No Lab This Week

Nov 23, 1998


By the end of the week I hope to have posted about 60 Java exercises in QuizSite (with detailed explanations associated to the right answer(s)). You can find them listed all here or in random and customized draws of 16 questions in QuizSite.

Dec 1, 1998

Java Examples: A simple web server. A simple web client. Exceptions in Java revisited. (The goal for this weeks presentations and lab is to illustrate the lecture notes from last Tuesday's summary presentation of Java).

Lecture Notes

Lab Notes

Dec 3, 1998

JDBC, sybperl, and Java Swing (a simple web browser)

Lecture Notes

Dec 8, 1998

The future of web: XML, more XML, DSSSL, and who knows what else. Some loose ends: basic Perl networking, basic Apache authentication by username and password.

Lecture Notes

No Lab Notes: Turn In Projects

Dec 10, 1998

Course wrap-up. Final exam review. Final evaluations

For the remaining of the semester we will cover:

Final Exam info: As much as Perl was the main programming language on the midterm examinaton we hope to include a large number of questions from the Java certification exam in the final exam, and the lectures and the labs will be organized with this purpose in mind.

Scheduled for sorting and reorganization:

Apache: setting up access control based on username and password. The HTML as a standard. Validation techniques. Robots (I): smart vs. non-smart robots. Basic perl networking. A simple web client (the dribble script in QuizSite). Encryption (I): Netscape SSL protocol. GIF89 vs. Java animation. Web security (II). Encryption and certificate-based access control. Web style guides: consistency, high-bandwidth and low-bandwidth pages, optimizing web pages. Proprietary extensions vs. standard methods. The future of the web - SGML, XML, DSSSL. More robots and indexing services. Other servers, other platforms: Installing and configuring O'Reilly's WebSite for NT. A quick look at another Unix web server: Netscape's Fast Track for Unix.

The final exam will be on Thursday December 17, 7:15pm - 9:15pm in class. It will be an open-book open-notes exam.