Personal tools
You are here: Home Teaching Organisation Taught Course Information Student Handbooks Undergraduate Year 1 Handbook Inf1-OP INF1-OP: Object-Oriented Programming

INF1-OP: Object-Oriented Programming

— filed under:
NB This page can also be accessed via


Lecturer: Perdita Stevens <>

TA: tba

News and change log


Course Description

This course presents a conceptual and practical introduction to imperative and object oriented programming, exemplified by Java. As well as providing a grounding in the use of Java, the course will cover general principles of programming in imperative and object oriented frameworks. The course should enable you to develop programs that support experimentation, simulation and exploration in other parts of the Informatics curriculum (e.g. the capacity to implement, test and observe a particular algorithm).

Introductory video


The course is assessed by an open-book Programming Exam. See the first and last lectures for more information on this. Past papers are available on the university's site; files needed to do them are below. Put file:///group/examreadonly/index-java.html into your browser on a DICE machine to see the information you'll have access to from your browser in the exam; you may also take in any books, papers etc. you like, but nothing electronic.


Course Schedule

There will only be one OOP Lecture per week, at the following time: 14.10–15.00pm on Mondays, in Lecture Theatre 4, Appleton Tower. The first lecture will be on Monday 12th January 2015.

Schedule and lectures not yet updated for 2015

Lecture Topic

Lab Exercises

Course intro; edit-compile-run; types, variables & assignment [slides | 4up handout]
Video lecture Part 1 Part 2
Lab 1 exercises
Conditionals, while and for loops [slides | 4up handout]
No video lecture this week.
Lab 2 exercises Tutorial
Arrays [slides | 4up handout]
Video lecture and notes about it
Lab 3 exercises Tutorial
Functions (static methods): signatures, arguments, local variables [slides | 4up handout] Lab 4 exercises Tutorial
Objects and Data Types; colours and strings [slides | 4up handout]
Lab 5 exercises Tutorial
Innovative Learning Week: No Inf1 lectures!

Defining classes, constructors, instance variables; interfaces [slides | 4up handout] Lab 6 exercises Tutorial
Encapsulation; ArrayList and HashMap [slides | 4up handout] Lab 7 exercises  Tutorial
Inheritance and Polymorphism [slides | 4up handout]
Video lecture
Lab 8 exercises Tutorial
Revision lecture [slides | 4up handout]
No lecture / Mock Exam No lab sessions; lab in use for mock exam
No lecture. Labs remain open for revision (but no demonstrators, no exercises)

Lab Sessions

You will be allocated to a two-hour scheduled lab per week, located in Computer Lab West (Appleton Tower 5.05) (except Thursday, which is complicated: see the web timetable for details).

Monday Tuesday Wednesday Thursday Friday
15:10 – 17:00 14:10 – 16:00 15:10 – 17:00 15:10 – 17:00 15:10 – 17:00

Allocation to lab groups
IMPORTANT NOTE!!! This page wrongly says that the Thursday group is always in the Hugh Robson building. In fact, in weeks 2 and 6 it is in Appleton Tower (AT5.04).

If you want to move to a different group, please (for tidiness) request this through the ITO RT system. But actually you may attend any lab, e.g. if you need extra time or can't make one particular session. Lab sessions are formally optional; it is possible to do the exercises anywhere. However, in the scheduled labs, help from demonstrators is available.


Tutorials will start in Week 2, and will be scheduled for Thursdays and Fridays. The tutorials will be organised around individual learning plans, rather than around weekly exercises. Tutorial meetings will take place every week, from week 2 to week 11 inclusive. You must attend tutorials, with your current plan. If you cannot attend in a particular week, email your tutor.

Description of the tutorials

Allocation to tutorial groups

If you want to move to a different group, please request this through the ITO RT system.

Textbooks and Other Resources


Almost any Java textbook will contain the material essential to this course: you should feel free to browse and use whatever you like best.

Several Java textbooks are available online here

In the main library the shelfmark for Java textbooks is QA76.73.J38 Jav

The main recommended textbook for the course is: The Java Tutorial: A Short Course on the Basics, 5th Edition, Sharon Zakhour et al. (2013), Addison-Wesley (For practically all purposes, the 4th edition would also be fine - there are just a few very minor language changes.) This contains far more than is needed for this course, and would be a good resource for the rest of an Informatics degree, too.

If you want a more gentle introduction, you might prefer:Introduction to Programming in Java, Robert Sedgewick & Kevin Wayne (2008), Addison-Wesley. There is a useful web site with supplementary information at

Another good online (html and PDF) introduction to Java for beginners is: Introduction to Programming Using Java, by David Eck. This refers to an older version of Java, but for purposes of this course very little has changed.

The Java API

Official online Java documentation



Videos of the lectures should be available shortly after each one at

(as are videos of last year's lectures). You may find these useful for revision or if you have to miss a lecture. In my experience the recordings fairly often fail to appear for technical reasons, though, so I don't recommend relying on them instead of coming to lectures.

Mock Exam 2011/12


OP May Exam 2011/12


Files for older programming exams, because only the PDF papers are available from the university's archive