Comparing mental models of novice programmers when using visual and command line environments

Improving the novice's experience with learning to program has been an important research topic for some time. Appropriate programming environments for novices have been one research area. For example, many departments have adopted visual environments to teach programming as opposed to a command line environment at the beginning stages of a CS curriculum. The features in standard command line environments are not as assistive to programmers as visual environments. Novices must learn both language syntax and semantics while navigating the file system and compilation tools. On the other hand, visual environments can enable novices to conduct the same behavior with one or more button clicks. However, the consistency and affordance of certain features in visual environments could cause novices to develop a false perception of programming. In addition, such features may impose the inability for novices to immediately adapt to less assistive environments. In contrast, command line environments may enable novices to develop better mental models for programming because of their limited features, which could also allow them to transition to other environments much easier. A protocol analysis was conducted on seven students from a CS1 course who learned Python using either IDLE or VIM. The objective was to record and analyze each student's behavior while they use the opposing environment to write a program. This study showed that students who originally used IDLE were not as equipped for transitioning to VIM as their counterparts who transitioned to IDLE.

[1]  Andrew T. Duchowski,et al.  Eye Tracking Methodology: Theory and Practice , 2003, Springer London.

[2]  John Mason,et al.  Why the high attrition rate for computer science students: some thoughts and observations , 2005, SGCS.

[3]  Elizabeth Chang,et al.  Checklist Inspections and Modifications: Applying Bloom's Taxonomy to Categorise Developer Comprehension , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[4]  B. Adelson When Novices Surpass Experts: The Difficulty of a Task May Increase With Expertise , 1984 .

[5]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

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

[7]  Austin Henderson,et al.  Interaction design: beyond human-computer interaction , 2002, UBIQ.

[8]  Edward Cutrell,et al.  An eye tracking study of the effect of target rank on web search , 2007, CHI.

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

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

[11]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[12]  A. Marie Vans,et al.  Program understanding behavior during debugging of large scale software , 1997, ESP '97.

[13]  Stephen Cooper,et al.  Evaluating the effectiveness of a new instructional approach , 2004, SIGCSE.

[14]  Brian C. O'Connor,et al.  Do LEGO® Mindstorms® motivate students in CS1? , 2009, SIGCSE '09.

[15]  Dianne Hagan,et al.  Teaching Java with the BlueJ Environment , 2000 .

[16]  Edward Cutrell An eye-tracking study of information usage in Web search : Variations in target position and contextual snippet length , 2007 .

[17]  John A. N. Lee,et al.  Implications on the learning of programming through the implementation of subsets in program development environments , 2003 .

[18]  Yvonne Rogers,et al.  Interaction Design: Beyond Human-Computer Interaction , 2002 .

[19]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[20]  Susan Wiedenbeck,et al.  A comparison of the comprehension of object-oriented and procedural programs by novice programmers , 1999, Interact. Comput..

[21]  Jean Scholtz,et al.  Characteristics of the Mental Representations of Novice and Expert Programmers: An Empirical Study , 1993, Int. J. Man Mach. Stud..

[22]  Zhixiong Chen,et al.  Experiences with Eclipse IDE in programming courses , 2005 .

[23]  Martha E. Crosby,et al.  How do we read algorithms? A case study , 1990, Computer.

[24]  Gerald M. Weinberg Understanding the Professional Programmer , 1982 .