Course Analysis for Object-oriented Programming 2, Spring -99

Author: Karl Meinke, NADA

Below is a course analysis for the course on object-oriented programming 2.

Course data

The course was taught during period 3 in spring 1999.
Lectures: 28 hours
Exercises: 28 hours
Laboratory exercises: 15 hours
Course literature: UML in a Nutshell, by S.S. Alhir, O'Reilly, 1998.
Lab Assistant: Yolanta Jensen.
Number of students: 41
KM held all lectures and examples classes.


OOP2 is an advanced follow on course from OOP1 where students obtain basic training in object-oriented programming with Java. The course OOP2 attempts to build on this by teaching the fundamentals of object oriented analysis and design. We make use of the Unified Modelling Language (UML) as an emerging industry standard.

The philosophy of the course is to focus on the fundamentals of UML, as well as to focus on three strategic types of diagram, namely object and class diagrams (for static modelling) and statecharts (for dynamic modelling). For each visual language we are careful to describe both the graphical syntax and the semantics (using informal and formal mathematical concepts). We take a fundamental view, since UML is in a state of flux at present. Exercise classes are based on practical problems from Rumbaugh et al "Object-oriented modelling and design", to gain familiarity with using UML. The lab exercises are based on designing, implementing and reverse engineering a simple elevator simulator coded in Java. (This also strengthens Java programming skills.)
New for this year was a course section about mathematical modelling of abstract data types. This falls outside the scope of UML (though not OOA/OOD). Therefore there seemed to be some confusion among students about its role. It seems that many students regard OOP2 as a "UML course", which it is not primarilyy meant to be.


The course went more smoothly this year, compared with '98. However, again there were problems finding qualified lab assistants. (KM also acted as lab assistant).


These were based on the kursbunt, which contains original material developed by KM, and focusses on the fundamental principles of UML. Additional material on abstract data types was added. The coursebook functioned mainly as a reference manual for UML.


Exercises in class and object diagrams were taken from Rumbaugh et al "Object-oriented modelling and design". While exercises on statecharts and data types were developed by KM.

Laboratory work

The lab exercise was based on an elevator simulator described in Deitel and Deitel's book "Java: how to Program". This allowed students to develop a basic class diagram design, implement their design with Java code, and reverse engineer a final statechart from the code. Clarifying instructions were added to the labe exercise from the previous year.

Student Performance

The course was examined with a 5 hour examination.
41 students took the first examination (June '99). Of these, 35 passed, 6 received U (fail), 25 received G (pass)and 10 received VG (pass with distinction).
The second examination was taken by 7 students. 2 received U (fail), 3 received G (pass) and 1 received VG (pass with distinction).

Course Literature

The book UML in a Nutshell was continued with as a language reference (although UML is still in a state of flux!).
However, it has drawbacks as a coursebook (no exercises). Nevertheless, I believe it to be more scientifically rigorous than most books. No suitable textbook on UML has emerged yet in my opinion.

Course Evaluation

A total of 29 returns (i.e. 71% of student participants) were received.

Here are the results of the survey.
1. Rate the clarity of lectures (förläsningar): average 3.89

1 very unclear 2 unclear 3 fair 4 clear 5 very clear

2. Rate the clarity of the course notes (kursbunt): average 3.27

1 very unclear 2 unclear 3 fair 4 clear 5 very clear

3. Rate the clarity of the lab exercises (laborationer): average 2.86
1 very unclear 2 unclear 3 fair 4 clear 5 very clear

4. Rate the usefulness of the lectures (förläsningar): average 4.06
1 very useless 2 useless 3 fair 4 useful 5 very useful

5. Rate the usefulness of the course notes (kursbunt): 3.75
1 very useless 2 useless 3 fair 4 useful 5 very useful

6. Rate the usefulness of the lab exercises (laborationer): 3.71
1 very useless 2 useless 3 fair 4 useful 5 very useful
7. Did you find the teaching in english: average 3.24
1 a great disadvantage 2 a disadvantage 3 neutral 4 an advantage

8. Were you satisfied with support in labs (redovisning, advice, etc)?: average 1.88
1 very unsatisfied 2 satisfied 3 very satisfied

9. Overall, how satisfied with the course were you? average 2.21
1 very unsatisfied 2 satisfied 3 very satisfied

10. If you could make changes to the course, how would you change it?

Some typical comments:

Mycket mer övningar, gärna med förslag till svar som ev. inte behöver gås igenom på lektionerna.
Jag tyker kursen har varit mycket givande och rolig - tack för en inspirerande kurs
Fokuser mer på modellering av mjukvarusystem
Matematiska representation av datatyper har inte givit så mycket
Support in the labs on Thursdays as well
Bonus system for labbar som redovisas enligt en given tidsplan
Anpassa labben mer till kursen
Se till att lab-lydelsen är klar från början
Keep it as it is
As a preparation to the lab exercises, it would be preferable to give the students a thorough lecture about it.


Despite administrative difficulties, mostly with lab staffing, the course progressed smoothly, with a good final pass rate.
Student comments indicate a continued strong level of satisfaction with the course.
This course is due to be rescheduled from the second to the fourth year, which means it will not run again until 2000. This gives a good opportunity to review the lab exercises.

Page editor: <>
Last changed 10 June 1999
Technical support: <>