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 http://tinyurl.com/inf1op2014.

People

Lecturer: Perdita Stevens <perdita@inf.ed.ac.uk>

TA: Donal Stewart <donal.stewart@ed.ac.uk>

News and change log

13/1/14: corrected tinyurl

17/1/14: note about Thursday lab

17/1/14: added Week 1 video lectures

27/1/14: fixed link to ITO RT system

31/1/14: added Week 3 video lecture

16/3/14: added Week 8 video lecture

27/3/14: added words about exam plus link to information available during it

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

Assessment

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.

Feedback

Course Schedule

There will only be one OOP Lecture per week, at the following time: 14.10–15.00pm on Mondays, in Lecture Theatre B, David Hume Tower. The first lecture will be on Monday 13th January 2014.

Slides may yet change in minor ways, but any substantive changes will mentioned under News above.

Week
Date
Lecture Topic

Lab Exercises

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

6
24-Feb-14
Defining classes, constructors, instance variables; interfaces [slides | 4up handout] Lab 6 exercises Tutorial
7
03-Mar-14
Encapsulation; ArrayList and HashMap [slides | 4up handout] Lab 7 exercises  Tutorial
8
10-Mar-14
Inheritance and Polymorphism [slides | 4up handout]
Video lecture
Lab 8 exercises Tutorial
9
17-Mar-14
Revision lecture [slides | 4up handout]
Tutorial
10
24-Mar-14
No lecture / Mock Exam No lab sessions; lab in use for mock exam
Tutorial
11
etc.
31-Mar-14
etc.
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

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

Textbooks

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 http://introcs.cs.princeton.edu/home/.

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

Forum

https://www.forums.ed.ac.uk/viewforum.php?f=1261

Videos

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

http://groups.inf.ed.ac.uk/vision/VIDEO/

(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