The Spring 1999 course will be taught by Jonas Kvarnström. It will be similar to the Spring 1998 course, but the course book will probably be different and the slides will be updated accordingly. To get in touch with Jonas, please see the "Faculty" information below. For updated course information see:

Course page: Spring 1999



TDDI48, Spring 1998

Programming and Interactivity on the WWW

Course Leader: Patrick Doherty, IDA




Latest News



Course Description

The primary goal of this course is to introduce you to the Java Programming language and its use in developing executable content on the WWW. The course is project oriented in the sense that we expect you to learn the language by implementing two relatively sophisticated applet/applications. We try to choose lab projects that force you to use most of the important features of the language and leave the specification sufficiently vague in order to give you as much artistic and creative freedom as possible. The course also includes a series of seminars of an introductory nature which cover most of the Java language and some of its central libraries. In addition, if we have time, we will also discuss recent trends, alternatives, and developments in the area.



Course Schedule

During the first four weeks of the course, 6 -10 hours of seminars will be given per week. The basic strategy is to provide you with a crash course in the Java language via the seminars which will be given in a traditional manner and then to let you loose to experiment with the language, do the labs and browse on the WWW for Java related information.

Below is a brief schedule and outline of the topics we expect to cover. The schedule should be viewed as preliminary since we are not yet sure exactly how much time will be needed to cover each of the topics.

Note that for other than the first seminar, all times and locations are preliminary and subject to change due to complications in coordinating scheduling between DI3 and Master's students. In any case, all seminars will be given at G-House (IDA)

We will try to have all but the first seminar in GRAND (G-Hus, across from my office, G1.291)


Week 04

Monday, 13-15, G33

Getting Started with Java: A Guided Tour. -- Course Introduction, Internet, WWW, Java, Applets/Applications, API.

Tuesday, 15-17, GRAND

Object-Oriented Programming with Java (I). -- Abstraction and Encapsulation: Java classes and data, objects, constructors, Static classes, this, super.

Wednesday, 15-17, GRAND

Object-Oriented Programming with Java (II). -- Inheritance and Polymorphism: accessing variables and methods, overrriding, variable shadowing.

Thursday, 13-15, GRAND

Object-Oriented Programming with Java (III). -- Inheritance Revisited: Abstract classes, class modifiers, Interfaces, callback methods. Encapsulation Revisited: Packages, how the compiler works, data hiding, class and variable visibility, access modifiers.


Week 05

Monday, 10-12, GRAND

Object-Oriented Programming with Java (IV). -- Dynamic runtime facilities, run-time typing, run-time extensibility, Instanceof, casting, object wrappers, Class class, class loaders.

Tuesday, 10-12, GRAND

The Abstract Window Toolkit (I). -- Introduction to the AWT package. GUI, Components, Containers, Panels, Toolkits etc.

Wednesday, 10-12,GRAND

The Abstract Window Toolkit (II). -- Event Handling, Layout Managers.

Thursday, 15-17, GRAND

The Abstract Window Toolkit (III). -- Graphics, Image handling, ImageObserver, MediaTracker, ...

Friday, 13-15, GRAND

Java Statements and Utilities. -- Control statements, basic data types, arrays, vectors, enumerations, stacks.


Week 06

Monday, 13-15, GRAND

CANCELLED!. . . . CANCELLED!

Tuesday, 13-15, GRAND

Exceptions and Error Handling.

Threads. -- Creating threads, thread states, scheduling threads, Runnable Interface.

Friday, 10-12, GRAND

Applets.


Week 07

Monday, 13-15, GRAND

Applets, Networks

Tuesday, 10-12, GRAND

Java Security

Wednesday, 10-12, GRAND

JDBC, RMI

Thursday, 10-12, GRAND

Wrapping it up, Future Developments



Course Labs

The following information is preliminary for the moment and subject to change. Watch the "Latest News" section for the OK to start doing the labs.

All labs must be done using the JDK 1.1. For the first lab, you can only use the standard Java APIs. For the second lab, you can also use API's developed by third parties.

There are hard deadlines for handing in your labs.

If there are extenuating circumstances, we might consider short extensions, but this would be an exception. A grade of 5 is out of the question if these deadlines are not met.

Due to the lack of machine time, you will probably have to work in groups of two. Those that want to can try to work by themselves. For any of the labs, maximum two students can work together.

The course will consist of a series of 2 labs. For completion of the course you must complete all exercises in labs 1 and 2. Since this is a five point course, you will be expected to put a great deal of effort into both labs. You can consider lab2 an open-ended mini-project where you are permitted to elaborate on the basic exercises.

In the event of sub-average work, we may ask individuals to participate in an oral evaluation of the lab in question. The purpose is to help us in our evaluation and to help you understand the topics taken up in the labs.

Lab assistants will be physically present during some of the scheduled lab periods to answer questions and help out. Remember that you are expected to do a lot of reading in the course books in advance, so questions should be of a non-trivial nature! Hopefully we can answer them!

The Lab Environment

We plan on using the PC Puls (P1-4) in E- and B-house for the labs. You will be working in a PC environment with the following software installed locally: Here is some practical information about the lab software. Due to the large number of students in this course and the limited amount of lab space and time, you may have to double up for the scheduled labs or look for "free" machines during unscheduled periods.

For those of you experimenting with Java on the Sparc machines:

In order to get the proper path accesses to our WWW related software at IDA, you simply need to add a module to your .login file. Currently, there is a line in the file which looks like this:

module add default

Modify it so it looks like this:

module add default misc/www



Lab Schedule

The course contains 3 lab groups with maximum 16 students per group. Lists to sign up for a group will be placed outside room G1.291 at IDA/G-Hus after the first seminar. 15 out of 23 labs will be supervised to some extent.

Each group has 28 labs scheduled of which 15 will be supervised. Due to scheduling and resource problems, some of you may need to double up on machines quite often.

Lab Assistants

Jonas Kvarnström DI3-A, DI3-B, M-A



Course Exam

In order to pass the course, successful completion of the (two) labs is necessary. There is a possibility that an oral exam regarding the contents of the first two labs may be necessary if they are not adequately done. Judgement of adequacy will be based on the quality and creativeness of these labs in addition to meeting the deadlines.

Grades
Poorly structured and styled coding will be returned for modification. If so, the deadlines must still be met for the modified version in order to get a 5.

Deadlines



Course Slides

These slides are being updated for the Spring 1998 course. They will be placed on-line as they are updated.

Course Introduction , [gzipped postscript version]
Getting Started , [gzipped postscript version]
Object-Oriented Programming with Java (I), [gzipped postscript version]
Object-Oriented Programming with Java (II), [gzipped postscript version]
Object-Oriented Programming with Java (III), [gzipped postscript version]
The Abstract Window Toolkit (I), [gzipped postscript version]
The Abstract Window Toolkit (II), [gzipped postscript version]
The Abstract Window Toolkit (III), [gzipped postscript version]
Datatypes, [gzipped postscript version]
Exceptions, [gzipped postscript version]
Threads, [gzipped postscript version]
Applets, [gzipped postscript version]
Networks, [gzipped postscript version]
Security, [gzipped postscript version]
RMI, JDBC, Servlets, Castanet, [gzipped postscript version]



Course Books

Course books for Spring 1999 will most probably be changed!

You are expected to read the course books from front to back covers one or more times. These are arguably two of the better books out for the moment, although new books are being published every week!

Java in a Nutshell: A Desktop Quick Reference
2nd Edition (Covers Java 1.1)
David Flanagan
O'Reilly & Associates, Inc., 1997
ISBN 1-56592-262-X
More Info!

An excellent desktop reference with a partial description of the Java API 1.1. Part's I-III provide a number of compact but excellent introductory chapters on Java essentials. Part's IV-V contain much of the Java API description with excellent cross references and indexes for finding different methods, classes, who calls what, etc.

Core Java
Volume I - Fundamentals
Gary Cornell and Cay S. Horstmann
Sunsoft Press, A Prentice Hall Title, 1997
ISBN 0-13-766957-7
More Info!

In my opinion, this is currently one of the best book's for solid examples of intermediate level program code. The book assumes some familiarity with programming in general and is classified as a book for advanced programmers, although I'd place it at the intermediate level. In addition, it contains the SunSoft CD provided with all books in this series which includes the JDK for different platforms and a number of useful auxiliary applications.



Some Useful Links

JavaSoft: The Java Division of Sun Microsystems
Gamelan: An excellent Applet Archive.
Digital Expresso: Summaries of the Java Newsgroups.
Java World: An online Java Magazine.
The Java Applet Rating Service.
A Java Page provided by our Lysator friends.
The Java Tutorial (local IDA copy)
JDK 1.1.5 Documentation (local IDA copy)
Observer-Observable Tutorial



Registered Student Lists

The following students can take the TDDI48 course:



Faculty

Patrick Doherty (Course Leader)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone: +46 13 28 24 26
Telefax: +46 13 28 44 99
Room: G 1tr G1.291

email: patdo@ida.liu.se


Gunilla Norbäck (Course Administrator)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone: +46 13 28 22 97
Telefax: +46 13 28 44 99
Room: G 1tr G1.208

email: gunno@ida.liu.se


Jonas Kvarnström (Course Assistant)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone: +46 13 28 23 05
Telefax: +46 13 28 44 99
Room: G 1tr G1.286

email: jonkv@ida.liu.se