For Spring 1998, TDDI48 and TDDB06 will not be taught together as one course. This page is not up-to-date and any information in it is highly subject to change for the Spring 1998 courses. This includes lab descriptions and course structure.

TDDI48 and TDDB06, Spring 1997

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 tried to choose two projects that force you to use most of the important features of the language and left 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 its 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 static 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. We are also trying to set up a dedicated server so we can do experiments with relational database interfaces. If this is possibly, we will discuss it towards the end of the course.


Week 04

Tuesday, 15-17, T1

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

Wednesday, 8-10, T1

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

Thursday, 8-10, A2

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


Week 05

Monday, 15-17, C3

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.

Tuesday, 15-17, T1

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

Wednesday, 13-15, C1

The Abstract Window Toolkit (I). -- Introduction to the AWT package. GUI, Components, Containers, Panels, Event Handling, Layout Managers.

Thursday, 15-17, T1

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

Friday, 15-17, T1

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

Week 06

Tuesday, 15-17, T1

Exceptions and Error Handling.

Wednesday, 8-10, C2

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

Week 07

Monday, 15-17, C3

Applets.

Wednesday, 13-15, C1

Threads and Applets.

Thursday, 13-15, T1

Networks


Week 08

Tuesday, 13-15, C3

Java Security

Wednesday, 10-12, C3

Future Developments



Course Labs

All labs must be done using the JDK 1.02. For labs 1 and 2, you can only use the standard Java API. For the project, you can use API's developed by third parties.

There is a hard deadline for handing in your labs. All of them must be in by the last day of the tentamen's period for this quarter. If there are extenuating circumstances, we might consider short extensions, but this would be an exception.

Hard copies of lab's 1 and 2 must be handed in to your assistant. You can use the kursfak in E-hus on the 2nd floor.

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 the any of the labs, maximum two students can work together.

The following information is preliminary and is dependent on whether we get an NT server in time to develop some new labs pertaining to Servlets and the Java JDBC database API.

The course will consist of a series of 3 labs. For completion of the course you need only complete labs 1 and 2 and either lab 3 or 4. Since this is a five point course, you will be expected to put a great deal of effort into the final lab (3 or 4) you choose to do. You can consider the final lab an open-ended mini-project. You are expected to do as much as possible!

The first two labs are relatively well specified. The latter two are loosely specified and should be considered moderately sized projects. The goal is to do as much as possible, not the minimum necessary to pass the course!

Lab assistants will be physically present during the 32h of the 56h 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

The locations for doing the labs are PUL1-X, building E, bv. Due to the large number of students in this course and the limited amount of lab space, you may have to double up for the scheduled labs or look for "free" machines during unscheduled periods.

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

Many of the experiments we will be doing involve applets opening sockets and sending information back to the server on the machine from which they were loaded. For security reasons, many browsers make it difficult, if not impossible, to open certain paths of communication between applets, applications, browsers, etc. To simplify the experimentation, we have set up a simple script which starts your own www server on the workstation you are using. Click here for details!

Old Notes from 1996 which still apply in 1997



Lab Schedule

The course contains six lab groups. Lists to sign up for a group are placed outside room A1.291 at IDA/FOA. Lab groups are divided relative to DI, C, and D lines. You can only sign up for a group that belongs to your line.

Each group has 26 labs scheduled of which 16 will be supervised. Due to scheduling and resource problems, some of you may need to double up on machines occasionally.

Lab Assistants

Jonas Kvarnström DI3-A, DI3-B
Esa Falkenroth C-A
John Olsson D-A
Torbjörn Nilsson D/C-A
Nicklas Hjalmarsson D/C-B



Course Exam

In order to pass the course, successful completion of the (three) labs is necessary. There is a possibility that an oral exam regarding the contents of the first three labs may be necessary. This will be dependent on the quality and creativeness of these labs.



Course Slides

These slides are being updated for the Spring 1998 course



Course Books

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 Reference for Java Programmers
David Flanagan
O'Reilly & Associates, Inc., 1996
ISBN 1-56592-183-6
More Info!

An excellent desktop reference with a complete description of the Java API 1.0. It includes a number of compact but excellent introductory chapters on Java essentials. Part II contains the Java API description with excellent cross references and indexes for finding different methods, classes, who calls what, etc.

Core Java
Gary Cornell and Cay S. Horstmann
Sunsoft Press, A Prentice Hall Title, 1996
ISBN 0-13-565755
More Info!

In my opinion, this is currently the best book for solid examples of intermediate level program code and describes a lot of the problems and solutions for those problems that arise when doing serious Java programming. 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.

Although not course books, I'd also highly recommend:

Just Java
Peter van der Linden
Sunsoft Press, A Prentice Hall Title, 1996
ISBN 0-13-565839-X
More Info!

Java for C/C++ Programmers
Michael C. Daconta
John Wiley & Sons, Inc., 1996.
ISBN 0 471-15324-9

Java Sourcebook: A Complete Guide to Creating Java Applets for the Web
Ed Anuff
John Wiley & Sons, Inc., 1996.
ISBN 0-471-14859-8

One of the first good introductory books published by an employee of HotWired magazine. Provides a well-rounded introduction to the WWW, Java's role in the larger scheme and a reasonable amount of concrete code and examples to describe Java itself and possible applications. This was used as a coursebook last year, but I consider it too introductory for this course.



>Winners of the 1996 IDA JAVA CUP!!

During the summer course in 1996, we had a friendly competition to see who could construct the best game applets. All of them were very good, but here are the winners, chosen by an anonymous unprofessional panel of game-loving referees!

Winners of the 1996 IDA Java Cup!

These examples should give you an idea of the quality and depth we are looking for in the Lab3 projects you hand in. Unfortunately, we do not have any T-Shirts for this course, but we are working on it.



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 New AWT Tutorial be Nelson Wu.
The JavaSoft Tutorial (Stored locally on our IDA server).
The Java API 1.0 (Stored locally on our IDA server).
Core Java Book Source Code



Registered Student Lists



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 06
Room: FOA A1.291

email: patdo@ida.liu.se


Gunilla Blom-Lingenhult (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: FOA V0.208

email: gunli@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: FOA A1.285

email: jonkv@ida.liu.se


Esa Falkenroth (Course Assistant)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone: +46 13 28 4019
Telefax:
Room: B 1tr E:185 (E-Hus)

email: esafa@ida.liu.se


Torbjörn Nilsson (Course Assistant,amanuens)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone:
Telefax:
Room:

email: c93torni@und.ida.liu.se


John Olsson (Course Assistant,amanuens)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone:
Telefax:
Room:

email: d91johol@isy.liu.se


Nicklas Hjalmarsson (Course Assistant,amanuens)
Department of Computer and Information Science
University of Linköping
S-581 83 Linköping, SWEDEN
Phone:
Telefax:
Room:

email: c92nichj@und.ida.liu.se