Teaching and learning introductory programming : a model-based approach

ion ability. Almost all of our exercises started from scratch; the students should program everything. The students did not get used to use pre-programmed abstractions (modules). Closed/open exercises. Many exercises required too much work before the students got to the point where they could test their solutions. Furthermore, the exercises did not motivate the students do continue working on them. Role model. We expected that the students could write a program after they had seen one or two. The students need to read a lot of well-designed programs before they write their own. Motivation. Many exercises were uninteresting. When exercises start from scratch, the ambition level is limited and consequently the problems that students can solve do not show the power of computer applications. The model-based approach described and analysed in this dissertation addresses all of the above problems and proposes solutions for them. Naturally, the concrete instructional design depends on many factors, e.g. the factors described by Hiim and Hippe (2006) – see section 4.1. Young liberal arts students who have to learn Teaching and Learning Introductory Programming – A Model-Based Approach 41 about programming to have an understanding of the problems that one can solve using programming or experienced imperative programmers who should learn to program object-oriented have different learning premises and different learning objectives. Ten students in a class is different than 300 in a lecture hall and consequently requires a different didactical design. 2.5 Project COOL The Comprehensive Object-Oriented Learning project (Berge et al., 2003; COOL, n.d.; Nygaard, 2002) started in October 2002 and concluded at the end of 2005. Its main partners were InterMedia and the Department of Informatics, both at the University of Oslo; the Norwegian Computing Center; and Simula Research Laboratory. I was associated with the project and have conducted research with several of its participants (―Programming in Context: a Model-First Approach to CS1‖; ―Examining social interaction patterns for online apprenticeship learning – Object-oriented programming as the knowledge domain‖; Bennedsen, 2006a; Fjuk, Holmboe, Jahreie, & Bennedsen, 2006; Fjuk, Berge, Bennedsen, & Caspersen 2004). The project was initiated by Kristen Nygaard. With its foundation in the Scandinavian approach to object-orientation (Knudsen & Madsen, 1988), the project has been concerned with exploring challenges met in learning this paradigm and its corresponding concepts. Some of the project‘s findings were published in the anthology ―Comprehensive Object-Oriented Learning: The Learner‘s Perspective‖ (Fjuk, Karahasanovic, & Kaasbøll, 2006). Project COOL has explored the challenges of learning object-orientation by studying relationships between tools and programming environments, types of learners, pedagogical approaches and learning strategies, learning resources and ICTs. The research has been carried out by conducting a number of case studies, design experiments and controlled experiments (Fjuk, Karahasanovic, & Kaasbøll, 2006). My contributions to the project are concerned with teaching and learning introductory object-oriented programming, with a particular interest in the modelbased approach. 12 Kristen Nygaard passed away just a few months before the start of the project. A memorial site is located at http://www.ifi. uio.no/in_memoriam_kristen/