An Evaluation of Knowledge Transfer from Microworld Programming to Conventional Programming

Programming microworlds are being used for introducing students to programming for many years. Although many professors and school teachers report positive results from using programming microwords, these results are usually based on anecdotal evidence rather than rigorous empirical evaluation. A question that has not been answered yet with certainty is whether the knowledge acquired in the context of a programming microworld is transferred to a conventional programming language. In an attempt to investigate this issue we used a specially designed middle-term exam and a questionnaire at the end of an undergraduate Object-Oriented Programming (OOP) course. The course uses the programming microworld objectKarel for a short introduction to the most fundamental OOP concepts, and then the environment BlueJ and Java for presenting the real thing. The analysis of students' replies in the questionnaire shows that the introduction to OOP with the microworld helps the vast majority of students to comprehend fundamental concepts of OOP and what is more important is that this knowledge is transferred to Java afterwards. These results are supported by the comparative analysis of students' performance in written exams that took place in the context of two distinct offerings of the course, prior and after the use of the microworld in it.

[1]  Said Hadjerrouit,et al.  A constructivist approach to object-oriented design and programming , 1999, ITiCSE '99.

[2]  Richard E. Pattis,et al.  Karel the Robot: A Gentle Introduction to the Art of Programming , 1994 .

[3]  Raghvinder S. Sangwan,et al.  A system for program visualization in the classroom , 1998, SIGCSE '98.

[4]  Martin Ruckert,et al.  Educational C , 1993, SIGCSE '93.

[5]  Adele Goldberg,et al.  The LearningWorks development and delivery frameworks , 1997, CACM.

[6]  Stephen N. Freund,et al.  Thetis: an ANSI C programming environment designed for introductory use , 1996, SIGCSE '96.

[7]  Mark Woodman,et al.  Exploiting Smalltalk modules in a customizable programming environment , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

[9]  Rick Decker,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994, SIGCSE '94.

[10]  Symeon Retalis,et al.  Using Educational Tools for Teaching Object Oriented Design and Programming , 2007 .

[11]  Ann E. Fleury Encapsualtion and reuse as viewed by java students , 2001, SIGCSE '01.

[12]  Michael Thuné,et al.  Novice Java programmers' conceptions of "object" and "class", and variation theory , 2005, ITiCSE '05.

[13]  Said Hadjerrouit,et al.  A constructivist framework for integrating the Java paradigm into the undergraduate curriculum , 1998, ITiCSE '98.

[14]  Philip Miller,et al.  Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University , 1994, Interact. Learn. Environ..

[15]  James Taylor,et al.  Youngster: a simplified introduction to computing: removing the details so that a child may program , 1995, SIGCSE '95.

[16]  Mordechai Ben-Ari,et al.  On understanding the statics and dynamics of object-oriented programs , 2005, SIGCSE '05.

[17]  Michael R. Wick On using C++ and object-orientation in CS1: the message is still more important than the medium , 1995, SIGCSE.

[18]  Carl Alphonce,et al.  Object orientation in CS1-CS2 by design , 2002, ITiCSE '02.

[19]  Stelios Xinogalos Studying Students' Conceptual Grasp of OOP Concepts in Two Interactive Programming Environments , 2008, WSKS.

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

[21]  Byron Weber Becker Teaching CS1 with karel the robot in Java , 2001, SIGCSE '01.

[22]  Stelios Xinogalos,et al.  An introduction to object-oriented programming with a didactic microworld: objectKarel , 2006, Comput. Educ..

[23]  Tom Schorsch,et al.  CAP: an automated self-assessment tool to check Pascal programs for syntax, logic and style errors , 1995 .

[24]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001, ITiCSE '01.

[25]  Kate Sanders,et al.  Checklists for grading object-oriented CS1 programs: concepts and misconceptions , 2007, ITiCSE.

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

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

[28]  Kim B. Bruce,et al.  A library to support a graphics-based object-first approach to CS 1 , 2001, SIGCSE '01.

[29]  Brad A. Myers,et al.  Usability Issues in the Design of Novice Programming Systems , 1996 .

[30]  Michael Kölling,et al.  Objects First with Java - A Practical Introduction Using BlueJ (5th Edition) , 2002 .

[31]  Mordechai Ben-Ari,et al.  A long-term investigation of the comprehension of OOP concepts by novices , 2005, Comput. Sci. Educ..

[32]  Robert McCartney,et al.  Student understanding of object-oriented programming as expressed in concept maps , 2008, SIGCSE '08.

[33]  Dean Sanders,et al.  Jeroo: a tool for introducing object-oriented programming , 2003, SIGCSE.

[34]  DeckerRick,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994 .

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

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

[37]  T. Dean Hendrix,et al.  An extensible framework for providing dynamic data structure visualizations in a lightweight IDE , 2004, SIGCSE.

[38]  Michael E. Caspersen,et al.  Frameworks in CS1: a different way of introducing event-driven programming , 2002, ITiCSE '02.

[39]  James C. Spohrer,et al.  KidSim: programming agents without a programming language , 1994, CACM.

[40]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[41]  Stelios Xinogalos,et al.  A Long-Term Evaluation and Reformation of an Object Oriented Design and Programming Course , 2009, 2009 Ninth IEEE International Conference on Advanced Learning Technologies.

[42]  Ann E. Fleury Programming in Java: student-constructed rules , 2000, SIGCSE '00.

[43]  Mark Temte,et al.  Let's begin introducing the object-oriented paradigm , 1991, SIGCSE '91.

[44]  Stelios Xinogalos Object-Oriented Programming - What do Students Think of Objects and Classes? , 2011 .

[45]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[46]  Ronan G. Reilly,et al.  Programming: factors that influence success , 2005, SIGCSE '05.

[47]  Lauri Malmi,et al.  A survey of literature on the teaching of introductory programming , 2007, ITiCSE-WGR '07.

[48]  Jim Roberts,et al.  Karel J Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java , 2013 .

[49]  Robert Cartwright,et al.  DrJava: a lightweight pedagogic environment for Java , 2002, SIGCSE '02.