Computer Science Education. 0899-3408/03/1304-331 ... This paper provides an introduction to some of the activities of project. COOL that are concerned with ...
Computer Science Education 2003, Vol. 13, No. 4, pp. 331–335
0899-3408/03/1304-331$16.00 # Swets & Zeitlinger
Comprehensive Object-Oriented Learning – An Introduction Ola Berge1, Annita Fjuk1, Arne-Kristian Groven2, Ha˚vard Hegna2, and Jens Kaasboll3 1
InterMedia, University of Oslo, Oslo, Norway, 2Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway, and 3Department of Informatics, University of Oslo, Oslo, Norway
BACKGROUND The COOL (Comprehensive Object-Oriented Learning) project is a 3-years interdisciplinary research project that started in October 2002 and will end in 2005. The project was initiated by Kristen Nygaard, who was internationally known as one of the creators of the first object-oriented programming language, Simula (Birtwistle, Dahl, Myhrhaug, & Nygaard, 1973). When Simula was invented in the 1960’s, a new paradigm was introduced: a paradigm that includes techniques and methodologies for understanding the interwoven relationship between computer-based artefacts and the communities of practice in which the artefacts are aimed at being used. This is often referred to as the Scandinavian tradition on object-orientation and systems development (cf. Ehn, 1993; Floyd, Mehl, Reisin, Schmidt, & Wolf, 1989). This paper provides an introduction to some of the activities of project COOL that are concerned with the problem area of learning and teaching object-oriented concepts. With basis in a Scandinavian tradition, COOL aims at incorporating the specific object-oriented characteristics and philosophy into innovative learning environments where ICTs have mediating positions. This aim is approached through the following activities: 1. Exploring the complex area of learning (and teaching) object-oriented concepts. 2. Designing learning environments. Address correspondence to: Annita Fjuk, Intermedia, University of Oslo, P.O. Box 1161, Blindern, 0318 Oslo, Norway.
332
OLA BERGE ET AL.
From a tradition that gives priority to human behavior and experiences, it clearly follows that it is necessary first to explore and understand the nature and conditions of learning object-oriented concepts before planning new teaching and learning environments and making artefacts for them. This is particularly crucial in situations where one is about to investigate and define new learning environments in which collaboration and ICTs have significant status in the learning process. We will in the following present how these two activities are approached in the COOL project.
EXPLORING THE COMPLEX AREA OF LEARNING OBJECT-ORIENTED CONCEPTS The activity of learning object-oriented concepts has proven to be complicated activities (cf. e.g., K€ olling, 1999a, 1999b). We believe that it is not objectorientation in principle that cause the problems, but the constellation of artefacts available to learn it as well as the social environment of the learner. In this context, artefacts are generally interpreted as ranging from intellectual ones like learning material, instructional techniques and pedagogical models to more technical ones like ICT-based tools and visualization tools designed for supporting an understanding of object-oriented concepts (cf. next section). In agreement with an object-oriented philosophy, we strongly believe that the relationships between these aspects are rather interwoven, implying that it is complicated, sometimes even impossible, to consider what aspects that are most critical with respect to the learner’s understanding of object-oriented concepts. Furthermore, universities experience high drop out and failure rates in introductory programming, and some research has therefore been conducted in order to improve these figures. Some approaches to organizing learners of programming have shown substantial, while not overwhelming improvements. The usefulness of older students instructing novices in labs and classrooms has been well established (Chase & Okie, 2000), and code reviewing has shown limited, but promising results (Zeller, 2000). Pair programming has been led to decreases in drop-outs (McDowell, Werner, Bullock, & Fernald, 2002), and so has also specific follow up of repeat students (Sheard & Hagan, 1999). In COOL, we explore this complexity by studying current educational practices as well as by designing experiments. Concerning the former, we
COMPREHENSIVE OBJECT-ORIENTED LEARNING
333
emphasize the individual learner’s thoughts and will attempt to achieve insights into the processes of discussing and solving a particular problem or a task. Concerning the latter, COOL focuses on experimenting with tools and pedagogical approaches particularly connected to two ways of starting with objects and classes; visualization of object behavior and modeling of real world objects, which corresponds to the Scandinavian school of objectorientation (cf. Madsen, Møller-Pedersen, & Nygaard, 1993). This is the focus of the next section.
DESIGNING LEARNING ENVIRONMENTS One of the main messages of Nygaard’s educational practice was to start by ‘‘sufficiently complex examples’’, necessitating the introduction of all the basic object-oriented concepts from the very beginning. This fundamental argument challenges at least three aspects concerning design of learning environments. First, the argument concerns objects first approaches. Objects first approaches have an early focus on objects and object-oriented concepts, contrary to the more traditional approaches of learning imperatives and procedures first and then the object-oriented concepts. Objects are, within most objects first approaches, introduced for the purpose of teaching object-oriented programming, not for learning object-oriented thinking as a modeling tool (Borge & Kaasbøll, 2003; Groven, Hegna, & Smørdal, 2003). COOL aims at experimenting with models first approaches in a somewhat wider sense than just programming. Second, the argument concerns multiperspective reflection, that is, to consider a problem area from different perspectives. We find collaboratively oriented learning perspectives particularly well suited in this respect. These perspectives place emphasis on joint construction of problem solutions by mutual refinement, exploring different opposed alternatives in argumentation as well as the fact that students are using each other as a resource in knowledge construction. Third, and developed from the two former, it concerns how to model collaboratively by the use of visualization tools. We find BlueJ and KarelJ as particularly interesting tools in this respect: BlueJ is in principle a Java Integrated Development Environment (K€olling, 1999a, 1999b), designed for an objects first approach to learning. BlueJ is also a tool for visualizing object-oriented principles and illustrating central objectoriented concepts such as classes, objects, methods, inheritance, encapsulation etc. in hands-on experiments. An important aspect of BlueJ is that it
334
OLA BERGE ET AL.
simplifies the learner’s interface to the computer system, thus hiding irrelevant computer and operating system complexities from the learning environment. BlueJ will be used in COOL research directed at finding and experimenting with appropriate example models from various domains and to establish pedagogical interactive simulation models using active objects as basic components in a models first supplement to an objects first approach. In the programming environment KarelJ (Bergin, Stehlik, Roberts, & Pattis, 2003), objects of the robot class become visible on the screen upon generation, thus providing a concrete experience of objects for the learner. Also the methods produce visible traces when triggered. The environment invites playful interaction and possibly competition between students. One sequence of instruction that will be used in COOL-experiments is object generation, pointers, dot notation and method calls, subclasses and method definition. In line with the ‘‘objects first’’ approaches, possible re-designs include using robots to model the world and making active objects with their own sequences of instruction (threads in Java). Thus, an important issue in COOL is to study how these aspects and tools should be incorporated into design of learning environments. A core concern is to reuse – and if necessary re-design – existing solutions, and to pedagogically organize them with respect to the objective of the learning activity and the context in which the artefacts are aimed at being used.
CONCLUDING REMARKS This paper provides with some basic concerns of project COOL that are manifested in the area of learning and teaching object-oriented concepts. At the time this paper was written, several activities on studying current educational practices as well as experimenting with BlueJ and KarelJ are conducted. These activities will hopefully provide insights into how new blended learning environments – resting on the object-oriented paradigm – should be designed.
ACKNOWLEDGEMENTS COOL is funded by the Research Council of Norway. This paper is based on the project plan authored by Ola Berge, Annita Fjuk (ed), Arne-Kristian Groven, Ha˚ vard Hegna, Jens Kaasboll, Ole Smørdal and Bjarte Østvold. For more information, see www.intermedia.uio.noncool.
COMPREHENSIVE OBJECT-ORIENTED LEARNING
335
REFERENCES Bergin, J., Stehlik, M., Roberts, J., & Pattis, R. (2003). Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java. [On-line] Available: http://www.csis.pace.edu/bergin/KarelJava2ed/KarelþþJavaEdition.html Birtwistle, G., Dahl, O-J., Myhrhaug, B., & Nygaard, K. (1973). Simula begin. Studentlitteratur, Lund, Sweden. Borge, R.E., & Kaasbøll, J. (2003). What is ‘‘OO First’’? Position paper, Seventh Workshop on Pedagogies and Tools for Learning Object-Oriented Concepts at European Conference on Object-Oriented Programming 2003. Chase, J.D., & Okie, E.G. (2000). Combining cooperative learning and peer instruction in introductory computer science. ACM SIGCSE 32, 372–376. Ehn, P. (1993). Scandinavian design: On participation and skill. In Douglas Schuler & Aki Namioka (Eds.), Participatory design: Principles and practices (pp. 41–77). Hillsdale, NJ: L. Erlbaum Associates. Floyd, C., Mehl, W., Reisin, F., Schmidt, G., & Wolf, G. (1989). Out of Scandinavia: Alternative approaches to software design and system development. In HumanComputer Interaction, Vol. 4, pp. 253–350. Groven, A., Hegna, H., & Smørdal, O. (2003). OO learning, a modeling approach. Position paper, Seventh Workshop on Pedagogies and Tools for Learning Object-Oriented Concepts at European Conference on Object-Oriented Programming 2003. K€olling, M. (1999a). The problem of teaching object-oriented programming, part 1: Languages. Journal of Object-Oriented Programming, 11, 8–15. K€olling, M. (1999b). The problem of teaching object-oriented programming, part 2: Environments. Journal of Object-Oriented Programming, 11, 6–12. Madsen, O.L., Møller-Pedersen, B., & Nygaard, K. (1993). Object oriented programming in the BETA programming language. MA: Addison-Wesley. McDowell, C., Werner, L., Bullock, H., & Fernald, J. (2002). The effects of pair-programming on performance in an introductory programming course. SIGCSE Bulletin 34, 38–42. Sheard, J., & Hagan, D.L. (1999). A special learning environment for repeat students. In: Proceedings of ITiCSE’99, Cracow. Zeller, A. (2000). Making students read and review code. SIGCSE Bulletin 32, 89–92.