OPI-Spring2007

From PLSwiki

Jump to: navigation, search

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,

[slides], [bluej-lecture-3.zip]

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,

[slides], [bluej-lecture-4.zip]

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

[slides], [bluej-lecture-9.zip]

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

[slides] [inheritance-example.java]

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]

[code] [Reflection Tutorial]

[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]

[code] [Pulse.java (3D)] [Pulse1.java (3D)]

[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

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)

Personal tools