INF1-OP: Object-Oriented Programming
Lecturer: Perdita Stevens <firstname.lastname@example.org>
TA: Donal Stewart <email@example.com>
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
11/7/14: reminder that there is feedback on the mock and real exam, and papers for the real exam, at http://homepages.inf.ed.ac.uk/perdita/inf1opmock/ (use the username and password that have been emailed to you)
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).
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.
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.
|Course intro; edit-compile-run; types, variables & assignment
Video lecture Part 1 Part 2
|Lab 1 exercises|
No video lecture this week.
|Lab 2 exercises||Tutorial
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
||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
|Lab 8 exercises||Tutorial
|Revision lecture [slides | 4up handout]||Tutorial|
|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)
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).
|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).
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.
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 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 APIOfficial 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
Files for older programming exams, because only the PDF papers are available from the university's archive