0657.209B: Object-Oriented Programming
2002 Course Outline


Bernhard Pfahringer
Room G1.25
Phone (07) 838 4041


Matthias, Nick

Course Website


Online Material


Course Objectives

This course will give you experience in designing and implementing larger, more real-worldy applications than the previous course, 208A. After passing the course, you will be capable of:

These are crucial skills for real-world programming.



[tests only: Friday]11am-12pmL.G.02

Tutor's office hours (RG17)

Mo9-11, Matthias
Th1-3, Nick

Lecturer's office hours (G1.25)


Labs: Practical work can be done at any time in R-Block Lab 1. Demonstrators will be available several hours per week to assist you with any problems. Your demonstrators will be Matthias and Nick. They are available in Lab 1:


Prerequisite Courses

Official prerequisites are:

Teaching Strategy

Lectures will inspire you and introduce the basic ideas and techniques of the course. In most weeks, one lecture hour will be used as a tutorial session, for discussion of assignments, demonstrations and tests. Lectures will NOT cover all the course material in detail -- for some topics you will be required to study particular sections of the textbook, or some online documentation.

In computer science, some skills must be learned by doing, rather than by listening or reading, so all the major modules in the course include practical assignment work that you must do to consolidate your understanding of material. For this practical programming work, we use the Java language and Haskell functional programming language (with the Hugs interpreter).

Here is a list of the tests, and some of the skills that you will develop:

  1. [11%] Test. Java 1, to be determined.
  2. [11%] Test. Java 2, to be determined, maybe a programming test in R1.
  3. [11%] Test. Haskell guessing game. (Haskell monadic I/O).
  4. [11%] Test. Java 3, to be determined.
  5. [11%] Test. Java 4, to be determined, maybe a programming test in R1.
  6. [11%] Test. Java 5, to be determined.
  7. [12%] Hand-in Java project 1: some small application, done in pairs.
  8. [22%] Hand-in Java project 2: A Simple Game, done individually. (OO Design and Programming, Interfaces, GUI Programming).

All tests are open book.

Help! Demonstrators will be available in R-Block to help you with small practical difficulties. Larger problems, or conceptual difficulties, should be addressed by emailing the tutor (???@cs.waikato.ac.nz), or visiting his office during consultation hours , or during the problem solving, tutorial sections of lectures .

Attendance Policy

Lecture attendance is expected. The course notes provided are not comprehensive, additional material will be covered in lectures. You are responsible for all material covered in lectures and all required reading material set in lectures.

Expected Workload

On average you should expect to spend about 15 hours per week on this class. Roughly: 4 hours of lectures, 4 hours of reading and study and 7 hours of practical design/programming work each week.

Important Dates

Friday 26 July L2 Class Test 1 11% (Java 1)
Friday 9 August R1? Class Test 2 11% (Java 2)
Friday 23 August . handin project 1 12%
POSTPONED Friday 13 September L2 Class Test 3 11% (Haskell)
Friday 20 September L2 Class Test 4 11% (Java 3)
Friday 4 October R1? Class Test 5 11% (Java 4)
Friday 18 October L2 Class Test 6 11% (Java 5)
CHANGED Monday 21 October handin project 2 22%

These dates are subject to change.

Special consideration for missed or impaired course work is covered in the University Calendar on page 265. Documentary evidence, such as medical certificates, should be submitted directly to the Computer Science office which will forward any relevant information to the course coordinator.

Course Requirements

This course is 100% internally assessed, i.e. there will be NO final exam. An overall mark of 50% is required for a pass.

Reading Material

Virtual handouts will be given out for material that is not covered by the textbook. These, as well as additional material, such as code listings, will be available on-line at the course website.

Required Textbook: Understanding Object-Oriented Programming with Java, Updated Edition (the "yellow" version)
by Timothy Budd
Addison-Wesley Longman, ISBN: 0-201-61273-9, 1999. Second edition.

Optional Reading:

Haskell: The Craft of Functional Programming
by Simon Thompson. Addison Wesley, 1996. (on Desk Copy).

ONLINE JAVA STUFF: (taken from the 312 webpage) There are two versions of Java installed -- 1.3.1 and 1.4. You are welcome to use either in your assignments, but remember that as Java 1.4 is still rather new, it is still unproven. For "assertions" you will need to use Java 1.4, for everything else you are free to choose either one.


Concerns or complaints should be expressed in the first instance to the course lecturer. Suggestions for improvement are always welcome. Thereafter problems are dealt with by the Chairperson of the Department and if still unresolved the Dean and then ultimately the Vice Chancellor.

Academic Integrity

All students involved in misconduct connected with assessment will receive zero marks for their work. Their behavior will be documented for forwarding to the University Disciplinary Committee. Where appropriate, students are responsible for protecting their intellectual property, including computer disc files. Use the chmod command to ensure that all your directories for this course have permission 700 (drwx------).

Official Policies

Your attention is drawn to the following policies and regulations which are contained in the University Calendar:

bernhard@cs.waikato.ac.nz, yongwang@cs.waikato.ac.nz
Department of Computer Science, The University of Waikato, Hamilton,
New Zealand
Last modified: Tue Jun 26 10:38:00 NZST 2002