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.
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 CGI.pm 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
Continuation of last lecture: feedback form, file upload, and making images behave like radio buttons with Java and Javascript.
Sept 29, 1998
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
IMGtag works. Basic layouts, forms, and GUIs in Java. Basic networking.Lecture Notes 9a
Lecture Notes 9b
Oct 6, 1998
Using the GD.pm 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)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.
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.
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 GD.pm)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.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 NotesNov 12, 1998
Java Threads: Theory and Examples. We will look at the
Threadclass, 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
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, 1998Java: 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.
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).
Dec 3, 1998
JDBC, sybperl, and Java Swing (a simple web browser)
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.
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:
- more Apache (basic authentication, SSL)
- Java RMI (a simple chat server - MUD)
- Perl networking
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
dribblescript 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.