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.
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.)
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.)
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.
Assignment 1 results are here.
Week 4 Data abstraction: Additional methods
Topic: Equals and hashCode methods. Iterable, Comparable and Cloneable interfaces.
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.)
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.)
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)
*** Semester break ***
Week 7 Procedural abstraction: Loops and Recursion
Topic: Correctness. Loop invariants. Recursive methods. (Read chapter 19 this week.)
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.)
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.)
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.)
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.)
Tutorial 8 - Exercises 11.3, 11.5, 20.5 and 20.6
Pracs may be used for assistance with Assignment 3.
