COMSM0103: Object Oriented Programming With Java
About the unit
An essential resource you must get used to using
Lab sessions
This unit does not have scheduled lab sessions. If you need help with programming please go to the help desk. In the past
this has been sufficient, but if you feel more support is needed, for example to help with the material needed for a particular assignment,
please speak to your course representative who will collate opinions and then forward them to me.
Other Resources
- Where to get help in the department of Computer Science
- BlueJ
- Example code (including projects from course text)
- Summary of new features in Java 1.5 by the authors of the course text
- For more detail see New Features and Enhancements
from the JDK 5.0 Documentations
- The New Features and Enhancements
from the JDK 6.0 Documentations is more technical.
- The department's java resources page
- Programming style guide
- Core Java Technologies Tech Tips Tips on advanced subjects
- Javaworld Q&A and Tips
- M0103 Forum
- Sun's 'New to Java'
Centre
- Java tips Tips on how to implement particular things in Java
- Sun Developer Network -- Java Standard Edition Articles, example code, documentation
The first year Software Engineering course also uses Java and you may want to check its
resources page.
Tutorials
- A tutorial for beginners
- A tutorial for competent Java programmers
- Sun's Java tutorial -- hundreds of example programs
- For more detail see New Features and Enhancements from the JDK 5.0 Documentations
- The New Features and Enhancements from the JDK 6.0 Documentations is more technical.
Outline and Handouts
| Lecture | Subject and Chapter |
| 1 | Introduction to the unit, OOP, and Java |
| 2 | Objects and classes (Ch.1) and Understanding class definitions (Ch.2) |
| 3 | Object interaction (Ch.3) |
| 4 | Grouping objects (Ch.4) |
| 5 | More sophisticated behavior - libraries (Ch.5) |
| 6 | Well-behaved objects -- testing and debugging (Ch.6) |
Extra Material
This section contains slides used in previous years which either go into a subject in more detail than the handouts or which cover new areas. Most of them are based on the Core Java books and follow their structure. Most have source code in the "extra" folder of the example code page.
| Subject |
| Script programming PDF |
| Networking PDF |
| Collections PS PDF |
| Exceptions PS PDF |
| Input/Output PS PDF |
| GUI Basics PS PDF |
| Graphics PS PDF |
| Event Handling PS PDF |
| Layout Managers and Text Components PS PDF |
| Non-Text Swing Components PS PDF |
| Dialogs PS PDF |
| Applets PS PDF |
Articles
Coursework
You are strongly advised to work through the regular exercises in the textbook on your own as the course progresses. The text's challenge exercises are harder and you may not have time to do all of them, but you can at least think about how you would solve them.Assessed assignments will be posted below.
I assume you are using linux as installed in the labs. Java and BlueJ work under Windows but I don't have any experience with using them there and I can't provide help. If your code is run by the marker it will be under linux. If you write your code under some other operating system it is a good idea to check that it works as you expect under linux before submitting it, since Java is not 100% portable (and in any case operating systems handle things like file paths differently).
The value of the later assignments may change a little.
| Assignment | Value | Deadline | General Feedback |
| Rectangle | 10% | Monday 15 February 2010 |
Lecturer
- Tim Kovacs
- I don't have regular office hours. It's easiest to reach me by email or through the unit forum, or to talk to me after a lecture.
- My contact details.
- If you have any feedback on how to improve the unit I'll be happy to hear it.

