Microworlds, Games and Collaboration: three effective approaches to support novices in learning programming

Specially designed programming environments have been used for decades to support the novice programmers learning programming. In this paper, we present various forms of Educational Technology that have guided the design of educational programming environments the last two decades. The design and aspirations of three distinct programming environments developed at the University of Macedonia are presented. These include a Programming Microworld, an Educational Game and a Distributed Pair Programming system. The potential benefits of the different features of the three environments are presented along with results from their evaluation. Conclusions are drawn regarding the technologies incorporated in these different programming environments. Specifically, emphasis is given on technologies and features that seem to be important for motivating and engaging students in learning programming and should be taken into account by researchers designing new educational programming environments.

[1]  Benedict duBoulay,et al.  Some Difficulties of Learning to Program , 1986 .

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

[3]  WilliamsLaurie Lessons learned from seven years of pair programming at North Carolina State University , 2007 .

[4]  P. David Stotts,et al.  Virtual Teaming: Experiments and Experiences with Distributed Pair Programming , 2003, XP/Agile Universe.

[5]  Stelios Xinogalos,et al.  Designing Educational Games for Computer Programming: A Holistic Framework. , 2014 .

[6]  Jesús Gallardo,et al.  A groupware system to support collaborative programming: Design and experiences , 2013, J. Syst. Softw..

[7]  Maria Satratzemi,et al.  A Web-Based Authoring Tool for Scripting Distributed Pair Programming , 2014, 2014 IEEE 14th International Conference on Advanced Learning Technologies.

[8]  Brian Hanks,et al.  Empirical evaluation of distributed pair programming , 2008, Int. J. Hum. Comput. Stud..

[9]  Mary Jo Dondlinger,et al.  Educational Video Game Design: A Review of the Literature , 2007 .

[10]  M. Prensky Digital Natives, Digital Immigrants Part 1 , 2001 .

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

[12]  Laurie A. Williams,et al.  Improving the CS1 experience with pair programming , 2003, SIGCSE.

[13]  Stelios Xinogalos,et al.  An Evaluation of Knowledge Transfer from Microworld Programming to Conventional Programming , 2012 .

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

[15]  Till Schümmer,et al.  Understanding Tools and Practices for Distributed Pair Programming , 2009, J. Univers. Comput. Sci..

[16]  Stelios Xinogalos,et al.  An Integrated Programming Environment for Teaching the Object-Oriented Programming Paradigm , 2002, EurAsia-ICT.

[17]  Stelios Xinogalos,et al.  Evaluating objectKarel - an educational programming environment for object oriented programming , 2006 .

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

[19]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[20]  Stelios Xinogalos An Interactive Learning Environment for Teaching the Imperative and Object-Oriented Programming Techniques in Various Learning Contexts , 2010, WSKS.

[21]  Stelios Xinogalos,et al.  Evaluating the Effects of Scripted Distributed Pair Programming on Student Performance and Participation , 2016, IEEE Transactions on Education.

[22]  M. Green,et al.  Digital natives , 2012, BDJ.

[23]  Päivi Häkkinen,et al.  Specifying computer-supported collaboration scripts , 2007, Int. J. Comput. Support. Collab. Learn..

[24]  Alberto L. Morán,et al.  Empirical Evaluation of Collaborative Support for Distributed Pair Programming , 2004, CRIWG.

[25]  Laurie A. Williams Lessons learned from seven years of pair programming at North Carolina State University , 2007, SGCS.

[26]  Eric N. Wiebe,et al.  Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations , 2002 .

[27]  Emilia Mendes,et al.  A replicated experiment of pair-programming in a 2nd-year software development and design computer science course , 2006, ITICSE '06.

[28]  Stelios Xinogalos,et al.  Educational Games for Teaching Computer Programming , 2014 .

[29]  Clark N Quinn,et al.  Engaging Learning: Designing e-Learning Simulation Games , 2005 .

[30]  Charles E. McDowell,et al.  Experimenting with pair programming in the classroom , 2003, ITiCSE '03.

[31]  Rockford J. Ross,et al.  DYNALAB: a dynamic computer science laboratory infrastructure featuring program animation (abstract) , 1995, SIGCSE '95.

[32]  Stelios Xinogalos,et al.  Integrating Learning Analytics in an Educational MMORPG for Computer Programming , 2014, 2014 IEEE 14th International Conference on Advanced Learning Technologies.

[33]  Laurie A. Williams,et al.  In Support of Pair Programming in the Introductory Computer Science Course , 2002, Comput. Sci. Educ..

[34]  Laurie A. Williams,et al.  Sangam: a distributed pair programming plug-in for Eclipse , 2004, eclipse '04.

[35]  H. Paul Haiduk,et al.  Iconic programming proves effective for teaching the first year programming sequence , 1997, SIGCSE '97.

[36]  Stelios Xinogalos,et al.  Towards a new massive multiplayer online role playing game for introductory programming , 2013, BCI '13.

[37]  Alan Amory,et al.  Game object model version II: a theoretical framework for educational game development , 2007 .

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

[39]  K. Kiili Digital game-based learning: Towards an experiential gaming model , 2005, Internet High. Educ..

[40]  Thomas W. Malone,et al.  Toward a Theory of Intrinsically Motivating Instruction , 1981, Cogn. Sci..

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

[42]  Kristy Elizabeth Boyer,et al.  A development environment for distributed synchronous collaborative programming , 2008, ITiCSE.