During the first four weeks of the course, 8 -10 hours of seminars will be given on mondays and tuesdays. Although the Sparc PULs are booked from 8-18 on thursday's and fridays, you will basically have unlimited access to a Sparc machine during the duration of the course. 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.
Week 29
Monday
10-12: Getting Started with Java: A Guided Tour. -- Course
Introduction, Internet, WWW, Java, Applets/Applications, API.
13-15: Object-Oriented Programming with Java (I).
-- Abstraction and Encapsulation: Java classes and data, objects,
constructors, Static classes, this, super.
Tuesday
10-12: Object-Oriented Programming with Java (II). -- Inheritance
and Polymorphism: accessing variables and methods, overrriding, variable
shadowing.
13-15: 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 30
Monday
10-12: Object-Oriented Programming with Java (IV). -- Dynamic
runtime facilities, run-time typing, run-time extensibility, Instanceof,
casting, object wrappers, Class class, class loaders.
13-15: The Abstract Window Toolkit (I). -- Introduction to
the AWT package. GUI, Components, Containers, Panels, Event Handling, Layout
Managers.
Tuesday
10-12: The Abstract Window Toolkit (II). -- Graphics, Image handling, ImageObserver, MediaTracker, ...Week 31
Monday
10-12: Exceptions and Error Handling.
13-15: Threads. -- Creating threads, thread states, scheduling
threads, Runnable Interface.
Tuesday
10-12: Applets.
13-15: Threads and Applets.
Week 32
Monday
10-12: Networks
13-15: Java Security
Tuesday
10-12: Networks and Java Security
Week 33
No Seminars.
Week 34
Project Evaluations. During the latter part of week 34 and week 35, participants should provide us with a demonstration of the last two labs which includes an oral presentation.
Week 35
Monday
10-12: Summary and Recent Developments
Project Evaluations.
Winners of the best 5 applets/applications will be notified at the end of week 36.
The course will consist of a series of four (possibly 5) labs:
IMPORTANT MESSAGE!! - For completion of the course you need only complete labs 1 and 2 and either lab 3 or 4. Since we are dropping one lab, you will of course be expected to put more effort into the mini-project you choose. Those of you that still want to complete all four labs are welcome to. Completion of both projects (lab3,4) will result in a VG or 5, provided I can push this through with the administration!
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 lab periods on thursdays and fridays 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!
45 student accounts have been set up for the course. Each of you will get an account and will receive a password for the account on friday, july 12, during upprop.
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
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!
In order to pass the course, successful completion of the four labs is necessary. There is a possibility that an oral exam regarding the contents of the first four labs may be necessary. This will be dependent on the quality and creativeness of these labs.
The course will also include a friendly Best Applet Competition based on the Game Applet and Business Enterprise Labs. The creators of the best five Applets will win a Sun Java T-shirt each.
We have been notified by the summer school course organizers that since the grades will only be determined by completion of labs that we can only give the grade "godkand" or 3. If the projects are of a collectively high quality, I will try to argue for a "v„lgodk„nd" or 4. Sorry for the inconvenience to those of you who are advocates of grade distinctions.
Course Introduction
Getting Started
Object-Oriented Programming with Java (I)
Object-Oriented Programming with Java (II)
Object-Oriented Programming with Java (III)
The Abstract Window Toolkit (I)
The Abstract Window Toolkit (II)
Simple and Complex Datatypes
Exceptions
Threads
Applets
Network Programming with Java
Security Issues
Summary and New Develpments (which are probably old by now!)
You are expected to read the course books from front to back covers one or more times. These are arguably three of the better books out for the moment, although new books are being published every week!
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.
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
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
Lena Wigh (Course Administrator)
Department of Computer and Information Science
University of Linköping
S-581 83
Linköping, SWEDEN
Phone: +46 13 28 17 56
Telefax
Room: E 1tr F 490
Lars
Karlsson (Course Assistant)
Department of Computer and Information Science
University of Linköping
S-581 83
Linköping, SWEDEN
Phone: +46 13 28 24 28
Telefax: +46 13 28 26
06
Room: FOA A1.287
Marcus Bjäreland
(Course Assistant)
Department of Computer and Information Science
University of Linköping
S-581 83
Linköping, SWEDEN
Phone: +46 13 28 19 95
Telefax: +46 13 28 26
06
Room: FOA A1.281
Joakim Gustafsson
(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 26
06
Room: FOA A1.2851