Object-Oriented Programming at the Johannes Kepler University Linz

Christoph Steindl, Hanspeter Mössenböck
Johannes Kepler University Linz
Institute for Practical Computer Science
Altenbergerstraße 69, A-4040 Linz
{steindl, mössenböck}@ssw.uni-linz.ac.at


At the university of Linz, we teach object-oriented programming to students in the 3rd semester. They have already attended a course on introductory programming in an imperative language (Oberon-2) and a programming practical in the same language. The purpose of our OOP course is to show them how to use OOP for structuring their programs for making them extensible.

We believe that OOP is "programming in the large" and should be preceded by courses on "programming in the small". OOP is a "packaging" technique that helps one to deliver the services of a program in small packages (i.e.classes) with a well-defined interface. Before one can build a package, however, one has know how to build its contents. This is a non-trivial task, and it doesn't have much to do with OOP.

Our OOP course has a special emphasis on design patterns. Patterns are an ideal vehicle for teaching. Starting from a convincing example, we can extract the reusable concept behind it. Students will remember the example and therefore also the concept behind it. By collecting several such examples the students acquire expert experience, which would otherwise take years to learn.

Our course is oriented on concepts and not on a particular programming language. All the concepts such as data abstraction, inheritance, dynamic binding, UML modeling, frameworks, design patterns can be taught in a general form (mostly with a graphical notation). Currently we us Oberon-2 as a programming language because the students already were exposed to it in the previous semesters. In the future we plan to switch to Java because the introductory programming courses will also use Java.

Paper at the ECOOP'99 Workshop on Introducing OO Design and Programming - with Special Emphasis on Concrete Examples, Lisbon, Portugal, June 14, 1999.
Published in Lecture Notes in Computer Science ?? (pp. ??-??), ISBN ??, Springer-Verlag, 1999.
The copyright for this publication is held by Springer.
You can browse the position paper in html or click here to browse the slides of the presentation online.