Personal tools
You are here: Home Teaching Organisation Taught Course Information Year Programme Guides Undergraduate 1st Year Guide INF1-OP: Object-Oriented Programming

INF1-OP: Object-Oriented Programming

— filed under:
NB This page can also be accessed via http://tinyurl.com/inf1-oop.

People

Lecturer: Ewan Klein <ewan @ inf.ed.ac.uk>
TA: Mark Sinclair <M.Sinclair-7 @ sms.ed.ac.uk>

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).

Assessment

The course is assessed by an open-book Programming Exam (worth 95%) and by assessment of one of the weekly lab exercises (worth 5%).

Course Schedule

There will only be one OOP Lecture per week, at the following time: 14.00–14.50pm on Mondays, in Appleton Tower Lecture Theatre 1 (AT LT1). The first lecture will be on Monday 16th January 2012.

Week
Date
Lecture Topic

Lab Exercises

Tutorials
1
16-Jan-12
Course intro; edit-compile-run; types, variables & assignment [slides | 4up handout] Lab 1 exercises, lab intro slides
2
23-Jan-12
Conditionals, while and for loops [slides | 4up handout] Lab 2 exercises, Using infandango Tutorial 1
3
30-Jan-12
Arrays [slides | 4up handout] Lab 3 exercises
4
6-Feb-12
Functions (static methods): signatures, arguments, local variables [slides | 4up handout] Eclipse Exercise 1, Lab 4 exercises Tutorial 2
5
13-Feb-12
Objects and Data Types; colours and strings [slides | 4up handout] Lab 5 exercises
6
20-Feb-12
Innovative Learning Week: No Inf1 lectures!

7
27-Feb-12
Defining classes, constructors, instance variables; interfaces [slides | 4up handout] Lab 6 exercises Tutorial 3
8
05-Mar-12
Encapsulation; ArrayList and HashMap [slides | 4up handout] Lab 7 exercises  
9
12-Mar-12
Inheritance and Polymorphism [slides | 4up handout] Lab 8 exercises Tutorial 4
10
19-Mar-12
Revision lecture [slides | 4up handout]

11
26-Mar-12
No lecture / Mock Exam No lab sessions Tutorial 5
12
02-Apr-12
No lecture Drop-in/revision labs

Lab Sessions

You will attend a two-hour scheduled lab per week, located in Computer Lab West (CLW), AT level 5. Note that the first scheduled lab is at 15.00 on Monday 16th January.

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

Link: allocation to lab groups

Tutorials

Tutorials will start in Week 2, and will be scheduled for Thursdays and Fridays. The tutorials will be organised around team-based project work, rather than around weekly exercises. There will be a total of five tutorial meetings, which will take place roughly every two weeks, namely in weeks 2, 4, 7, 9 and 11.

Link: description of the tutorial projects

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

Link: allocation to tutorial groups

Link: Projects Show and Tell Session

Textbooks and Other Resources

Textbooks

  1. The main textbook for the course is:

    Introduction to Programming in Java, Robert Sedgewick & Kevin Wayne (2008), Addison-Wesley

    There is a useful web site with supplementary information at http://introcs.cs.princeton.edu/home/.

  2. A good online (html and PDF) introduction to Java for beginners is: Introduction to Programming Using Java, by David Eck
  3. A concise introduction to the Java language suited to people who already have some programming experience, is the following:
    The Java Tutorial: A Short Course on the Basics, 4th Edition, Sharon Zakhour et al. (2006), Addison-Wesley

A Java Reference Sheet

This Java reference sheet covers most of the language that is needed in the course.

The Java API

Mock Exam 2011/12