Abstract
Studies show that for many years courses teaching computer programming skills to novices have engendered a dislike for programming in many students. The first phase of this study presented identical content in one of three instructional sequences to 34 college students who were programming novices to determine which produced the greatest development of programming expertise. Learning was measured by performance on a Programming Assessment given immediately after the intervention, and effort and difficulty were self-rated during the instruction. There was no significant difference among the groups in Programming Assessment scores, and overall self-rated effort and difficulty of the instruction did not vary simply by rearranging the order in which the major elements were presented. However, instructional units that covered programming syntax skills and structures were rated by all groups as requiring significantly less effort and difficulty than units covering plans, and participants in all groups scored significantly higher on syntax skills and structures than on plans. The second phase sought evidence that there were differences in perception and the complexity of knowledge in long term memory between novices and experts programmers by comparing the fifteen top performing participants on the Programming Assessment with three programming experts in chunking a short program and in constructing the central solution statement to four programming problems. Experts chunked programs to twice the levels and twice as fast as novices, indicating differences in the mental organization of novices and experts. The implications of these results are discussed.
Similar content being viewed by others
References
Adelson, B. (1981). Problem solving and the development of abstract categories in programming languages. Memory & Cognition, 9(4), 422–433.
Anderson, J. R. (1987). Skill acquisition: Compilation of weak-method problem solutions. Psychological Review, 94(2), 192–210.
Bennedsen, J., & Caspersen, M. E. (2008). Optimists have more fun, but do they learn better? On the influence of emotional and social factors on learning introductory computer science. Computer Science Education, 18(1), 1–16.
Bergin, S., & Reilly, R. (2006). Predicting introductory programming performance: A multiinstitutional multivariate study. Computer Science Education, 16(4), 303–323.
Bonar, J., & Soloway, E. (1985). Preprogramming knowledge: A major source of misconceptions in novice programmers. Human-Computer Interaction, 1(2), 133–161.
Boschker, M. S. J., Bakker, F. C., & Michaels, C. F. (2002). Memory for the functional characteristics of climbing walls: Perceiving affordances. Journal of Motor Behavior, 34(1), 25–36.
Campbell, R. L., Brown, N. R., & DiBello, L. A. (1992). The programmer’s burden: Developing expertise in programming. In R. R. Hoffman (Ed.), The psychology of expertise: Cognitive research and empirical AI (pp. 269–294). New York: Springer.
Chandler, P., & Sweller, J. (1991). Cognitive load theory and the format of instruction. Cognition & Instruction, 8(4), 293–332.
Charness, N., Reingold, E., Pomplun, M., & Stampe, D. M. (2001). The perceptual aspect of skilled performance in chess: Evidence from eye movements. Memory & Cognition, 29(8), 1146–1152.
Chase, W. G., & Simon, H. A. (1973). Perception in chess. Cognitive Psychology, 4, 55–81.
Corritore, C. L., & Wiedenbeck, S. (1991). What do novices learn during program comprehension? International Journal of Human-Computer Interaction, 3(2), 199–222.
Cowan, N. (2000). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. The Behavioral and Brain Sciences, 24(1), 87–114.
Davies, S. P. (1994). Knowledge restructuring and the acquisition of programming expertise. International Journal of Human Computer Studies, 40, 703–726.
Davies, S. P., Gilmore, D. J., & Green, T. R. G. (1995). Are objects that important? Effects of expertise and familiarity on classification of object-oriented code. Human-Computer Interaction, 10(2–3), 227–248.
De Groot, A. D. (1965). Thought and choice in chess. The Hague. The Netherlands: Mouton.
DeLeeuw, K. E., & Mayer, R. E. (2009). A comparison of three measures of cognitive load: Evidence for separable measures of intrinsic, extraneous, and germane load. Journal of Educational Psychology, 100(1), 223–234.
Eckert, C., & Stacey, M. (2003). Adaptation of sources of inspiration in knitwear design. Creativity Research Journal, 15(4), 355–384.
Gagné, R. M., Briggs, L. J., & Wager, W. W. (1988). Principles of instructional design (3rd ed.). New York: Holt, Rinehart and Winston.
Garland, D. J., & Barry, J. R. (1992). Effects of interpolated processing on experts recall of schematic information. Current Psychology, 10(4), 273–280.
Gaspar, A., & Langevin, S. (2007). Restoring “Coding with intention” in introductory programming courses. In Proceedings of the 8th ACM SIGITE conference on information technology education (pp. 91–98). New York: ACM.
Gobet, F. (2005). Chunking models of expertise: Implications for education. Applied Cognitive Psychology, 19(2), 183–204.
Gobet, F., & Wood, D. (1999). Expertise, models of learning and computer-based tutoring. Computers & Education, 33(2–3), 189–207.
Gobet, F., & Simon, H. A. (2000). Five seconds or sixty? Presentation time in expert memory. Cognitive Science, 24(4), 651–682.
Gobet, F., & Jackson, S. (2002). In search of templates. Cognitive Systems Research, 3(1), 35–44.
Gobet, F., & Chassy, P. (2008). Towards an alternative to Benner’s theory of expert intuition in nursing: A discussion paper. International Journal of Nursing Studies, 45(1), 129–139.
Gobet, F., & Chassy, P. (2009). Expertise and intuition: A tale of three theories. Minds and Machines, 19, 151–180.
Kalyuga, S. (2009). Knowledge elaboration: A cognitive load perspective. Learning and Instruction, 19, 402–410.
Kurland, D. M., Pea, R. D., Clement, C., & Mawby, R. (1989). A study of the development of programming ability and thinking skills in high school students. In E. Soloway & J. C. Spohrer (Eds.), Studying the novice programmer (pp. 83–112). Hillsdale: Lawrence Erlbaum.
Linn, M. C., & Dalbey, J. (1989). Cognitive consequences of programming instruction. In E. Soloway & J. C. Spohrer (Eds.), Studying the novice programmer (pp. 57–81). Hillsdale: Lawrence Erlbaum.
McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B., et al. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. SIGCSE Bulletin., 33(4), 125–180.
McGettrick, A., Boyle, R., Ibbett, R., Lloyd, J., Lovegrove, G., & Mander, K. (2005). Grand challenges in computing: Education—A summary. The Computer Journal, 48(1), 42–48.
McKeithen, K. B., Reitman, J. S., Rueter, H. H., & Hirtle, S. C. (1981). Knowledge organization and skill differences in computer programmers. Cognitive Psychology, 13(3), 307–325.
Miller, G. A. (1956). The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological Review, 63, 81–97.
Paas, F. G., & Van Merriënboer, J. (1994). Measurement of cognitive load in instructional research. Perceptual and Motor Skills, 79(1), 419–430.
Pennington, N. (1987). Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, 19(3), 295–341.
Pollock, E., Chandler, P., & Sweller, J. (2002). Assimilating complex information. Learning and Instruction, 12(1), 61–86.
Putnam, R. T., Sleeman, D., Baxter, J. A., & Kuspa, L. K. (1989). A summary of misconceptions of high school basic programmers. In E. Soloway & J. C. Spohrer (Eds.), Studying the novice programmer (pp. 301–315). Hillsdale: Lawrence Erlbaum.
Reigeluth, C. M., & Stein, F. S. (1983). The elaboration theory of instruction. In C. M. Reigeluth (Ed.), Instructional-design theories and models: An overview of their current status (pp. 334–381). Hillsdale: Lawrence Erlbaum Associates.
Rist, R. S. (1989). Schema creation in programming. Cognitive Science, 13, 389–414.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137–172.
Saariluoma, P., & Laine, T. (2001). Novice construction of chess memory. Scandinavian Journal of Psychology, 42, 137–146.
Schnotz, W., & Kürschner, C. (2007). A reconsideration of cognitive load theory. Educational Psychology Review, 19(4), 469–508.
Soloway, E. (1986). Learning to program=learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850–858.
Soloway, E., Erlich, K., Bonar, J., & Greenspan, J. (1982). What do novices know about programming? In A. Badre & B. Shneiderman (Eds.), Directions in human-computer interaction (pp. 27–54). Norwood: Ablex.
Spohrer, J. C., & Soloway, E. (1988). Novice mistakes: Are the folk wisdoms correct? Communications of the ACM, 29(7), 624–632.
Sweller, J., & Chandler, P. (1994). Why some material is difficult to learn. Cognition and Instruction, 12(3), 185–233.
Van Gog, T., Paas, F., & Van Merriënboer, J. J. G. (2005). Uncovering expertise-related differences in troubleshooting performance: Combining eye movement and concurrent verbal protocol data. Applied Cognitive Psychology, 19(2), 205–221.
van Merriënboer, J. J. G., & Sweller, J. (2005). Cognitive load theory and complex learning: Recent developments and future directions. Educational Psychology Review, 17(2), 147–177.
van Merriënboer, J. J. G., Kirschner, P. A., & Kester, L. (2003). Taking the load off a learner’s mind: Instructional design for complex learning. Educational Psychologist, 38(1), 5–13.
Vessey, I. (1988). Expert-novice knowledge organization: An empirical investigation using computer program recall. Behaviour & Information Technology, 7(2), 153–172.
Wickelgren, W. A. (1999). Webs, cell assemblies, and chunking in neural nets. Canadian Journal of Experimental Psychology, 53(1), 118–131.
Wiedenbeck, S. (1986). Beacons in computer-program comprehension. International Journal of Man-Machine Studies, 25(6), 697–709.
Winslow, L. E. (1996). Programming pedagogy: A psychological overview. SIGSE Bulletin, 28(3), 17–25.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kranch, D.A. Teaching the novice programmer: A study of instructional sequences and perception. Educ Inf Technol 17, 291–313 (2012). https://doi.org/10.1007/s10639-011-9158-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10639-011-9158-8