OPI-Spring2007
From PLSwiki
Contents |
Object-oriented Programming, Introduction (OPI), Spring 2007
This is the course page for Object-Oriented Programming, Introduction.
Practical and administrative matters
- Newsgroup: see below.
- NOTE: first week (Mon 29 Jan + Wed 31 Jan) lectures are 16:00 - 18:00 and three are no labs. Mon 29 Jan we are in 4A14 and Wed 31 Jan we are in 4A16.
- Lectures: Monday 13:30-15:30 (Room 4A16), Wednesday 13:30-15:30 (Room 4A16).
- Exercise labs: Monday 16-18:30 (Rooms 4A54 + 4A46), Wednesday 16:00-18:30 (Rooms 4A54 + 4A56).
- The course period is 16 weeks half time (15 ects). The course will consist of 12 weeks of lectures and four weeks project work.
- 12 out of 15 mandatory exercises must be handed and passed satisfactorily to attend the exam. The project work counts for 4 mandatory exercises (so you must hand in the project work to attend the exam). You are allowed to work in groups to solve the excercises, but each individual student must write his/her solution up individually and hand it in by him/herself.
- Students are expected to attend the lectures and make use of the labs.
- Exam: 4 hours written exam, paper and pencil, 2007-06-08.
Topics and tentative plan
- Below is a tentative plan.
| Week | Date | Teacher | Topic | Materials | Labs |
|---|---|---|---|---|---|
| 05 | Mon 29 Jan | LB | Intro + Blue J | OF Ch. 1, [slides] | |
| 05 | Wed 31 Jan | BB | Class definitionss | OF Ch.2,
[slides] | |
| 06 | Mon 05 Feb | LB | Arithmetic and Variables | PP Ch. 3, Sec. 1-7, | All the blue exercises in OF Ch. 1 and 2 |
| 06 | Wed 07 Feb | BB | More on class def'ns and conditions | PP Ch. 5, Sec. 1-7 and Ch. 6, Sec. 1-4, | Continue with all the blue exercises in OF Ch. 1 and 2 |
| 07 | Mon 12 Feb | LB | Object interaction | OF Ch. 3
[slides], | Exercises in PP: 3.2.1, 3.2.1.5, 3.3.2, 3.6.1, 3.6.2, 3.7.1, 3.7.2, 5.4, 5.2.2.2, 5.3.2, 5.3.1.1, 6.2.1, 6.2.3, 6.3.1, 6.3.3 |
| 07 | Wed 14 Feb | LB | Grouping Objects | OF Ch. 4
[slides], | Exercises in OF Ch. 3 |
| 08 | Mon 19 Feb | BB | Iteration and Recursion | PP Ch. 7,Sec 1-8 + 10-11 + 13
[slides], | Exercises in OF Ch. 4 |
| 08 | Mon 21 Feb | BB | Arrays | PP Ch. 8, Sec 1-6 + 8-9 + 11-12
[slides], | Exercises in PP: 7.2.2, 7.2.3, 7.3.1, 7.3.2, 7.5.1, 7.5.1.1, 7.6.1, 7.11.2.4 |
| 09 | Mon 26 Feb | BB | Sorting and Searching | SS | Exercises in PP: 8.1.1, 8.1.3, 8.2.1, 8.2.2, 8.2.3, 8.3.4, 8.4.4, 8.4.5, 8.4.6, 8.8.1, 8.8.2, 8.8.3 |
| 09 | Wed 28 Feb | BB | Using libraries | OF Ch. 5
[slides], | Exercises in SS: 1.7.1, 1.7.2, 1.7.3, 4.10.4, 4.10.5, 4.10.6, 4.10.7, 4.10.8, 5.8.1, 5.8.4, 5.8.5, 5.8.8, 5.8.9, 6.7.1, 6.7.2, 6.7.4, 6.7.5 |
| 10 | Mon 05 Mar | LB | Inheritance | OF Ch. 8
[slides] | Exercises in OF Ch. 5 |
| 10 | Wed 07 Mar | LB | Inheritance | OF Ch. 9 | Exercises in OF Ch. 8 |
| 11 | Mon 12 Mar | CS | Objects, Classes, References | [notes]
[code] | [studyguide] |
| 11 | Wed 14 Mar | CS | Recursion | [notes]
[code] | [studyguide] |
| 12 | Mon 19 Mar | CS | Inner Classes | [notes]
[code] | [studyguide] |
| 12 | Wed 21 Mar | JS | Threads | [notes]
[code] | [studyguide] Hand in 3 and 4. |
| 13 | Mon 26 Mar | JS | I/O | [notes] | [studyguide] Hand in 4. |
| 13 | Wed 28 Mar | CS | Relection | [notes] | [studyguide]
Problem 2, (the parts that are marked as hand-ins) |
| 14 | Mon 02 Apr | CS | Contracts | [notes]
[code] [Betrant Meyer, Applying Design By Contract] [ESC/Java homepage] [QSA.java] | [studyguide] |
| 14 | Wed 04 Apr | Easter holiday | |||
| 15 | Mon 09 Apr | Easter holiday | |||
| 15 | Wed 11 Apr | JS | Exceptions | [notes]
[code] | [studyguide]
Handin Exercise 3, [Additional Problem] |
| 16 | Mon 16 Apr | CS | Gaphical User Interfaces | [notes] | [studyguide]
[Additional Problem] Hand-in only the additional problem. [TheThreeColors.java] |
| 16 | Wed 18 Apr | CS | Model View Control | Slides from last lecture. | [ListExample.tgz] |
| 17 | Mon 23 Apr | JS | Generics, Inheritance, and Polymorphism | [notes]
[notes] | [code]
[studyguide] [studyguide] |
| 17 | Wed 25 Apr | JS | Project Introduction, Connect4 | (see below) | [project description] |
In week 18-22, Mon 30 Apr - Wed 30 May, students work on the project (more info to come).
Project
The project is about implementing a Connect 4 program. In the [project description] you find three homework problems, that you are expected to hand in. See schedule below. A draft version of the referee [referee.java] is also available. For simplicity, this version of the referee does not take time. The code for the [NIM game] that we discussed in class is also available.
John and Tore won the tournament. Congratulations. Results of the Tournament
Final Exam
As you know this is the first class we are teaching OPI as one 15 etc class. Therefore, there are no old OPI exams I could refer you to. However, in the past, we have taught GP and OOP. Without any warranties, promises, and in the hope not to raise wrong expectations, please find on the [OOP E2006 homepage] a list of old OOP exams.
Newsgroup
There is a newsgroup for this course, where students can post and answer questions to each other. The teaching assistent will also read and answer questions once or twice every week. You can subscribe via your email program (for example Mozilla Mail), there is a folder called news.itu.dk, and the newsgroup is called it-c.courses.OPI.
Literature and materials
- Barnes and Koelling: Objects First with Java (OF)
- Sestoft: Java Precisely (JP)
- [Schmidt: Programming Principles in Java]. (PP)
- [Sestoft: Searching and Sorting.(SS)]
Exercise Labs
At the exercise labs you should work on solving problems from the course material and ask questions to the teaching assistant.
Mandatory Assignments
Mandatory assignments are posted on this home page in week n. You should work on the assignments in week n+1 and hand in the assignment by 13:30 in the pidgeon hole outside the study administration on Monday in week n+2. Assignments are handed in on paper. You don't have to typeset your answers, but you should have tested all the code you submit. The hand-in should contain: a title page with the name of the course, and your name and a “report” with comments to your solution and program code. All pages including the title page should be stabled together. The assignment will be evaluated as either pass or fail. If it fails, you can revise it and hand it in again within one week.
- 1. Hand-in on Monday Feb. 12 at 13:30: OF Ex. 1.27, 1:30, 2.32, 2.40, 2.51, 2.64
- 2. Hand-in on Monday Feb. 19 at 13:30: PP Ex. 3.3.1, 6.3.3
- 3. Hand-in on Monday Feb. 26 at 13:30: OF Ex. 3.29 + 3.32. For 3.29 you should hand-in your code as you have implemented it in Blue J.
- 4. Hand-in on Monday Mar. 05 at 13:30: OF Ex. 4.17, 4.26, 4.34, 4.35, 4.36
- 5. Hand-in on Monday Mar. 12 at 13:30: PP Ex. 7.6.1, 8.4.5, SS Ex. 5.8.1
- 6. Hand-in on Monday Mar. 19 at 13:30: OF Ex. 8.11, 9.8
- 7. Hand-in on Monday Mar. 26 at 13:30: Handin exercises for Lecture 13,14
- 8. Hand-in on Monday Apr. 2 at 13:30: Handin exercises for Lecture 15, 16
- 9. Hand-in on Monday Apr. 16 at 13:30: Handin exercises for Lecture 17, 18
- 10. Hand-in on Monday Apr. 23 at 13:30: Handin exercises for Lecture 19, 20
- 11. Hand-in on Monday Apr. 30 at 13:30: Handin exercises for Lecture 21
- 12. Hand-in on May. 23 at 13:30: Project hand in.
Teachers
Teaching Assistant
- Lilian Juma (lilian.juma@yahoo.com)
