ABSTRACT
For novice programmers one of the most problematic concepts is variable assignment and evaluation. Several questions emerge in the mind of the beginner, such as what does x = 7 + 4 or x = x + 1 really mean? For instance, many students initially think that such statements store the entire calculation in variable x, evaluating the result lazily when actually needed. The common increment pattern x = x + 1 is even believed to be outright impossible. This paper discusses a multi-year project examining how high school students think of assignments and variables. In particular, where does the misconception of storing entire calculations come from? Can we explain the students' thinking and help them develop correct models of how programming works?
It is particularly striking that a model of the computer as a machine with algebraic capabilities would indeed produce the observed misconceptions. The misconception might simply be attributed to the expectation that the computer performs computations the exact same way students are taught to in mathematics.
- P. Bayman and R. E. Mayer. A diagnosis of beginning programmers' misconceptions of basic programming statements. Commun. ACM, 26(9):677--679, Sept. 1983. Google ScholarDigital Library
- P. Byckling and J. Sajaniemi. Roles of variables and programming skills improvement. SIGCSE Bull., 38(1):413--417, Mar. 2006. Google ScholarDigital Library
- B. Du Boulay. Some difficulties of learning to program. Journal of Educational Computing Research, 2:57--73, 1986. Google ScholarCross Ref
- L. Grandell, M. Peltomaki, R.-J. Back, and T. Salakoski. Why complicate things?: Introducing programming in high school using python. In Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, ACE '06, pages 71--80, Darlinghurst, Australia, Australia, 2006. Australian Computer Society, Inc. Google ScholarDigital Library
- P. J. Guo. Online python tutor: Embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education, SIGCSE '13, pages 579--584, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- M. Kuittinen and J. Sajaniemi. Teaching roles of variables in elementary programming courses. SIGCSE Bull., 36(3):57--61, June 2004. Google ScholarDigital Library
- E. Lahtinen, K. Ala-Mutka, and H.-M. Jarvinen. A study of the difficulties of novice programmers. ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, pages 14--18, 2005. Google ScholarDigital Library
- R. Lister, E. S. Adams, S. Fitzgerald, W. Fone, J. Hamer, M. Lindholm, R. McCartney, J. E. Moström, K. Sanders, O. Sepp\"al\"a, B. Simon, and L. Thomas. A multi-national study of reading and tracing skills in novice programmers. SIGCSE Bull., 36(4):119--150, June 2004. Google ScholarDigital Library
- L. Ma, J. Ferguson, M. Roper, and M. Wood. Investigating the viability of mental models held by novice programmers. SIGCSE Bull., 39(1):499--503, Mar. 2007. Google ScholarDigital Library
- D. Muller, J. Bewes, M. Sharma, and P. Reimann. Saying the wrong thing: improving learning with multimedia by including misconceptions. Journal of Computer Assisted Learning, 24(2):144--155, 2008. Google ScholarCross Ref
- U. Nikula, J. Sajaniemi, M. Tedre, and S. Wray. Python and roles of variables in introductory programming: Experiences from three educational institutions. JITE, 6:199--214, 2007.Google ScholarCross Ref
- R. T. Putnam, D. Sleeman, J. A. Baxter, and L. K. Kuspa. A summary of misconceptions of high school basic programmers. Journal of Educational Computing Research, 2(4):459--472, 1986. Google ScholarCross Ref
- R. Samurçay. The concept of variable in programming--its meaning and use in problem-solving. Educational Studies in Mathematics, 16(2):143--161, 1985. Google ScholarCross Ref
Index Terms
- Variable Evaluation: an Exploration of Novice Programmers' Understanding and Common Misconceptions
Recommendations
A diagnosis of beginning programmers' misconceptions of BASIC programming statements
In the process of learning a computer language, beginning programmers may develop mental models for the language. A mental model refers to the user's conception of the “invisible” information processing that occurs inside the computer between input and ...
Identifying student misconceptions of programming
SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science educationComputing educators are often baffled by the misconceptions that their CS1 students hold. We need to understand these misconceptions more clearly in order to help students form correct conceptions. This paper describes one stage in the development of a ...
Misconceptions about variables at the K-12 level
AbstractThere are known misconceptions about variables which are mostly the same since the first studies since more than 30 years ago. Consciousness about the misconceptions in programming can be crucial for teaching and learning programming for novices ...
Comments