Copyright © 1997, 1998 by Axel T. Schreiner. All Rights Reserved.

Programming with Java

Axel-Tobias Schreiner, Department of Mathematics and Computer Science, University of Osnabrück, Germany.

An introduction to programming with the Java programming language.

Lecture notes for a course at Rochester Institute of Technology, spring quarter 1998. Based on German lecture notes.

From here one can reach copies of the overheads used in class, the Java documentation from Sun, and the programming examples used in class. The text does not constitute a complete transcript of the lectures. Additionally one should consult books about Java, object oriented programming, network programming, and about the World Wide Web.


The programming examples are collected in directories that more or less correspond to the chapters of the lecture notes.


Archived copies of the programming examples, the documentation, and the overheads as well as references to development kits, browsers, and related tools are available here.

A good starting point to look for Java tools on the Web are the Java Resource List and the Products & APIs at Sun Microsystems as well as Jeff Poskanzer's Home-Page.


Here are the overheads used in class and the Java documentation from Sun's JDK (1.1.5).


Adobe Acrobat was used to convert and index the overheads from the html area using the Portable Document Format. This is primarily suitable for printouts and (under Windows) for text searches.

Depending on the computing platform you need special viewers or plugins which have to be installed beforehand.

Some of the documents are rendered in black and white only because Acrobat Distiller 3.01 crashes when translating some colored pictures even after they were processed using Adobe PhotoShop 3.0.


There will be some programming assignments each week. Current grade points can be viewed.

Local Availability of Java

I am told that computers in the RIT computer science labs automatically make the Java Development Kit 1.1.5 available.

Dates 1998

Lectures Tuesday, Thursday,
room 09-2149
Office Hours Tuesday, Thursday,
room 10-A192 Schreiner,
phone 475-7459

(Planned) Calendar 1998

This is a very tight schedule. It tries to cover all aspects of the language and most packages. It depends on reading and programming assignments to be carried out in addition to class attendance. The German course took 30% longer.
March10 resources, introduction, first program, first application
12 first applet, integers, exceptions
17 homework; floating point; conditions
19 characters and strings, i/o system; objects
24 homework; command line, counting bytes and unicode characters
26 interface, properties, inner classes, command line options, counting streams and readers
read nested and anonymous classes; parsing with recursive descent
31 homework; oo design: framework for command line, trivial example: cat
April2 oo design: sorting
7 homework; threads: technology
9 threads: typical examples
14 homework; AWT: programming model, Button and events
16 notes on programming style, event handling, tracing events, Canvas
21 homework; Checkbox Choice Dialog FileDialog Image
23 Label List Menu
28 homework; PopupMenu, Scrollbar, ScrollPane, TextArea;
30 strategies for event handling; calculators with configurable keyboard
May5 homework; application framework, layouts, experiments with gridbag layout
7 Networking, TCP client and server, UDP client and server
12 remote objects
14 homework; web database client, proxy, and server
19 Final Exam, closed book

Grading Policy

This is a graduate programming course. Java 1.1 is a moderately difficult language to master and the schedule is tight; you will have to dig into documentation and some books as well as do some programming on your own to succeed.

Half of your grade will be based on weekly assignments (mostly programming), the other half on a final exam.

Assignments and solutions are posted as indicated above. Assignments must be turned in to me by e-mail or using the command

submit ats java-number path...
before 16:00 on the due date. I'll acknowledge receipt in class. Don't slide papers under my door, don't turn e-mail in late or more than once, and don't copy from others.

Incomprehensible code will be considered wrong -- this is not a first programming course. If you have complaints talk to the grader; if it is still necessary see me.