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

11/1/15 This page is now basically up-to-date: please report any dead links. Some slides will change, and video lectures will appear below. Major changes will be reported here.

18/1/15 Bugfixed L1 slides as mentioned in lecture. Added Week 1 video lecture.

19/1/15 Added Week 2 video lecture.

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

 

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.

Week
Date
Lecture Topic

Lab Exercises

Tutorials
1
12-Jan-15
Course intro; edit-compile-run; types, variables & assignment [slides | 4up handout]
Video lecture Part 1 Part 2
Lab 1 exercises
2
19-Jan-15
Conditionals, while and for loops [slides | 4up handout]
Video lecture OO basics
Lab 2 exercises Tutorial
3
26-Jan-15
Arrays [slides | 4up handout]
Video lecture and notes about it
Lab 3 exercises Tutorial
4
2-Feb-15
Functions (static methods): signatures, arguments, local variables [slides | 4up handout] Lab 4 exercises Tutorial
5
9-Feb-15
Objects and Data Types; colours and strings [slides | 4up handout]
Lab 5 exercises Tutorial
ILW
16-Feb-15
Innovative Learning Week: No Inf1 lectures, scheduled labs or tutorials!

6
23-Feb-15
Defining classes, constructors, instance variables; interfaces [slides | 4up handout] Lab 6 exercises Tutorial
7
02-Mar-15
Encapsulation; ArrayList and HashMap [slides | 4up handout] Lab 7 exercises  Tutorial
8
9-Mar-15
Inheritance and Polymorphism [slides | 4up handout]
Lab 8 exercises Tutorial
9
16-Mar-15
Revision lecture [slides | 4up handout]
Tutorial
10
23-Mar-15
No lecture / Mock Exam No lab sessions; lab in use for mock exam
Tutorial
11
etc.
30-Mar-15
etc.
No lecture. Labs remain open for revision (but no demonstrators, no exercises)

Scheduled labs

Allocation to lab groups

Clicking the link above, you will see that you have been allocated to a two-hour scheduled lab. Scheduled labs take place in Computer Lab West (Appleton Tower 5.05). If you want to move to a different group, please (for tidiness) request this through the ITO RT system. You may, in fact, attend any lab where there is space, e.g. if you need extra time or can't make one particular session. However, if there were ever more people than seats, those not allocated to the lab would be asked to leave.

Attending scheduled lab sessions is formally optional

; it is possible to do the exercises anywhere. However, in the scheduled labs, help from demonstrators is available. See under tutorials concerning the status of lab exercises: in brief, very strong students who already know the examinable material of this course may wish to omit them; everyone else should do them.

 

Everyone should do the Fundamental labs, and these are in the schedule. Some (less developed) Advanced labs are also provided, as a suggested ingredient for Individual Learning Plans of stronger students - see below on tutorials.

Tutorials

Tutorials will start in Week 2. You must attend every week.

Description of the tutorials (This is very important, read it!)

Allocation to tutorial groups

Quick link to tutorial type list (read in conjunction with the Description above!)

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

Progress reporting

So that we can check that you are staying engaged with the course, and offer help if needed, you must, please, fill in the progress form every Friday/Saturday from week 2 to week 10 inclusive. If you have been unable to attend a tutorial, say so on there.

 

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. No USB sticks, for example, for this course.

Feedback

Forum

There is a Piazza group for this course, which you can sign up for here if you wish.

Tools, Textbooks and Other Resources

Tools

You can do this course entirely in the Informatics labs - and you should make sure you are familiar with the setup there, as you'll do the exam there! - but many of you will also want to work on your own machines. This course is based on Java 7, as that's what's installed on DICE. However, the current version, Java 8, is almost entirely backward compatible so you might choose to install that instead. You will need:

Java Development Kit and Java Runtime Environment (version 8 link)

or

Java Development Kit and Java Runtime Environment (version 7 link)

You will also need

Eclipse IDE for Java Developers

Here is a video tutorial that you might find useful.

 

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, including at least one edition of the main recommended one, 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, Addison-Wesley (My page numbers are into the 5th edition, but for practically all purposes, the 4th or 6th edition would also be fine - there are just a few very minor language changes. Let me know if you have any trouble finding relevant sections in the 6th edition.) 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 expect to go beyond the basic syllabus of this course, this book is strongly recommended.

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

 

 

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 some previous years' 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