Recognizing Programming Misconceptions - An analysis of the data collected from the UUhistle program simulation tool

Lic.sc. (Tech) Juha Sorva Learning to program has many challenges. If a student encounters problems of understanding how the programming language works or how a program is executed, it might be hard to fix these misconceptions later. These misconceptions may also make it hard to learn more complicated concepts if the student does not understand the basics correctly. In program simulation exercises a student takes on the role of the computer as executor of a program using a graphical user interface. In these exercises, students should be able to understand the execution model to simulate the execution correctly and therefore simulation mistakes are interesting because they can reveal what kind of misconceptions students may have. The main research question of this master's thesis is to analyze log files collected by UUhistle program simulation tool used in the basic programming course and try to find out what the most common simulation errors the students have made are and try to figure out the causes of the errors. Is the error a simple mistake, is it caused by the user interface, is the error related to the simulation exercises or can we find a similar programming misconception in the literature? We selected common 26 errors which were likely caused by something else than a simple mistake. The errors are related to the basics of the execution, conditions, loops, functions and object-oriented programming. Many of these errors are similar to those misconceptions reported in the literature earlier. Therefore we can make an assumption that visual program simulation makes it possible to recognize possible misconceptions and be used to fix the misconceptions by giving feedback to students. We also present a few ideas how to improve UUhistle based on the results we got. Some of the errors are clearly related to the user interface and by making some changes to the interface we can reduce the number of the errors caused by the tool itself. We also noticed that the students did not read much the feedback UUhistle gave to them and we should also improve the way UUhistle shows the feedback.

[1]  J. C. Spohrer,et al.  Alternatives to construct-based programming misconceptions , 1986, CHI '86.

[2]  Steve Kollmansberger Helping students build a mental model of computation , 2010, ITiCSE '10.

[3]  Robert McCartney,et al.  Proceedings of the 19th Koli Calling International Conference on Computing Education Research , 2011 .

[4]  Juha Sorva,et al.  Context-Sensitive Guidance in the UUhistle Program Visualization System , 2011 .

[5]  Erkki Sutinen,et al.  Visualizing programs with Jeliot 3 , 2004, AVI.

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

[7]  Derek H. Sleeman,et al.  A Summary of Misconceptions of High School Basic Programmers , 1984 .

[8]  Richard E. Mayer,et al.  A diagnosis of beginning programmers' misconceptions of BASIC programming statements , 1983, Commun. ACM.

[9]  Rebecca T. Mercuri,et al.  Identifying and correcting Java programming errors for introductory computer science students , 2003, SIGCSE.

[10]  Elliot Soloway,et al.  Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers , 1985, Hum. Comput. Interact..

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

[12]  Tapio Salakoski,et al.  VILLE: a language-independent program visualization tool , 2007 .

[13]  Ann E. Fleury Parameter passing: the rules the students construct , 1991, SIGCSE '91.

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

[15]  Mustafa Murat Inceoglu,et al.  A Web Based Tool for Novice Programmers: Interaction in Use , 2008, ICCSA.

[16]  B. A. Sheil,et al.  The Psychological Study of Programming , 1981, CSUR.

[17]  James Gifford,et al.  Parameter Passing: The Conceptions Novices Construct. , 1997 .

[18]  Simon,et al.  Assignment and sequence: why some students can't recognise a simple swap , 2011, Koli Calling.

[19]  Juha Sorva,et al.  UUhistle: a software tool for visual program simulation , 2010, Koli Calling.

[20]  Juha Sorva Students' understandings of storing objects , 2007 .

[21]  Juha Sorva,et al.  Visual program simulation in introductory programming education , 2012 .

[22]  Linxiao Ma,et al.  Investigating and improving novice programmers’ mental models of programming concepts , 2007 .

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

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

[25]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.

[26]  Geoffrey L. Herman,et al.  Identifying student misconceptions of programming , 2010, SIGCSE.

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