Programming osmosis: Knowledge transfer from imperative to visual programming environments

Computer science educators continue to develop new ways to support the teaching of introductory programming. Among some of the most popular new tools are Visual Programming Languages (VPL), which provide graphical interfaces for code construction and program display. In this paper we explore the use of Alice, a sophisticated VPL for building 3D animated scenes. When used in conjunction with a traditional programming language, we found minimal transfer from the imperative context to the visual environment. We also found that students struggled to make the connection between work in Alice, and “real programming”. We suggest caution when using curricular materials which, while technologically appealing, may not be pedagogically appropriate.

[1]  Leesa Murray,et al.  Teaching programming to beginners - choosing the language is just the first step , 2000, ACSE '00.

[2]  Robert Sedgewick,et al.  SYSTEM FOR ALGORITHM ANIMATION. , 1984 .

[3]  Mark Guzdial,et al.  A multi-national, multi-institutional study of assessment of programming skills of first-year CS students , 2001, ITiCSE-WGR '01.

[4]  Michael Goldweber,et al.  A comparison of different approaches to the introductory programming course , 2006 .

[5]  Kate Ehrlich,et al.  NOVICE-EXPERT DIFFERENCES IN SOFTWARE DESIGN. , 1985 .

[6]  R. Mark Meyer,et al.  SIVIL: a true visual programming language for students , 2001 .

[7]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[8]  Steven M. Hadfield,et al.  RAPTOR: a visual programming environment for teaching algorithmic problem solving , 2005, SIGCSE '05.

[9]  L. Gugerty,et al.  Debugging by skilled and novice programmers , 1986, CHI '86.

[10]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[11]  Marleen Sint,et al.  Visual programming with Java; an alternative approach to introductory programming , 1997, ITiCSE '97.

[12]  Alistair D. N. Edwards Visual programming languages: the next generation , 1988, SIGP.

[13]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[14]  Jean-Michel Hoc,et al.  Psychology of programming , 1990 .

[15]  Joel C. Adams Alice, middle schoolers & the imaginary worlds camps , 2007, SIGCSE '07.

[16]  Simon P. Davies,et al.  The Nature and Development of Programming Plans , 1990, Int. J. Man Mach. Stud..

[17]  T. Ichikawa,et al.  Visual programming - toward realization of user-friendly programming environments , 1987, FJCC.

[18]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[19]  Jr. E. Giangrande CS1 programming language options , 2007 .

[20]  Susan S. Brilliant,et al.  The first programming paradigm and language dilemma , 1996, SIGCSE '96.

[21]  Cynthia S. Hood,et al.  Teaching programming and language concepts using LEGOs® , 2005, ITiCSE '05.

[22]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[23]  Elizabeth Sklar,et al.  Using educational robotics to engage inner-city students with technology , 2004 .

[24]  Randy F. Pausch,et al.  Making the connection: programming with animated small world , 2000, ITiCSE '00.

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

[26]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[27]  Raymond Lister Teaching Java First: Experiments with a Pigs-Early Pedagogy , 2004, ACE.

[28]  Leanne M. Hirshfield,et al.  Through the looking glass: teaching CS0 with Alice , 2007, SIGCSE.

[29]  Jean Scholtz,et al.  Mental representations of programs by novices and experts , 1993, INTERCHI.

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

[31]  Kris Howell,et al.  First computer languages , 2003 .

[32]  Ben Shneiderman,et al.  Syntactic/semantic interactions in programmer behavior: A model and experimental results , 1979, International Journal of Computer & Information Sciences.

[33]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[34]  Jim McKeown,et al.  The use of a multimedia lesson to increase novice programmers' understanding of programming array concepts , 2004 .

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

[36]  Ruven E. Brooks,et al.  Using a behavioral theory of program comprehension in software engineering , 1978, ICSE '78.

[37]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .