Nada

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

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 1998.
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: Ulf Bourelius.
Number of students: 51
KM held all lectures and examples classes.

Goals

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.)

Summary

The course suffered from certain problems:
(i) No students could be found to work as handledare on a relatively new course.
(ii) Only 1 student could be found to work as a lab assistant.
(iii) No software was available to support UML design, since the cost of licenses was deemed too high.

Despite these difficulties, the course went fairly smoothly with the exception of difficulties with lab work due to understaffing.

Lectures

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

Exercises

Exercises in class and object diagrams were taken from Rumbaugh et al "Object-oriented modelling and design". While exercises on statecharts 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.

Student Performance

The course was examined with a 5 hour examination.
50 students took the first examination (June '98). Of these, 33 passed, 17 received U (fail), 29 received G (pass)and 4 received VG (pass with distinction).
The second examination was taken by 16 students. 2 received U (fail), 12 received G (pass) and 2 received VG (pass with distinction).

Course Literature

The book UML in a Nutshell is adequate as a language reference (although UML is 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.

Course Evaluation


A total of 25 returns (i.e. 50% of student participants) were received.

Here are the results of the survey. Since answers range from, e.g. "very clear" to "unclear", they suggest
a difference in background between mathematically mature and immature students, given that the classwork is theoretically oriented.
1. Rate the clarity of lectures (förläsningar):

1 very unclear 2 unclear 3 fair 4 clear 5 very clear
[] [ ] [ 5 ] [ 13 ] [ 7 ]

2. Rate the clarity of the course notes (kursbunt)

1 very unclear 2 unclear 3 fair 4 clear 5 very clear
[ ] [ 3 ] [ 9 ] [ 10 ] [ 3 ]

3. Rate the clarity of the lab exercises (laborationer)
1 very unclear 2 unclear 3 fair 4 clear 5 very clear
[ ] [ 3 ] [ 5 ] [ 10 ] [ 7 ]

4. Rate the usefulness of the lectures (förläsningar)
1 very useless 2 useless 3 fair 4 useful 5 very useful
[ ] [ ] [ 11 ] [ 11 ] [ 3 ]

5. Rate the usefulness of the course notes (kursbunt)
1 very useless 2 useless 3 fair 4 useful 5 very useful
[ ] [ ] [ 12 ] [ 11 ] [ 2 ]

6. Rate the usefulness of the lab exercises (laborationer)
1 very useless 2 useless 3 fair 4 useful 5 very useful
[ ] [ 3 ] [ 6 ] [ 11 ] [ 5 ]

7. Did you find the teaching in english:
1 a great disadvantage 2 a disadvantage 3 neutral 4 an advantage
[ ] [ 1 ] [ 13 ] [ 11 ]

8. Were you satisfied with support in labs (redovisning, advice, etc)?
1 very unsatisfied 2 satisfied 3 very satisfied
[ 18 ] [ 7 ] [ 0 ]

9. Overall, how satisfied with the course were you?
1 very unsatisfied 2 satisfied 3 very satisfied
[ 3 ] [ 18 ] [ 4 ]

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

Some typical comments:
"Make lab exercises relevant to the lectures."
"More labs"
"More lab assistants"/"better lab support" (many comments)
"More large examples"
"More revision exercises before the exam"
"Good course"
"Too little connection between labs and classwork"

Conclusions

Despite administrative difficulties, the course progressed smoothly, with a good final pass rate.
Student comments indicate a stong level of satisfaction with the course.
Clearly there is room for improvement with the laboratory exercises, both in choice of material, and in level of supervision.

Page editor: <karlm@nada.kth.se>
Last changed 03 June 1998
Technical support: <webmaster@nada.kth.se>