Learning to program, learning to teach progamming: pre- and in-service teachers' experiences of an object-oriented programming language

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.

[1]  Robert McCartney,et al.  What novice programmers don't know , 2005, ICER '05.

[2]  F. Marton,et al.  DIFFERENCES IN UNDERSTANDING AND THE USE OF REFLECTIVE VARIATION IN READING , 1992 .

[3]  Qusay H. Mahmoud,et al.  Redesigning introductory computer programming with HTML, JavaScript, and Java , 2004 .

[4]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[5]  A. Strauss,et al.  The Discovery of Grounded Theory , 1967 .

[6]  M. Linn The Cognitive Consequences of Programming Instruction in Classrooms , 1985 .

[7]  Lev Vygotsky Mind in society , 1978 .

[8]  Jacquie Barker Beginning Java Objects , 2000, Apress.

[9]  Duane Buck,et al.  Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development , 2000, SIGCSE '00.

[10]  John Lewis,et al.  Myths about object-orientation and its pedagogy , 2000, SIGCSE '00.

[11]  D. J. Malcolme-Lawes,et al.  If… Then….Else , 1969 .

[12]  Orit Hazzan,et al.  How Students Attempt to Reduce Abstraction in the Learning of Mathematics and in the Learning of Computer Science , 2003, Comput. Sci. Educ..

[13]  F. Marton,et al.  Learning and Awareness , 1997 .

[14]  Edward F. Redish,et al.  Teaching Physics: Figuring out What Works , 1999 .

[15]  George W. Bright,et al.  Effects of Computer Programming on Cognitive Outcomes: A Meta-Analysis , 1991 .

[16]  F. Marton Phenomenography — Describing conceptions of the world around us , 1981 .

[17]  Michael Prosser,et al.  The “How” and “What” of learning physics , 1989 .

[18]  John R. Anderson,et al.  Learning Flow of Control: Recursive and Iterative Procedures , 1986, Hum. Comput. Interact..

[19]  S. Engel Thought and Language , 1964 .

[20]  J. Wertsch Vygotsky and the Social Formation of Mind , 1985 .

[21]  John Leaney,et al.  Introductory programming, criterion-referencing, and bloom , 2003, SIGCSE.

[22]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[23]  J. Kirk,et al.  Reliability and Validity in Qualitative Research , 1985 .

[24]  Elliot Soloway,et al.  Studying the Novice Programmer , 1988 .

[25]  Françoise Détienne,et al.  Expert Programming Knowledge: a Schema-Based Approach , 2007, ArXiv.

[26]  Michael R. Anderberg,et al.  Cluster Analysis for Applications , 1973 .

[27]  Janine Rogalski,et al.  Acquisition of Programming Knowledge and Skills , 1990 .

[28]  Haibin Zhu,et al.  Methodology first and language second: a way to teach object-oriented programming , 2003, OOPSLA '03.

[29]  Kenneth Tobin,et al.  The Practice of constructivism in science education , 1993 .

[30]  T.R.G. Green,et al.  Programming Languages as Information Structures , 1990 .

[31]  Anders Berglund,et al.  On context in phenomenographic research on understanding heat and temperate , 2001 .

[32]  Peter Brusilovsky,et al.  Mini-languages: a way to learn programming principles , 2004, Education and Information Technologies.

[33]  Duane Buck,et al.  JKarelRobot: a case study in supporting levels of cognitive development in the computer science curriculum , 2001, SIGCSE '01.

[34]  H. Hermans,et al.  Body, Mind and Culture: The Dialogical Nature of Mediated Action , 1995 .

[35]  Anders Berglund,et al.  Learning computer systems in a distributed course: Problematizing content and context. , 2002 .

[36]  David B. Palumbo,et al.  Programming Language/Problem-Solving Research: A Review of Relevant Issues , 1990 .

[37]  David B. Palumbo,et al.  The Effect of BASIC Programming Language Instruction on High School Students’ Problem Solving Ability and Computer Anxiety , 1991 .

[38]  Bruria Haberman,et al.  Action research as a tool for promoting teacher awareness of students' conceptual understanding , 2003 .

[39]  Patrick J. Casey Computer programming: a medium for teaching problem solving , 1997 .

[40]  Martyn Hammersley,et al.  Ethnography : Principles in Practice , 1983 .

[41]  Jens Kaasbøll,et al.  Exploring didactic models for programming , 2002 .

[42]  D. Rowntree Assessing Students: How Shall We Know Them? , 1977 .

[43]  R. Mattick,et al.  Problem-Solving Skills , 2005 .

[44]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[45]  I. Semenov An Empirical Psychological Study of Thought Processes in Creative Problem-Solving from the Perspective of the Theory of Activity , 1978 .

[46]  John,et al.  Reclaiming Qualitative Methods for Organizational Research: A Preface. , 1979 .

[47]  Sharan B. Merriam,et al.  Case Study Research in Education : A Qualitative Approach , 1991 .

[48]  Shirley Booth,et al.  On Phenomenography, Learning and Teaching , 1997 .

[49]  A. N. Leont’ev The Problem of Activity in Psychology , 1974 .

[50]  Y. Engeström,et al.  Developmental studies of work as a testbench of activity theory: The case of primary care medical practice , 1993 .

[51]  Susan Bergin,et al.  Programming: factors that influence success , 2005 .

[52]  F. Capra The Web of Life , 1996 .

[53]  Elliot Soloway,et al.  But My Program Runs! Discourse Rules for Novice Programmers , 1986 .

[54]  Walter Savitch Java: An Introduction to Computer Science and Programming, Third Edition , 1998 .

[55]  Brenda Cantwell Wilson,et al.  Contributing to success in an introductory computer science course: a study of twelve factors , 2001, SIGCSE '01.

[56]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[57]  Mark Woodman,et al.  Avoiding object misconceptions , 1997, SIGCSE '97.

[58]  Michael Prosser,et al.  Relating the process of undergraduate essay writing to the finished product , 1994 .

[59]  Barry J. Wadsworth Piaget's theory of cognitive development , 1971 .

[60]  P. Freebody Qualitative Research in Education , 2003 .

[61]  Alan H. Schoenfeld,et al.  Mathematical Problem Solving , 1985 .

[62]  A. Sfard On the dual nature of mathematical conceptions: Reflections on processes and objects as different sides of the same coin , 1991 .

[63]  Lars-Ove Dahlgren,et al.  Outcomes of learning , 1998 .

[64]  John R. Anderson,et al.  Learning to Program , 1983, IJCAI.

[65]  J. Biggs What do inventories of students' learning processes really measure? A theoretical review and clarification. , 1993, The British journal of educational psychology.

[66]  S. Stodolsky The Subject Matters: Classroom Activity in Math and Social Studies , 1988 .

[67]  Lynda Thomas,et al.  Scaffolding with object diagrams in first year programming classes: some unexpected results , 2004 .

[68]  Patricia Mellencamp,et al.  High anxiety : catastrophe, scandal, age, & comedy , 1992 .

[69]  Ference Marton,et al.  Describing and Improving Learning , 1988 .

[70]  F. Marton,et al.  The University of Learning. Beyond Quality and Competence in Higher Education. , 2013 .

[71]  Ference Marton,et al.  Phenomenography-a research approach to investigating different understandings of reality , 1986 .

[72]  Bina Ramamurthy,et al.  Wanted: CS1 students. no experience required , 2004 .

[73]  Hank Kahney,et al.  What do novice programmers know about recursion , 1983, CHI '83.

[74]  Michel Caillot,et al.  Teaching decision-making to solve textbook problems , 1990 .

[75]  A. N. Leont’ev,et al.  Activity, consciousness, and personality , 1978 .

[76]  A. Naess For its Own Sake , 1987 .

[77]  W. Mitchell,et al.  A paradigm shift to OOP has occurred…implementation to follow , 2001 .

[78]  Joseph Bergin,et al.  Understanding object-oriented programming , 2002, SIGP.

[79]  Simon P. Davies,et al.  Models and Theories of Programming Strategy , 1993, Int. J. Man Mach. Stud..

[80]  J. Piaget,et al.  The Psychology of the Child , 1969 .

[81]  P. Ramsden Learning to Teach in Higher Education , 1991 .

[82]  Richard E. Mayer,et al.  Learning to program and learning to think: what's the connection? , 1986, CACM.

[83]  M. Friedrich,et al.  Practice Makes Perfect , 2002 .

[84]  Elliot Soloway,et al.  A Goal/Plan Analysis of Buggy Pascal Programs , 1985, Hum. Comput. Interact..

[85]  Sonya C. Carr Assessing Learning Processes , 2002 .

[86]  Ralph T. Putnam,et al.  Learning to teach. , 1996 .

[87]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[88]  Ruven E. Brooks Towards a theory of the cognitive processes in computer programming , 1999, Int. J. Hum. Comput. Stud..

[89]  L. Shulman Those Who Understand: Knowledge Growth in Teaching , 1986 .

[90]  Michael Kölling,et al.  The Problem of Teaching Object-Oriented Programming, Part I: Languages , 1999, J. Object Oriented Program..

[91]  Markku Tukiainen,et al.  Programming Aptitude Testing as a Prediction of Learning to Program , 2002, PPIG.

[92]  N. Entwistle Styles of learning and teaching: An integrated outline of educational psychology for students , 1988 .

[93]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[94]  C. Bishop-Clark,et al.  Cognitive style, personality, and computer programming , 1995 .

[95]  John R. Anderson,et al.  Learning Flow of Control: Recursive and lterative Procedures , 1987 .

[96]  F. Marton,et al.  Two faces of variation , 1999 .

[97]  Tony Jenkins,et al.  The motivation of students of programming , 2001, ITiCSE '01.

[98]  Benjamin S. Bloom,et al.  Taxonomy of Educational Objectives: The Classification of Educational Goals. , 1957 .

[99]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[100]  Roy D. Pea,et al.  Language-Independent Conceptual “Bugs” in Novice Programming , 1986 .

[101]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[102]  D. Kember,et al.  approach to learning , 1996 .

[103]  Rex A. Thomas,et al.  Give Programming Instruction a Chance , 1996 .

[104]  Frank A Peplowski Line by line. , 2004, MGMA connexion.

[105]  Robert S. Rist Program Structure and Design , 1995, Cogn. Sci..

[106]  J. Lave Cognition in practice , 1988 .

[107]  Marcia C. Linn,et al.  Can Experts' Explanations Help Students Develop Program Design Skills? , 1992, Int. J. Man Mach. Stud..

[108]  Paul R. Calder,et al.  Patterns in Learning to Program - An Experiment? , 2004, ACE.

[109]  J. Wertsch The Concept of Activity in Soviet Psychology , 1981 .

[110]  Dai Hounsell Understanding Teaching and Teaching for Understanding , 1997 .

[111]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001 .

[112]  Susan Wiedenbeck,et al.  Novice comprehension of small programs written in the procedural and object-oriented styles , 1999, Int. J. Hum. Comput. Stud..

[113]  P. Hewson,et al.  The conditions of conceptual change in the classroom , 1989 .

[114]  H. Blumer,et al.  Symbolic Interactionism: Perspective and Method , 1988 .

[115]  Elliot Soloway,et al.  Novice mistakes: are the folk wisdoms correct? , 1986, CACM.

[116]  Atul Prakash,et al.  Programming in the large , 1986, IEEE Transactions on Software Engineering.

[117]  C. Moss,et al.  The Insider's Perspective , 1981 .

[118]  S. Fincher,et al.  What are we doing when we teach programming? , 1999, FIE'99 Frontiers in Education. 29th Annual Frontiers in Education Conference. Designing the Future of Science and Engineering Education. Conference Proceedings (IEEE Cat. No.99CH37011.

[119]  A. Gurwitsch,et al.  The field of consciousness , 1964 .

[120]  Jerome S. Bruner,et al.  Going Beyond the Information Given , 2006 .

[121]  Russell G. Warren Engaging Students in Active Learning , 1997 .

[122]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[123]  P. Ramsden Improving Learning: New Perspectives , 1988 .

[124]  Jens Kaasbøll,et al.  A survey of methods used to evaluate computer science teaching , 1998, ITiCSE '98.

[125]  Shirley Booth,et al.  Learning to program : a phenomenographic perspective , 1992 .

[126]  Sue Gordon,et al.  A Theoretical Approach to Understanding Learners of Statistics , 1995 .

[127]  Fadi P. Deek The Software Process: A Parallel Approach through Problem Solving and Program Development , 1999, Comput. Sci. Educ..

[128]  Christine S. Bruce,et al.  Masters Students' Experiences of Learning to Program: An Empirical Model , 2004 .

[129]  Hubert L. Dreyfus,et al.  Mind over Machine: The Power of Human Intuition and Expertise in the Era of the Computer , 1987, IEEE Expert.

[130]  Sue Gordon Understanding Students Learning Statistics: An Activity Theory Approach , 1998 .

[131]  Ron Good,et al.  How Do We Make Students Better Problem Solvers , 1987 .

[132]  Judi Repman,et al.  Effects of Pascal and FORTRAN Programming on the Problem-Solving Abilities of College Students , 1993 .