Teaching OOP
A constructivism based approach to Teach Object -Oriented programming
Sequence Diagram to describe part of Goodys system begaviour
The Goodys example
The origin
The earliest ideas for the described approach stemmed from the time I was writing the book "Programming Languages II: Object-Oriented Programming" during 1997 for the Hellenic Open University.
The basic paper
Part of this work is described in the paper: A Constructivism-Based Approach to Teach Object-Oriented Programming by K.Thramboulidis, Journal of Informatics Education and Research, 2003.
The work has then evolved into a complete course outline for the introduction of the Object-Oriented Programming Paradigm.
Related publications
K. Thramboulidis, “Teaching Advanced Computing Concepts in Java: A Constructivism-based Aproach”, Journal of Informatics Education and Research, Vol 7, No 3, Fall 2005.
K. Thramboulidis, “A Sequence ofAssignments to Teach Object-Oriented Programming: a Constructivism Design-FirstApproach”, INFORMATICS IN EDUCATION, 2003, Vol. 2, No. 1, 103-122
A brief description
The whole approach is motivated by the theoretical viewpoint of constructivism that stresses the importance of the continuity of knowledge growth, based on existing knowledge. Experience from every day life is used to anchor new knowledge in constructing software systems.
The Goodys example, a real-world system was adopted to create the conceptual framework of the OO paradigm. We utilize informal use-cases, class diagrams, and object interaction diagrams to facilitate students in exploiting their real-world experience and building on it the conceptual framework of the object-oriented paradigm. The approach is characterized as software-engineering-centered and more precisely as a design-first approach.
Java was adopted to introduce the constructs necessary for the realization of this framework. A Lego construction approach was adopted to guide students to first focus on the basics of integrating existing components and later on building new ones.
A set of assignments based on the Reverse Polish Notation Calculator was developed to guide students to implement their own GUI calculator following a well-defined step-by-step development process.