COMSM0103: Object Oriented Programming With Java
About the unit
Outline and Handouts
| Lecture | Date | Subject and Chapter |
| 1 | Monday 30 January 2012 | Introduction to the unit, OOP, and Java |
| 2 | Tuesday 31 January 2012 | Objects and classes (Ch.1) and Understanding class definitions (Ch.2) |
| No lecture | Monday 6 Feb. 2012 | |
| 3 | Tuesday 7 Feb. 2012 | Object interaction (Ch.3) |
| 4 | Monday 13 Feb. 2012 | Finishing chapter 3 |
| 5 | Tuesday 14 Feb. 2012 | Grouping objects (Ch.4) |
| All | Spring 2011 | All handouts from 2011. |
Coursework
To be announced. There will be approximately 3 assignments worth about 50% of the unit. There will also be a multiple-choice test worth about 50%.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 above. The assignments will get much harder as the course progresses, and an assignment worth 20% may take more than twice as long as an assignment worth 10%. Earlier assignments focus more on the basics of java programming and later ones focus more on design.
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.
An essential resource you must get used to using
- Java 1.5 API
- Java 1.6 API. This course assumes you are using 1.5, but the differences between 1.5 and 1.6 are probably not relevant to what we do in the course.
- Java 1.7 API
Lab sessions
This unit does not have scheduled lab sessions. In past years there was a programming help desk which was sufficient for this unit, but it was abolished this year. If you feel more support is needed 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.
- Summary of new features in Java 7 that are relevant to people learning to program
- 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
- COMS12100 Software Engineering
- COMS30205 Advanced Software Development
Tutorials
- A tutorial for beginners
- A tutorial for competent Java programmers
- Sun's Java tutorial -- hundreds of example programs
Extra Handouts
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 java source code in the "extra" folder of the example code page. There are also links to relevant lectures on other units.
| Subject |
| Networking PDF |
| Collections. Overview in PS and PDF. More details here. |
| 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 |
| Complexity of LinkedList and ArrayList -- see the COMS12100 Library Classes lecture |
| Stacks, Queues and Trees -- see the COMS12100 Structures lecture |
| An overview of key features of Java -- see COMS30205 lecture |
| Patterns -- see COMS30205 lectures |
Articles
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.

