INF1-OP: Object-Oriented Programming
||<perdita @ inf.ed.ac.uk>
News and change log
- this page is not yet fully updated for 2013-14
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 .
Course Schedule Not yet updated!!!
Not yet updated for 2014
There will only be one OOP Lecture per week, at the following time: 14.10–15.00pm on Mondays, in Appleton Tower Lecture Theatre 1 (AT LT1). The first lecture will be on Monday 14th January 2013.
|Course intro; edit-compile-run; types, variables & assignment [slides | 4up handout]||Lab 1 exercises|
||Lab 2 exercises||Tutorial
|Arrays [slides | 4up handout | Errata]||Lab 3 exercises||Tutorial|
|Functions (static methods): signatures, arguments, local variables [slides | 4up handout | Errata]||Lab 4 exercises||Tutorial
|Objects and Data Types; colours and strings
4up handout | Errata]
||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]||Lab 8 exercises||Tutorial
|Revision lecture [slides | 4up handout]||
|No lecture / Mock Exam||No lab sessions||Tutorial
|No lecture. Show and Tell session, Monday 1st April 3-5pm in the lab (5.05)||Drop-in/revision labs|
Lab Sessions Not yet updated!!!
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 14th January.
|15:10 – 17:00||14:10 – 16:00||15:10 – 17:00||15:10 – 17:00||15:10 – 17:00|
Link: allocation to lab groupsIf 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.
Tutorials Not yet updated!!!
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. Tutorial meetings will take place every week, from week 2 to week 11 inclusive.
If you want to move to a different group, please request this through the ITO RT system.
Textbooks and Other Resources
The main 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 - just look out for minor language changes.)
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/.
- A good online (html and PDF) introduction to Java for beginners is: Introduction to Programming Using Java, by David Eck
- Not yet updated!!!
- Print: Main Library, Shelfmark QA76.73.J38 Jav
- Ebook: http://proquest.safaribooksonline.com.ezproxy.webfeat.lib.ed.ac.uk/0321334205
- Also available in HTML format on Oracle's website, together with code samples: Learning the Java Language
A Java Reference SheetThis Java reference sheet covers most of the language that is needed in the course.
The Java API Not yet updated!!!
- Java API docs on DICE: file:///usr/share/doc/java-1.6.0-sun-manual-1.6.0/api/index.html.
- Java API docs on Oracle's website http://download.oracle.com/javase/6/docs/api/
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