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
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.
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.
Click for details! On-line version
Click for details! Printable version
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!
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
module add default
Modify it so it looks like this:
module add default misc/www
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.
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
Deadlines
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]
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.
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
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
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