research-article

Notional machines and introductory programming education

Online:01 July 2013Publication History

Abstract

This article brings together, summarizes, and comments on several threads of research that have contributed to our understanding of the challenges that novice programmers face when learning about the runtime dynamics of programs and the role of the computer in program execution. More specifically, the review covers the literature on programming misconceptions, the cognitive theory of mental models, constructivist theory of knowledge and learning, phenomenographic research on experiencing programming, and the theory of threshold concepts. These bodies of work are examined in relation to the concept of a “notional machine”—an abstract computer for executing programs of a particular kind. As a whole, the literature points to notional machines as a major challenge in introductory programming education. It is argued that instructors should acknowledge the notional machine as an explicit learning objective and address it in teaching. Teaching within some programming paradigms, such as object-oriented programming, may benefit from using multiple notional machines at different levels of abstraction. Pointers to some promising pedagogical techniques are provided.

References

  1. Adelson, B. and Soloway, E. 1985. The role of domain experience in software design. IEEE Trans. Softw. Eng. 11, 11, 1351--1360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andrianoff, S. K. and Levine, D. B. 2002. Role playing in an object-oriented world. SIGCSE Bull. 34, 1, 121--125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Babbage, C. 1864. Passages from the Life of a Philosopher. Longman Green.Google ScholarGoogle Scholar
  4. Bayman, P. and Mayer, R. E. 1983. A diagnosis of beginning programmers' misconceptions of BASIC programming statements. Comm. ACM 26, 9, 677--679. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ben-Ari, M. 2001. Constructivism in computer science education. J. Comput. Math. Sci. Teach. 20, 1, 45--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ben-Ari, M. and Yeshno, T. 2006. Conceptual models of software artifacts. Interact. Comput. 18, 6, 1336--1350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bennedsen, J. and Schulte, C. 2006. A competence model for object interaction in introductory programming. In Proceedings of the 18th Workshop of the Psychology of Programming Interest Group (PPIG'06). 215--229.Google ScholarGoogle Scholar
  8. Bergin, J. 2000. Why procedural is the wrong first paradigm if OOP is the goal. http://csis.pace.edu/∼bergin/papers/Whynotproceduralfirst.html.Google ScholarGoogle Scholar
  9. Berglund, A. and Lister, R. 2007. Debating the OO debate: where is the problem? In Proceedings of the 7th Baltic Sea Conference on Computing Education Research (Koli Calling'07). Australian Computer Society, 171--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Berglund, A. and Lister, R. 2010. Introductory programming and the didactic triangle. In Proceedings of the 12th Australasian Computing Education Conference (ACE'10). Australian Computer Society, 35--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Besnard, D., Greathead, D., and Baxter, G. 2004. When mental models go wrong: co-occurrences in dynamic, critical systems. Int. J. Hum. Comput. Stud. 60, 1, 117--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bhuiyan, S. H., Greer, J. E., and McCalla, G. I. 1990. Mental models of recursion and their use in the SCENT programming advisor. In Proceedings of the International Conference on Knowledge Based Computer Systems (KBCS'89). Springer, 135--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Bonar, J. and Soloway, E. 1985. Preprogramming knowledge: A major source of misconceptions in novice programmers. Hum. Comput. Interact. 1, 2, 133--161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Booth, S. 1992. Learning to program: A phenomenographic perspective. Doctoral dissertation, University of Gothenburg.Google ScholarGoogle Scholar
  15. Bruce, C., Buckingham, L., Hynd, J., McMahon, C., Roggenkamp, M., and Stoodley, I. 2004. Ways of experiencing the act of learning to program: A phenomenographic study of introductory programming students at university. J. Inf. Technol. Educ. 3, 143--160.Google ScholarGoogle ScholarCross RefCross Ref
  16. Bruce, K. B. 2004. Controversy on how to teach CS 1: A discussion on the SIGCSE-members mailing list. SIGCSE Bull. 36, 4, 29--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Bruce-Lockhart, M. P. and Norvell, T. S. 2007. Developing mental models of computer programming interactively via the Web. In Proceedings of the 37th Annual Frontiers in Education Conference (FIE'07). IEEE, S3H--3--S3H--8.Google ScholarGoogle Scholar
  18. Börstler, J. and Schulte, C. 2005. Teaching object oriented modelling with CRC cards and roleplaying games. In Proceedings of the 8th IFIP World Conference on Computers in Education (WCCE'05). IFIP TC-3.Google ScholarGoogle Scholar
  19. Cañas, J. J., Bajo, M. T., and Gonzalvo, P. 1994. Mental models and computer programming. Int. J. Hum. Comput. Stud. 40, 5, 795--811. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Caspersen, M. E. 2007. Educating novices in the skills of programming. Doctoral dissertation, Department of Computer Science, University of Aarhus.Google ScholarGoogle Scholar
  21. Chen, C.-L., Cheng, S.-Y., and Lin, J. M.-C. 2012. A study of misconceptions and missing conceptions of novice Java programmers. In Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS'12).Google ScholarGoogle Scholar
  22. Corney, M., Lister, R., and Teague, D. 2011. Early relational reasoning and the novice programmer: swapping as the “Hello World” of relational reasoning. In Proceedings of the 13th Australasian Conference on Computing Education (ACE'11). Australian Computer Society, 95--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Cousin, G. 2006. An introduction to threshold concepts. Planet 17, 4--5.Google ScholarGoogle ScholarCross RefCross Ref
  24. de Kleer, J. and Brown, J. S. 1981. Mental models of physical mechanisms and their acquisition. In Cognitive Skills and Their Acquisition, J. R. Anderson, Ed., Lawrence Erlbaum, 285--309.Google ScholarGoogle Scholar
  25. de Kleer, J. and Brown, J. S. 1983. Assumptions and ambiguities in mechanistic mental models. In Mental Models, D. Gentner and A. L. Stevens, Eds., Lawrence Erlbaum, 155--190.Google ScholarGoogle Scholar
  26. Dijkstra, E. W., et al. 1989. A debate on teaching computing science {in response to Dijkstra's On the Cruelty of Really Teaching Computing Science}. Comm. ACM 32, 12, 1397--1414. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Doukakis, D., Grigoriadou, M., and Tsaganou, G. 2007. Understanding the programming variable concept with animated interactive analogies. In Proceedings of the The 8th Hellenic European Research on Computer Mathematics & Its Applications Conference (HERCMA'07).Google ScholarGoogle Scholar
  28. Détienne, F. 1997. Assessing the cognitive consequences of the object-oriented approach: a survey of empirical research on object-oriented design by individuals and teams. Interact. Comput. 9, 1, 47--72.Google ScholarGoogle ScholarCross RefCross Ref
  29. Détienne, F. and Soloway, E. 1990. An empirically-derived control structure for the process of program understanding. Int. J. Man. Mach. Stud. 33, 3, 323--342. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. du Boulay, B. 1986. Some difficulties of learning to program. J. Educ. Comput. Res. 2, 1, 57--73.Google ScholarGoogle ScholarCross RefCross Ref
  31. du Boulay, B., O'Shea, T., and Monk, J. 1981. The black box inside the glass box: presenting computing concepts to novices. Int. J. Man. Mach. Stud. 14, 237--249.Google ScholarGoogle ScholarCross RefCross Ref
  32. Eckerdal, A. and Thuné, M. 2005. Novice Java programmers' conceptions of “object” and “class”, and variation theory. SIGCSE Bull. 37, 3, 89--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Eckerdal, A., Thuné, M., and Berglund, A. 2005. What does it take to learn ‘programming thinking’? In Proceedings of the International Workshop on Computing Education Research (ICER'05). ACM, 135--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Elliott Tew, A. 2010. Assessing fundamental introductory computing concept knowledge in a language independent manner. Doctoral dissertation, School of Interactive Computing, Georgia Institute of Technology. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Fitzgerald, S., Lewandowski, G., McCauley, R., Murphy, L., Simon, B., Thomas, L., and Zander, C. 2008. Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers. Comput. Sci. Educ. 18, 2, 93--116.Google ScholarGoogle ScholarCross RefCross Ref
  36. Fleury, A. E. 1991. Parameter passing: the rules the students construct. SIGCSE Bull. 23, 1, 283--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Fleury, A. E. 2000. Programming in Java: student-constructed rules. SIGCSE Bull. 32, 1, 197--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Gentner, D. and Gentner, D. R. 1983. Flowing waters or teeming crowds: mental models of electricity. In Mental Models, D. Gentner and A. L. Stevens, Eds., Lawrence Erlbaum, 99--130.Google ScholarGoogle Scholar
  39. Gentner, D. and Stevens, A. L. 1983. Mental Models. Lawrence Erlbaum.Google ScholarGoogle Scholar
  40. George, C. E. 2000a. EROSI—visualising recursion and discovering new errors. SIGCSE Bull. 32, 1, 305--309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. George, C. E. 2000b. Experiences with novices: the importance of graphical representations in supporting mental models. In Proceedings of the 12th Workshop of the Psychology of Programming Interest Group (PPIG'00). 33--44.Google ScholarGoogle Scholar
  42. Goldman, K., Gross, P., Heeren, C., Herman, G., Kaczmarczyk, L., Loui, M. C., and Zilles, C. 2008. Identifying important and difficult concepts in introductory computing courses using a delphi process. SIGCSE Bull. 40, 1, 256--260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Greening, T. 1999. Emerging constructivist forces in computer science education: shaping a new future. In Computer Science Education in the 21st Century, T. Greening, Ed., Springer, 47--80.Google ScholarGoogle ScholarCross RefCross Ref
  44. Greening, T. and Kay, J. 2001. Editorial. Comput. Sci. Educa. 11, 3, 189--202.Google ScholarGoogle ScholarCross RefCross Ref
  45. Gries, D. 2008. A principled approach to teaching OO first. SIGCSE Bull. 40, 1, 31--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Götschi, T., Sanders, I., and Galpin, V. 2003. Mental models of recursion. SIGCSE Bull. 35, 1, 346--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Henriksen, P. 2007. SIGCSE 2007 DC Application. http://www.cs.kent.ac.uk/archive/people/staff/ph53/SIGCSE2007DCApplication--PoulHenriksen.html.Google ScholarGoogle Scholar
  48. Holland, S., Griffiths, R., and Woodman, M. 1997. Avoiding object misconceptions. SIGCSE Bull. 29, 1, 131--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Hristova, M., Misra, A., Rutter, M., and Mercuri, R. 2003. Identifying and correcting Java programming errors for introductory computer science students. SIGCSE Bull. 35, 1, 153--156. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Hundhausen, C. D., Douglas, S. A., and Stasko, J. T. 2002. A meta-study of algorithm visualization effectiveness. J. Visual Lang. Comput. 13, 3, 259--290.Google ScholarGoogle ScholarCross RefCross Ref
  51. Johnson-Laird, P. N. 1983. Mental Models: Towards a Cognitive Science of Language, Inference and Consciousness. Harvard University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Kaczmarczyk, L. C., Petrick, E. R., East, J. P., and Herman, G. L. 2010. Identifying student misconceptions of programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE'10). ACM, 107--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Kahney, H. 1983. What do novice programmers know about recursion? In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI'83). ACM, 235--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Kempton, W. 1986. Two theories of home heat control. Cognit. Sci. 10, 75--90.Google ScholarGoogle ScholarCross RefCross Ref
  55. Kessel, C. J. and Wickens, C. D. 1982. The transfer of failure-detection skills between monitoring and controlling dynamic systems. Hum. Factors 24, 1, 49--60.Google ScholarGoogle ScholarCross RefCross Ref
  56. Kessler, C. M. and Anderson, J. R. 1986. Learning flow of control: recursive and iterative procedures. Hum. Comput. Interact. 2, 2, 135--166. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Klein, G. A. 1999. Sources of Power: How People Make Decisions. MIT Press.Google ScholarGoogle Scholar
  58. Kölling, M. 2008. Using BlueJ to introduce programming. In Reflections on the Teaching of Programming: Methods and Implementations, J. Bennedsen, M. E. Caspersen, and M. Kölling, Eds., Springer, 98--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Kunkle, W. M. 2010. The impact of different teaching approaches and languages on student learning of introductory programming concepts. Doctoral dissertation. Drexel University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Lahtinen, E., Ala-Mutka, K., and Järvinen, H.-M. 2005. A study of the difficulties of novice programmers. SIGCSE Bull. 37, 3, 14--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Land, R. and Meyer, J. H. F., Eds. 2008. Threshold Concepts within the Disciplines. Sense Publishers.Google ScholarGoogle Scholar
  62. Larochelle, M., Bednarz, N., and Garrison, J., Eds. 1998. Constructivism and Education. Cambridge University Press.Google ScholarGoogle Scholar
  63. Lister, R., Adams, E. S., Fitzgerald, S., Fone, W., Hamer, J., Lindholm, M., McCartney, R., Moström, J. E., Sanders, K., Seppälä, O., Simon, B., and Thomas, L. 2004. A multi-national study of reading and tracing skills in novice programmers. SIGCSE Bull. 36, 4, 119--150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Lister, R., Berglund, A., Clear, T., Bergin, J., Garvin-Doxas, K., Hanks, B., Hitchner, L., Luxton-Reilly, A., Sanders, K., Schulte, C., and Whalley, J. L. 2006. Research perspectives on the objects-early debate. SIGCSE Bull. 38, 4, 146--165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Ma, L. 2007. Investigating and improving novice programmers' mental models of programming concepts. Doctoral dissertation, Department of Computer & Information Sciences, University of Strathclyde.Google ScholarGoogle Scholar
  66. Madison, S. and Gifford, J. 1997. Parameter passing: The conceptions novices construct. Res. rep. http://eric. ed.gov/PDFS/ED406211.pdf.Google ScholarGoogle Scholar
  67. Markman, A. B. and Gentner, D. 2001. Thinking. Ann. Rev. Psychol. 52, 223--247.Google ScholarGoogle ScholarCross RefCross Ref
  68. Marton, F. 2000. The structure of awareness. In Phenomenography, J. A. Bowden and E. Walsh, Eds., RMIT University Press, 102--116.Google ScholarGoogle Scholar
  69. Marton, F. and Booth, S. 1997. Learning and Awareness. Lawrence Erlbaum.Google ScholarGoogle Scholar
  70. Marton, F., Runesson, U., and Tsui, A. B. M. 2004. The space of learning. In Classroom Discourse and the Space of Learning, F. Marton and A. B. M. Tsui, Eds., Lawrence Erlbaum, 3--40.Google ScholarGoogle Scholar
  71. Mayer, R. E. 1976. Some conditions of meaningful learning for computer programming: advance organizers and subject control of frame order. J. Educ. Psychol. 68, 143--150.Google ScholarGoogle ScholarCross RefCross Ref
  72. Mayer, R. E. 1981. The psychology of how novices learn computer programming. ACM Comput. Surv. 13, 1, 121--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Menand, L. 1997. Pragmatism: A Reader. Vintage.Google ScholarGoogle Scholar
  74. Meyer, J. H. F. and Land, R. 2003. Threshold concepts and troublesome knowledge: linkages to ways of thinking and practising within the disciplines. In Improving Student Learning—Ten Years On, C. Rust, Ed., Oxford Centre for Staff and Learning Development.Google ScholarGoogle Scholar
  75. Meyer, J. H. F. and Land, R., Eds. 2006. Overcoming Barriers to Student Understanding: Threshold Concepts and Troublesome Knowledge. Routledge.Google ScholarGoogle Scholar
  76. Miller, L. A. 1981. Natural language programming: styles, strategies, and contrasts. IBM Syst. J. 20, 2, 184--215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Milne, I. and Rowe, G. 2002. Difficulties in learning and teaching programming—views of students and tutors. Edu. Inf. Technol. 7, 1, 55--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Morgan, D. L. 2007. Paradigms lost and pragmatism regained. J. Mixed Methods Res. 1, 1, 48--76.Google ScholarGoogle ScholarCross RefCross Ref
  79. Murphy, L., McCauley, R., and Fitzgerald, S. 2012. “Explain in plain english” questions: implications for teaching. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE'12). ACM, New York, 385--390. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Naps, T. L., Rössling, G., Almstrum, V., Dann, W., Fleischer, R., Hundhausen, C., Korhonen, A., Malmi, L., McNally, M., Rodger, S., and Velázquez-Iturbide, J. Á. 2003. Exploring the role of visualization and engagement in computer science education. SIGCSE Bull. 35, 2, 131--152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Norman, D. A. 1983. Some observations on mental models. In Mental Models, D. Gentner and A. L. Stevens, Eds., Lawrence Erlbaum, 7--14.Google ScholarGoogle Scholar
  82. Pane, J. F., Ratanamahatana, C. A., and Myers, B. A. 2001. Studying the language and structure in non-programmers' solutions to programming problems. Int. J. Hum. Comput. Stud. 54, 2, 237--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Pang, M. F. 2003. Two faces of variation: on continuity in the phenomenographic movement. Scand. J. Educ. Res. 47, 2, 145--156.Google ScholarGoogle ScholarCross RefCross Ref
  84. Pea, R. D. 1986. Language-independent conceptual “bugs” in novice programming. J. Educ. Comput. Res. 2, 1, 25--36.Google ScholarGoogle ScholarCross RefCross Ref
  85. Perkins, D. 2006. Constructivism and troublesome knowledge. In Overcoming Barriers to Student Understanding: Threshold Concepts and Troublesome Knowledge, J. H. F. Meyer and R. Land, Eds., Routledge, 33--47.Google ScholarGoogle Scholar
  86. Perkins, D. N., Hancock, C., Hobbs, R., Martin, F., and Simmons, R. 1986. Conditions of learning in novice programmers. J. Educ. Comput. Res. 2, 1, 37--55.Google ScholarGoogle ScholarCross RefCross Ref
  87. Perkins, D. N., Schwartz, S., and Simmons, R. 1990. Instructional strategies for the problems of novice programmers. In Teaching and Learning Computer Programming: Multiple Research Perspectives, R. E. Meyer, Ed., Lawrence Erlbaum, 153--178.Google ScholarGoogle Scholar
  88. Perlis, A. J. 1982. Epigrams on programming. SIGPLAN Not. 17, 9, 7--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Phillips, D. C. 1995. The good, the bad, and the ugly: the many faces of constructivism. Educ. Res. 24, 7, 5--12.Google ScholarGoogle ScholarCross RefCross Ref
  90. Phillips, D. C., Ed. 2000. Constructivism in Education: Opinions and Second Opinions on Controversial Issues. National Society For The Study Of Education.Google ScholarGoogle Scholar
  91. Putnam, R. T., Sleeman, D., Baxter, J. A., and Kuspa, L. K. 1986. A summary of misconceptions of high school BASIC programmers. J. Educ. Comput. Res. 2, 4, 459--72.Google ScholarGoogle ScholarCross RefCross Ref
  92. Ragonis, N. and Ben-Ari, M. 2005a. A long-term investigation of the comprehension of OOP concepts by novices. Comput. Sci. Educ. 15, 3, 203--221.Google ScholarGoogle ScholarCross RefCross Ref
  93. Ragonis, N. and Ben-Ari, M. 2005b. On understanding the statics and dynamics of object-oriented programs. SIGCSE Bull. 37, 1, 226--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Ramadhan, H. A., Deek, F., and Shilab, K. 2001. Incorporating software visualization in the design of intelligent diagnosis systems for user programming. Artif. Intell. Rev. 16, 61--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Sajaniemi, J. and Kuittinen, M. 2008. From procedures to objects: a research agenda for the psychology of object-oriented programming in education. Hum. Technol. 4, 1, 75--91.Google ScholarGoogle ScholarCross RefCross Ref
  96. Sajaniemi, J., Kuittinen, M., and Tikansalo, T. 2008. A study of the development of students' visualizations of program state during an elementary object-oriented programming course. J. Educ. Res. Comput. 7, 4, 1--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Samurçay, R. 1989. The concept of variable in programming: its meaning and use in problem-solving by novice programmers. In Studying the Novice Programmer, R. E. Mayer, Ed., Lawrence Erlbaum Associates, 161--178.Google ScholarGoogle Scholar
  98. Savery, J. R. and Duffy, T. M. 1995. Problem based learning: an instructional model and its constructivist framework. In Constructivist Learning Environments: Case Studies in Instructional Design, B. Wilson, Ed., Educational Technology Publications, 135--150.Google ScholarGoogle Scholar
  99. Schulte, C. and Bennedsen, J. 2006. What do teachers teach in introductory programming? In Proceedings of the 2nd International Workshop on Computing Education Research (ICER'06). ACM, 17--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Schumacher, R. M. 1987. Acquisition of mental models. In Proceedings of the 4th Annual Mid-Central Human Factors/Ergonomics Conference. Springer, 142--148.Google ScholarGoogle Scholar
  101. Schumacher, R. M. and Czerwinski, M. P. 1992. Mental models and the acquisition of expert knowledge. In The Psychology of Expertise: Cognitive Research and Empirical AI, R. R. Hoffman, Ed., Springer, 61--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Schumacher, R. M. and Gentner, D. 1988. Transfer of training as analogical mapping. IEEE Trans. Syst. Man Cybern. 18, 4, 592--600.Google ScholarGoogle ScholarCross RefCross Ref
  103. Schwill, A. 1994. Fundamental ideas of computer science. Bull. Eur. Assoc. Theor. Comput. Sci. 53, 274--274.Google ScholarGoogle Scholar
  104. Shinners-Kennedy, D. 2008. The everydayness of threshold concepts: state as an example from computer science. In Threshold Concepts within the Disciplines, R. Land and J. H. F. Meyer, Eds., Sense Publishers, 119--128.Google ScholarGoogle Scholar
  105. Shmallo, R., Ragonis, N., and Ginat, D. 2012. Fuzzy OOP: expanded and reduced term interpretations. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE'12). ACM, New York, 309--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Simon. 2011. Assignment and sequence: why some students can't recognize a simple swap. In Proceedings of the 11th Koli Calling International Conference on Computing Education Research (Koli Calling'11). ACM, 16--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. Sleeman, D., Putnam, R. T., Baxter, J., and Kuspa, L. 1986. Pascal and high school students: a study of errors. J. Educ. Comput. Res. 2, 1, 5--23.Google ScholarGoogle ScholarCross RefCross Ref
  108. Smith, P. A. and Webb, G. I. 1995. Reinforcing a generic computer model for novice programmers. In Proceedings of the 7th Australian Society for Computer in Learning in Tertiary Education Conference ( ASCILITE'95).Google ScholarGoogle Scholar
  109. Soloway, E. 1986. Learning to program = learning to construct mechanisms and explanations. Comm. ACM 29, 9, 850--858. Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. Soloway, E., Bonar, J., and Ehrlich, K. 1983. Cognitive strategies and looping constructs: an empirical study. Comm. ACM 26, 11, 853--860. Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. Soloway, E., Ehrlich, K., Bonar, J., and Greenspan, J. 1982. What do novices know about programming? In Directions in Human--Computer Interactions, A. Badre and B. Shneiderman, Eds., Ablex Publishing, 27--54.Google ScholarGoogle Scholar
  112. Sorva, J. 2007. Students' Understandings of Storing Objects. In Proceedings of the 7th Baltic Sea Conference on Computing Education Research (Koli Calling'07). Australian Computer Society, 127--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. Sorva, J. 2008. The same but different—students' understandings of primitive and Object Variables. In Proceedings of the 8th Koli Calling International Conference on Computing Education Research (Koli Calling'08). 5--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Sorva, J. 2010. Reflections on threshold concepts in computer programming and beyond. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (Koli Calling'10). ACM, 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  115. Sorva, J. 2012. Visual program simulation in introductory programming education. Doctoral dissertation. Department of Computer Science and Engineering, Aalto University.Google ScholarGoogle Scholar
  116. Sorva, J., Karavirta, V., and Malmi, L. A review of generic program visualization systems for introductory programming education. ACM Trans. Comput. Educ. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. Steffe, L. P. and Gale, J. E., Eds. 1995. Constructivism in Education. Lawrence Erlbaum.Google ScholarGoogle Scholar
  118. Stoodley, I., Christie, R., and Bruce, C. 2004. Masters students' experiences of learning to program: an empirical model. In Proceedings of the International Conference on Qualitative Research in IT & IT in Qualitative Research (QualIT'04).Google ScholarGoogle Scholar
  119. Tashakkori, A. and Teddlie, C., Eds. 2010. Sage Handbook of Mixed Methods in Social & Behavioral Research, 2nd Ed., Sage.Google ScholarGoogle Scholar
  120. Teague, D., Corney, M., Ahadi, A., and Lister, R. 2012. Swapping as the “Hello World” of relational reasoning: replications, reflections and extensions. In Proceedings of the 14th Australasian Conference on Computing Education (ACE'12). Australian Computer Society, 87--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. Teif, M. and Hazzan, O. 2006. Partonomy and taxonomy in object-oriented thinking: junior high school students' perceptions of object-oriented basic concepts. SIGCSE Bull. 38, 4, 55--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. Thota, N., Berglund, A., and Clear, T. 2012. Illustration of paradigm pluralism in computing education research. In Proceedings of the 14th Australasian Conference on Computing Education (ACE'12). Australian Computer Society, 103--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  123. Thuné, M. and Eckerdal, A. 2009. Variation theory applied to students' conceptions of computer programming. Euro. J. Eng. Educ. 34, 4, 339--347.Google ScholarGoogle Scholar
  124. Thuné, M. and Eckerdal, A. 2010. Students' conceptions of computer programming. Tech. rep. 2010-021, Department of Information Technology, Uppsala University.Google ScholarGoogle Scholar
  125. Tuovinen, J. E. 2000. Optimising student cognitive load in computer education. In Proceedings of the Australasian Conference on Computing Education (ACE'00). ACM, 235--241. Google ScholarGoogle ScholarDigital LibraryDigital Library
  126. Vagianou, E. 2006. Program working storage: a beginner's model. In Proceedings of the 6th Baltic Sea Conference on Computing Education Research (Koli Calling'06). 69--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. Vainio, V. 2006. Opiskelijoiden mentaaliset mallit ohjelmien suorituksesta ohjelmoinnin peruskurssilla. Master's thesis. Department of Psychology, University of Helsinki.Google ScholarGoogle Scholar
  128. Vainio, V. and Sajaniemi, J. 2007. Factors in novice programmers' poor tracing skills. SIGCSE Bull. 39, 3, 236--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  129. Victor, B. 2012. Inventing on principle (video). http://vimeo.com/36579366 Accessed February 2012.Google ScholarGoogle Scholar
  130. Westbrook, L. 2006. Mental Models: A theoretical overview and preliminary study. J. Inf. Sci. 32, 6, 563--579. Google ScholarGoogle ScholarDigital LibraryDigital Library
  131. Wiedenbeck, S. 1989. Learning iteration and recursion from examples. Int. J. Man Mach. Stud. 30, 1, 1--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  132. Wiedenbeck, S. and Ramalingam, V. 1999. Novice comprehension of small programs written in the procedural and object-oriented styles. Int. J. Hum. Comput. Stud. 51, 1, 71--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  133. Wiedenbeck, S., Ramalingam, V., Sarasamma, S., and Corritore, C. L. 1999. A comparison of the comprehension of object-oriented and procedural programs by novice programmers. Interact. Comput. 11, 3, 255--282.Google ScholarGoogle ScholarCross RefCross Ref
  134. Zander, C., Boustedt, J., Eckerdal, A., McCartney, R., Moström, J. E., Ratcliffe, M., and Sanders, K. 2008. Threshold concepts in computer science: a multi-national empirical investigation. In Threshold Concepts within the Disciplines, R. Land and J. H. F. Meyer, Eds., Sense Publishers, 105--118.Google ScholarGoogle Scholar

Index Terms

  1. Notional machines and introductory programming education

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!