in Proc. 25th Southern African Computer Lecturers’ Association Conference, Katberg, Eastern Cape, July 1995 pp 175-180

At the Wits Computer Science Department, we have had a second-year topic called Advanced Programming for many years. Although the original language used for this was Pascal, for some time we have been using Modula-2.

While Modula-2 is a very good language for the basics of advanced data structures and algorithms, and for introducing software engineering, it lacks crucial features to support abstract data types and object-oriented programming. To address these deficiencies, we have moved to C++. We recognized that the additional material would make extra demands of students, so the topic has been lengthened by almost 50%, from 7 to 10 weeks.

The approach taken in the course is a relatively radical one. Instead of starting with the parts of C++ that most resemble Pascal, the course starts immediately with classes and objects, and introduces constructs such as loops in the context of extending existing classes.

Initial experience is that students whose first language is Pascal are confused by object-oriented programming, and introducing classes early has the benefit that they have the entire course to grasp the concept. This has the negative effect that they take longer to learn simple syntax (loops etc.).

This paper reports on the strategy taken in the course, as well as student responses to it. It also reports on the underlying educational methodology, and how this has been accepted by the students.

(PDF 131K)