This course is a prerequisite for the Group Project (Part II (General)).
The aim of this course is show how to design, implement and debug
medium size Java programs. Case studies will be used for illustration,
the main one being an animated 3-D sundial.
Differences between small and large programs. Keeping complexity
under control. Debugging strategies. Introduction to the sundial
case study and outline of the Java classes used.
Displaying the scene.
Geometry of the scene and coordinate transformations. Treatment of
text and graphics. Painting using double buffering.
Controlling the animation.
Controlling the sundial using the mouse and keyboard. Dealing with
events and interacting with various AWT components. Multi-threading
and synchronisation. Mathematics of sundials and the equation of time.
Discussion and second case study.
Portability issues, fonts, differences between Internet Explorer,
Netscape and Appletviewer. If time permits, other case studies will
At the end of the course students should
be able to design and implement
a well-structured medium-sized Java program
should be able to debug such a program, and
should be aware of possible machine dependencies in the program.
Flanagan, F. (1997). Java in a nutshell. O'Reilly.
Eckel, B. (1998). Thinking in Java. Prentice-Hall.