Abstract
This article offers an examination of instructional strategies and tactics for the design of introductory computer programming courses in high school. We distinguish the Expert, Spiral and Reading approach as groups of instructional strategies that mainly differ in their general design plan to control students' processing load. In order, they emphasize topdown program design, incremental learning, and program modification and amplification. In contrast, tactics are specific design plans that prescribe methods to reach desired learning outcomes under given circumstances. Based on ACT* (Anderson, 1983) and relevant research, we distinguish between declarative and procedural instruction and present six tactics which can be used both to design courses and to evaluate strategies. Three tactics for declarative instruction involve concrete computer models, programming plans and design diagrams; three tactics for procedural instruction involve worked-out examples, practice of basic cognitive skills and task variation. In our evaluation of groups of instructional strategies, the Reading approach has been found to be superior to the Expert and Spiral approaches.
The authors wish to express their gratitude to Sanne Dijkstra, Otto Jelsma and Georg Rakers for their helpful comments on a draft of this article. Correspondence concerning this article should be addressed to Jeroen J. G. van Merrienboer.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Adelson, B. (1981). Problem solving and the development of abstract categories in programming languages. Memory and Cognition, 9, 422–433.
Anderson, J. R. (1982). Acquisition of cognitive skill. Psychological Review, 89, 369–406.
Anderson, J. R. (1983). The architecture of cognition. Cambridge: The Harvard University Press.
Anderson, J. R., Boyle, C. F., Corbett, A. and Lewis, M. (1986). Cognitive modelling and intelligent tutoring (Tech. Rep. No. ONR-86–1). Pittsburgh, PA.: Carnegie-Mellon University, Psychology Department.
Anderson, J. R., Farrell, R. and Sauers, R. (1984). Learning to program in LISP. Cognitive Science, 8, 87–129.
Anderson, J. R., Greeno, J. G., Kline, P. J. and Neves, D. M. (1981). Acquisition of problem solving skill. In J. R.Anderson (Ed.), Cognitive skills and their acquisition (pp. 191–230). Hillsdale, NJ.: Erlbaum Associates.
Anderson, J. R. and Jeffries, R. (1985). Novice LISP errors: Undetected losses of information from working memory. Human-Computer Interaction, 1, 107–131.
Anderson, J. R., Kline, P. J. and Beasly, C. M. (1980). Complex learning processes. In R. E.Snow, P. A.Federico and W. E.Montague (Eds.), Aptitude, learning and instruction: Vol. 2. Hillsdale, NJ.: Erlbaum Associates.
Anderson, J. R. and Reiser, B. J. (1985). The LISP tutor. Byte, 10(4), 159–175.
Anderson, J. R. and Skwarecki, E. (1986). The automated tutoring of introductory computer programming. Communications of the ACM, 29, 842–849.
Atherson, R. (1981). Requirements for a general purpose high-level programming language for schools. Computer Education, 38, 14–16.
Atherton, R. (1982). BASIC damages the brain. Computer Education, 40, 14–17.
Atwood, M. E., Turner, A. A., Ramsey, H. R., Hooper, J. N. and Sidorsky, R. C. (1979). An exploratory study of the cognitive structures underlying the comprehension of software design problems (Tech. Rep. No. 392). Alexandria, VA.: US Army Research Institute for the Behavioral and Social Sciences.
Ausubel, D. P. (1968). Educational psychology: A cognitive approach. New York: Holt, Rinehart & Winston.
Baird, W. E. (1982). Problem solving, teamwork and structured programming-in high school? In J.Smith and G.Schuster Moon (Eds.), Proceedings of the NECC (pp. 331–334). Columbia: University of Missouri.
Balzert, H. and Hille, H. (1980). A standardized curriculum in informatics for adult education. Computers and Education, 4, 189–198.
Barfield, W. (1986). Expert-novice differences for software: Implications for problem-solving and knowledge acquisition. Behavior and Information Technology, 5, 15–29.
Barfield, W., LeBold, W. K., Salvendy, G. and Shodja, S. (1983). Cognitive factors related to computer programming and software productivity. In Proceedings of the Human Factors Society, 27th Annual Meeting (pp. 647–651). Norfolk, VA: Human Factors Society.
Baron, J., Szymanski, B., Lock, E. and Prywes, N. (1985). An argument for non-procedural languages. In R.Jernigan, B. W.Hamill and D. M.Weinstraub (Eds.), The role of language in problem solving (pp. 127–144). Amsterdam, North Holland: Elsevier Science Publishing.
Bayman, P. and Mayer, R. E. (1983). A diagnosis of beginning programmer's misconceptions of BASIC programming statements. Communications of the ACM, 26, 677–679.
Bonar, J. and Soloway, E. (1985). Preprogramming knowledge: A major source of misconceptions in novice programmers. Human-Computer Interaction, 1, 133–161.
Bradley, C. A. (1985). The relationship between students' information processing style and Logo programming. Journal of Educational Computing Research, 1, 427–433.
Brooke, J. B. and Duncan, K. D. (1980). Experimental studies of flowchart use at different stages of program debugging. Ergonomics, 23, 1057–1091.
Brooks, R. (1977). Towards a theory of the cognitive processes in computer programming. International Journal of Man-Machine Studies, 9, 737–751.
Clements, D. H. (1986a). Effects of Logo and CAI environments on cognition and creativity. Journal of Educational Psychology, 78, 309–318.
Clements, D. H. (1986b). Logo and Cognition: A theoretical foundation. Computers in Human Behavior, 2, 95–110.
Clements, D. H. (1987). Longitudinal study of the effects of Logo programming on cognitive abilities and achievement. Journal of Educational Computing Research, 3, 73–94.
Clements, D. H. and Gullo, D. F. (1984). Effects of computer programming on young children's cognition. Journal of Educational Psychology, 76, 1051–1058.
Cooper, D. and Clancy, M. (1982). Oh! Pascal!. New York: W. W. Norton.
Curtis, B. (1983, March). A review of human factors research on programming languages and specifications. Monitor, pp. 24–30.
Dahl, O. J., Dijkstra, E. W. and Hoare, C. A. R. (1972). Structured programming. London: Academic Press.
Dalbey, J. and Linn, M. C. (1986). Cognitive consequences of programming: Augmentations to basic instruction. Journal of Educational Computing Research, 2, 75–93.
Dalbey, J., Tourniaire, F. and Linn, M. C. (1985). Making programming instruction cognitively demanding: An intervention study (ACCCEL report). Berkeley: University of California, Lawrence Hall of Science.
Dale, N. and Orschalick, D. (1983). Introduction to Pascal and structured design. New York: D. C. Heath and Co.
Deimel, L. E. and Moffat, D. V. (1982). A more analytical approach to teaching the introductory programming course. In J.Smith and M.Schuster (Eds.), Proceedings of the NECC (pp. 114–118). Columbia: The University of Missouri.
Dershem, H. L. (1980). Computer problem solving (Modules and monographs in undergraduate mathematics and its applications project). Newton, MA.: Educational Development Center.
Dijkstra, E. W. (1968). GOTO statement considered harmful. Communications of the ACM, 11, 147–148.
DuBoulay, B. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2, 57–73.
DuBoulay, B., O'Shea, T. and Monk, J. (1981). The black box inside the glas box: Presenting computing concepts to novices. International Journal of Man-Machine Studies, 14, 237–249.
Ehrlich, K. and Soloway, E. (1984). An empirical investigation of the tacit plan knowledge in programming. In J. Thomas and M. L. Schneider, Human factors in computer systems (pp. 113–133). Norwood, NJ.: Ablex Publishing, Corp.
Ehrlich, K., Soloway, E. and Abbott, V. (1982). Transfer effects from programming to algebra word problems: A preliminary study (Tech. Rep. No. 257). New Haven, CT.: Yale University, Dept. of Computer Science.
Fitter, M. J. and Green, T. R. G. (1979). When do diagrams make good computer languages? International Journal of Man-Machine Studies, 11, 235–261.
Gall, M. (1984). Synthesis of research on teachers' questioning. Educational Leadership, 42 (3), 40–47.
Gilmore, D. J. (1986). Structural visibility and program comprehension. In M. D.Harrison and A. F.Monk (Eds.), People and computers: Designing for usability (pp. 527–545). Cambridge: Cambridge University Press.
Green, T. R. G. (1982). Pictures of programs and other processes, or how to do things with lines. Behaviour and Information Technology, 1, 3–36.
Green, T. R. G. (1983). Learning big and little programming languages. In A. C.Wilkinson (Ed.), Classroom computers and cognitive science (pp. 71–93). New York: Academic Press.
Green, T. R. G., Sime, M. E. and Fitter, M. J. (1980). The problems the programmer faces. Ergonomics, 23, 893–907.
Hayes-Roth, B. and Hayes-Roth, F. (1979). A cognitive model of planning. Cognitive Science, 3, 275–310.
Hoc, J. M. (1981). Planning and direction of problem solving in structured programming: An empirical comparison between two methods. International Journal of Man-Machine Studies, 15, 363–383.
Jeffries, R., Tumer, A. A., Polson, P. G. and Atwood, M. E. (1981). The processes involved in designing software. In J. R.Anderson (Ed.), Cognitive skills and their acquisition (pp. 255–284). Hillsdale, NJ.: Erlbaum Associates.
Johnson, W. L. and Soloway, E. (1985a). PROUST: Knowledge-based program understanding. IEEE Transactions on Software Engineering, 11, 267–275.
Johnson, W. L. and Soloway, E. (1985b). PROUST: An automatic debugger for Pascal programs. Byte, 10(4), 179–193.
Joni, S. A. and Soloway, E. (1986). But my program runs! Discourse rules for novice programmers. Journal of Educational Computing Research, 2, 95–125.
Larkin, J. H. (1979). Information processing models and science instruction. In J.Lochhead and J.Clement (Eds.), Cognitive process instruction (pp. 109–118). Philadephia, PA.: The Franklin Institute Press.
Linn, M. C. (1985). The cognitive consequences of programming instruction in classrooms. Educational Researcher, 14(5), 14–29.
Mandinach, E. B. and Linn, M. C. (1986). The cognitive effects of computer learning environments. Journal of Educational Computing Research, 2, 411–427.
Mayer, R. E. (1975). Different problem solving competencies established in learning computer programming with and without meaningful models. Journal of Educational Psychology, 67, 725–734.
Mayer, R. E. (1976). Some conditions of meaningful learning for computer programming: Advanced organizers and subject control of frame order. Journal of Educational Psychology, 68, 143–150.
Mayer, R. E. (1979). A psychology of learning BASIC. Communications of the ACM, 22, 589–593.
Mayer, R. E. (1981). The psychology of how novices learn computer programming. Computing Surveys, 13, 121–141.
Mayer, R. E. (1982). Contributions of cognitive science and related research in learning to the design of computer literacy curricula. In R.Seidel, R.Anderson and B.Hunter (Eds.), Computer literacy (pp. 129–159). New York: Academic Press.
Mayer, R. E. and Bromage, B. (1980). Different recall protocols for technical text due to advance organizers. Journal of Educational Psychology, 72, 209–225.
McKeithen, K. B., Reitman, J. S., Rueter, H. H. and Hirtle, S. C. (1981). Knowledge organization and skill differences in computer programmers. Cognitive Psychology, 13, 307–325.
Mettes, C. T. W., Pilot, A. and Roossink, H. J. (1981). Linking factual and procedural knowledge in solving science problems: A case study in a thermodynamics course. Instructional Science, 10, 333–361.
Neves, D. M. and Anderson, J. R. (1982). Knowledge compilation: mechanisms for the automatization of cognitive skills. In J. R.Anderson (Ed.), Cognitive skills and their acquisition (pp. 57–84). Hillsdale, NJ.: Erlbaum Associates.
Newell, A. and Simon, H. A. (1972). Human Problem Solving. Englewood Cliffs, NJ.: Prentice-Hall.
Pea, R. D. (1986). Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing Research, 2, 25–36.
Reigeluth, C. M. (1983). Instructional design: What is it and why is it? In C. M.Reigeluth (Ed.), Instructional-design theory and models (pp. 3–36). Hillsdale, NJ.: Erlbaum Associates.
Reiser, B. J. Anderson, J. R. and Farrell, R. G. (1985). Dynamic student modelling in an intelligent tutor for LISP programming. In Proceedings of IJCAI-85 (pp. 8–14). Los Angeles: IJCAI.
Resnick, L. B. and Ford, W. W. (1981). The psychology of mathematics for instruction. Hillsdale, NJ.: Erlbaum Associates.
Sacerdoti, E. G. (1977). A structure for plans and behavior. New York: Elsevier Science Publishing.
Sackman, H., Erickson, W. J. and Grant, E. E. (1968). Exploratory experimental studies comparing online and offline programming performance. Communications of the ACM, 11, 3–14.
Samurçay, R. (1985). Learning programming: An analysis of looping strategies used by beginning students. Journal for the Learning of Mathematics, 5, 37–43.
Schulz-Zander, R. (1981). Ein didaktischer Ansatz für den Informatikunterricht [A didactic proposal for computer science education]. Log In, 1, 24–27.
Schulz-Zander, R. (1986). Auswirkungen von Programmiersprachen auf das Probleml öseverhalten von Schülern [Effects of programming languages on student' problem-solving behavior]. Kiel: Institut für die Pädagogik der Naturwissenschaften an der Universität Kiel.
Sheppard, S. B., Kruesi, E. and Curtis, B. (1981). The effects of symbology and spatial arrangement on the comprehension of software specifications. In Proceedings of the Fifth International Conference on Software Engineering (pp. 207–214). Silver Spring, MD.: IEEE computer society.
Shneiderman, B. (1976). Exploratory experiments in programmer behavior. InternationalJournal of Computer and Information Sciences, 5, 123–143.
Shneiderman, B. (1977a). Teaching programming: A spiral approach to syntax and semantics. Computers and Education, 1, 193–197.
Shneiderman, B. (1977b). Measuring computer program quality and comprehension. International Journal of Man-Machine Studies, 9, 46–59.
Shneideman, B. and Mayer, R. (1979). Syntactic/semantic interactions in programmer behavior: A model and experimental results. International Journal of Computer and Information Sciences, 8, 219–238.
Shneiderman, B., Mayer, R., McKay, D. and Heller, P. (1977). Experimental investigations of the utility of detailed flow-charts in programming. Communications of the ACM, 20, 373–381.
Sime, M. E., Arblaster, A. T. and Green, T. R. G. (1977). Struturing the programmer's task. Journal of Occupational Psychology, 50, 205–216.
Simon, H. A. (1980). Problem solving and education. In D. T.Tuma and F.Reif (Eds.), Problem solving and education: Issues in teaching and research. Hillsdale, NJ.: Erlbaum asscciates.
Sleeman, D., Putnam, R. T., Baxter, J. and Kuspa, L. (1986). Pascal and high school students: A study of errors. Journal of Educational Computing Research, 2, 5–23.
Soloway, E. (1985). From problems to programs via plans: The content and structure of knowledge for introductory LISP programming. Journal of Educational Computing Research, 1, 157–172.
Soloway, E., Bonar, J. and Ehrlich, K. (1982). Cognitive strategies and looping constructs: An empirical study (Tech. Rep. No. 242). New Haven: Yale University, Dept. of Computer Science.
Soloway, E., Ehrlich, K., Bonar, J. and Greenspan, J. (1982). What do novices know about programming? In A.Badre and B.Shneiderman (Eds.), Directions in human-computer interactions (pp. 27–54). Norwood, NJ.: Ablex Publishing Corp.
Soloway, E., Lochhead, J. and Clement, J. (1982). Does computer programming enhance problem solving ability? Some positive evidence on algebra word problem. In R.Seidel, R.Anderson and B.Hunter (Eds.), Computer literacy (pp. 171–185). New York: Academic Press.
Spohrer, J. C., Soloway, E. and Pope, E. (1985). A goal/plan analysis of buggy Pascal programs. Human-Computer Interaction, 1, 163–207.
Webb, N. M. (1983). Predicting learning from student interaction: Defining the interaction variables. Educational Psychologist, 18, 33–41.
Webb, N. M. (1984). Microcomputer learning in small groups: cognitive requirements and group processes. Journal of Educational Psychology, 76, 1076–1089.
Webb, N. M., Ender, P. and Lewis, S. (1986). Problem solving strategies and group processes in small groups learning computer programming. American Educational Research Journal, 32, 243–261.
Weiser, M. and Shertz, J. (1983). Programming problem representation in novice and expert programmers. International Journal of Man-Machine Studies, 19, 391–398.
Wirth, N. (1974). On the composition of well-structured programs. Computing Surveys, 6, 247–259.
Woodhouse, D. (1983). Introductory courses in computing: Aims and languages. Computer Education, 7(2), 79–89.
Yourdon, E. (1975). Techniques of program structure and design. Englewood Cliffs, NJ.: Prentice-Hall.
Author information
Authors and Affiliations
Additional information
Notes
Rights and permissions
About this article
Cite this article
Van Merrienboer, J.J.G., Krammer, H.P.M. Instructional strategies and tactics for the design of introductory computer programming courses in high school. Instr Sci 16, 251–285 (1987). https://doi.org/10.1007/BF00120253
Issue Date:
DOI: https://doi.org/10.1007/BF00120253