And In-Service Teachers' Experiences of an Object-Oriented Language
Total Page:16
File Type:pdf, Size:1020Kb
Learning to Program, Learning to Teach Programming: Pre- and In-service Teachers’ Experiences of an Object-oriented Language by IRENE GOVENDER LEARNING TO PROGRAM, LEARNING TO TEACH PROGRAMMING: PRE- AND IN-SERVICE TEACHERS’ EXPERIENCES OF AN OBJECT-ORIENTED LANGUAGE by IRENE GOVENDER submitted in accordance with the requirements for the degree of DOCTOR OF PHILOSPHY IN MATHEMATICS, SCIENCE AND TECHNOLOGY EDUCATION in the subject COMPUTER SCIENCE EDUCATION at the UNIVERSITY OF SOUTH AFRICA PROMOTER: PROF D J GRAYSON JOINT PROMOTER: PROF L M VENTER NOVEMBER 2006 To my late mum, Rosy and my dad, Sigamoney Kallian, who passed away in the final stages of this work ABSTRACT _______________________________________________________ The quest for a better way to learn and teach programming, in particular object-oriented programming, is a challenge that continues to intrigue computer science educators. Even after decades of research in learning to program, educators still search for the optimal instructional approach that will solve the ‘learning to program effectively’ problem among introductory programming students. The aim of this study was to gain insight into, and to suggest possible explanations for, the “qualitatively different ways” in which students experience learning to program using an object-oriented programming language, and to recommend teaching and learning strategies as a result of the outcomes of the research. In order to achieve these aims, a combination of phenomenographic research methods and elements of activity theory have been employed to gain an in depth understanding of pre- and in-service teachers’ learning experiences. The categories of description for the phenomenon, learning to program and the influence of the learning context have been analysed and described in detail. It is argued that understanding learning to program using Java, in order to teach programming involves more than understanding learning to program as it is normally taught in university programming courses. In addition to object-oriented concepts such as message passing, inheritance, polymorphism, delegation and overriding, it entails understanding how learning to program is reflected in the goals of instruction and in different instructional practices. Knowledge of learning to program must also be linked to knowledge of students' thinking, so that teachers have conceptions of typical trajectories of student learning, and can use this knowledge to recognize landmarks of understanding in individuals. The findings suggest relationships among students’ affective appraisals of the value of learning to program, their conceptions of learning to program, their approaches to learning it, their evaluations of their performance in tests and examinations and outcomes of their actions. The relationships emerged from student descriptions of their actions and the way in which different aspects of their learning and outcomes related to one another were qualitatively described and in some cases, quantified. In particular, the tensions between prior programming knowledge of a procedural language and current learning of an object- oriented language have emerged in the study. This has implications for teaching, as this study was set against the backdrop of the change in programming language in high schools, from a procedural to an object-oriented language. ACKNOWLEDGEMENTS _______________________________________________________ My sincerest thanks and appreciation go to: • My promoter Prof Diane Grayson for her patience and guidance in leading me through this project. Her encouragement, support and keen sense of criticism have enabled me to see this thesis through to its completion. She encouraged me to think more deeply and creatively. • Prof John Barrow for his valuable insights during the initial stages of the study and his willingness to help even when he was in the process of obtaining medical boarding. • My co-supervisor Prof Venter for his insightful, clear comments and just for agreeing to co-supervise my work during the last stages of the study amidst his busy schedule. • My late parents for placing a high premium on academic achievement and their encouragement throughout my life. • My husband Desmond (Des), and sons, Stanton and Joash for all their love, encouragement, moral support and understanding when I was not able to be with them. v CONTENTS _______________________________________________________ ABSTRACT iv ACKNOWLEDGEMENTS v GLOSSARY OF TERMINOLOGY xi 1 INTRODUCTION ..........................................................................................................1 1.1 BACKGROUND TO THE STUDY..................................................................................1 1.2 THE SIGNIFICANCE OF THE STUDY............................................................................3 1.3 RATIONALE OF THE STUDY.......................................................................................4 1.4 OUTLINE OF THE STUDY ...........................................................................................6 2 PROGRAMMING: A REVIEW AND DISCUSSION.................................................9 2.1 PROGRAMMING REVIEW.........................................................................................11 2.2 PROBLEM SOLVING AND PROGRAMMING...............................................................17 2.3 EXPERTS VERSUS NOVICES ....................................................................................20 2.4 KNOWLEDGE VERSUS STRATEGIES.........................................................................22 2.5 COMPREHENSION VERSUS GENERATION.................................................................23 2.6 MISCONCEPTIONS IN GENERAL PROGRAMMING......................................................25 2.7 PROGRAMMING: ISSUES .........................................................................................27 2.8 THE DIFFICULTY OF PROGRAMMING......................................................................28 2.9 PEDAGOGY OF PROGRAMMING...............................................................................30 2.9.1 Pedagogic Models.............................................................................................32 2.9.2 Bloom’s Taxonomy ..........................................................................................37 2.9.3 Problem solving for life long learning..............................................................38 2.10 THINKING IN PROGRAMMING .................................................................................39 2.11 MENTAL MODELS AND PROGRAM COMPREHENSION...............................................42 2.12 SUMMARY .................................................................................................................................. 43 vi 3 A FRAMEWORK FOR THE STUDY....................................................................................... 44 3.1 NATURALISTIC INQUIRY ........................................................................................44 3.2 AN OVERVIEW OF THE PHENOMENOGRAPHIC PERSPECTIVE....................................49 3.2.1 Categories of description ..................................................................................52 3.2.2 The Structure of Awareness..............................................................................53 3.3 COGNITIVIST PERSPECTIVES ON LEARNING ............................................................55 3.3.1 Constructivism..................................................................................................55 3.3.2 Cognitivist perspectives on problem solving....................................................57 3.4 A PHENOMENOGRAPHIC PERSPECTIVE ON LEARNING: DEEP VERSUS SURFACE APPROACH .............................................................................................................58 3.5 A LIMITATION OF PHENOMENOGRAPHY .................................................................61 3.6 ACTIVITY THEORY .................................................................................................62 3.6.1 Principles of Activity Theory ...........................................................................64 3.6.2 The Activity of Learning to Program ...............................................................65 3.6.3 Background to my application of Activity Theory...........................................67 3.6.4 Views of activity from My Practice..................................................................68 3.7 SUMMARY AND CONCLUSION.................................................................................69 4 RESEARCH DESIGN AND METHODOLOGY .......................................................71 4.1 RESEARCH DESIGN AND RATIONALE......................................................................73 4.1.1 Research Methods..............................................................................................73 4.1.2 Methodology......................................................................................................74 4.1.3 Model for Methodology.....................................................................................74 4.2 THE PILOT STUDY ..................................................................................................76 4.3 THE MAIN STUDY: HOW PRE-SERVICE AND IN-SERVICE STUDENTS LEARN TO PROGRAM IN A NEW LANGUAGE.............................................................................79 4.3.1 Selection criteria for research participants........................................................79