The University of Queensland Homepage
School of ITEE ITEE Main Website

 Course material

Course material

Handouts will appear on this page as they become available. The recommended readings for each week (see below) are from the course textbook.

Except in Week 2, tutorial and prac problems are from the course textbook. The numbers below refer to the Exercises (not the Self-Study Exercises) at the end of the chapters. Pracs are intended to give you practice with programming techniques required for the Assignments. Tutorials are intended to reinforce material taught in the lectures which may appear in the final Exam.

If you have the 2nd edition of the textbook, please note the differences in grey font below.

Lecture recordings are available from Echo 360 (if this link doesn't let you in, try Blackboard).


Week 1         Introduction to Programming in the Large and Java

Topic: What is Programming in the Large? Java basics.

Lecture slides        Lecture code

No tutorials or pracs this week. Please sign-up for one tutorial and one prac session by the end of this week.


Week 2         Data abstraction: Classes and objects

Topic: Primitive vs. object types. Creating classes in Java. (Read chapters 1 and 2 this week.)

Lecture slides         Lecture code

Tutorial 1          Sample Solutions

Prac 1         Supporting files: images.zip         neko.zip         Getting started with Eclipse          Sample Solutions


Week 3         Data abstraction: Test-driven implementation

Topic: Testing classes in isolation. Implementation invariants. (Read chapters 3 and 4 this week.)

Lecture slides         Lecture code

Tutorial 2 - Exercises 1.1, 1.2, 1.3, 2.2, 2.4 and 2.6         Sample Solutions

Prac 2 - Exercises 2.5, 2.13, 2.14 and 2.16         Sample Solutions


Assignment 1

Assignment handout        ZIP file as described in handout. (Updated 27 March 2012)

Assignment corrections. (Added 27 March 2012)

Assignment due by 5pm on Monday, April 16th, 2012. Refer to the handout and these detailed instructions for submission details.

Sample solution

Assignment 1 results are here.


Week 4         Data abstraction: Additional methods

Topic: Equals and hashCode methods. Iterable, Comparable and Cloneable interfaces.

Lecture slides         Lecture code

Tutorial 3 - Exercises 4.2, 4.3, 4.5, 4.6 and 4.7         Sample Solutions
(2nd edition of textbook: Exercises 4.2, 4.3, 4.4, 4.5 and 4.6)

Prac 3 - Exercises 3.8, 3.9, 3.10, 3.11 and 4.16         Sample Solutions


Week 5         Procedural abstraction: Specification and Testing

Topic: Specifying methods. Black box and white box testing. (Read chapters 5 and 6 this week.)

Lecture slides         Lecture code

Tutorials and Pracs may be used for assistance with Assignment 1.


Week 6         Procedural abstraction: Exceptions and File I/O

Topic: Dealing with exceptional behaviour. Reading and writing to files. (Read chapter 15 this week.)

Lecture slides         Lecture code

Tutorial 4 - Exercises 5.7, 5.8, 5.11, 6.3, and 6.4          Sample Solutions

Pracs may be used for assistance with Assignment 1.


Assignment 2

Assignment handout        ZIP file (as described in handout.) [Updated 22 April 2011]

Assignment due by 5pm on Friday, May 4th, 2012. Refer to the handout and these detailed instructions for submission details.

Assignment corrections and clarifications. (Updated 30 April 2012)

Sample solution


*** Semester break ***


Week 7         Procedural abstraction: Loops and Recursion

Topic: Correctness. Loop invariants. Recursive methods. (Read chapter 19 this week.)

Lecture slides         Lecture code

Tutorial 5 - Exercises 19.4, 19.5 and 19.6         Sample Solutions

Prac 4 - Exercise 6.6 and 6.10 (using JUnit)         Using JUnit         Sample Solutions
(2nd edition of textbook: Exercise 6.6. There is no question equivalent to Exercise 6.10 of the 3rd edition.)


Week 8         Object-oriented Design

Topic: Designing object-oriented software systems.

Lecture slides         Lecture code         Tetris code and search code

Pracs and tutorials may be used for assistance with Assignment 2.


Week 9         Graphical User Interfaces

Topic: Graphical components. Java Swing. (Read chapter 17 this week.)

Lecture slides         Lecture code

Tutorial 6 - Exercises 15.1, 15.2 and 15.3         Sample Solutions

Pracs may be used for assistance with Assignment 2.


Week 10         Class Hierarchies: Interfaces

Topic: Class hierarchies via interfaces. (Read chapters 9 and 10 this week.)

Lecture slides         Lecture code

Tutorial 7 - Exercises 9.4 and 9.7         Sample Solutions

Prac 5 - Exercises 17.2, 17.3 and 17.4         Sample Solutions


Assignment 3

Assignment handout        ZIP file (as described in handout.) [Updated 23 May 2012]

Assignment due by 5pm on Wednesday, May 30th, 2012. Refer to handout for submission details.

Assignment corrections and clarifications. (Updated 23 May 2012)


Week 11         Class Hierarchies: Inheritance and Generics

Topic: Class hierarchies via inheritance and generics. (Read chapters 11 and 20 this week.)

(2nd edition of textbook: Read chapter 11 and supplement d.1 this week.)

Lecture slides         Lecture code

Tutorials and pracs may be used for assistance with Assignment 3.


Week 12         Class Hierarchies: Collections

Topic: Java Collections Framework. Iterators. (Read chapter 22 this week.)

(2nd edition of textbook: Read chapter 21 this week.)

Lecture slides

Tutorial 8 - Exercises 11.3, 11.5, 20.5 and 20.6

Pracs may be used for assistance with Assignment 3.


Week 13         Revision