INF1-OP: Object-Oriented Programming
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
-
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/.
- A good online (html and PDF) introduction to Java for beginners is: Introduction to Programming Using Java, by David Eck
- 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
-
- 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 Sheet
This Java reference sheet covers most of the language that is needed in the course.The Java API
- 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/


