Skip to main content
Log in

Instructional strategies and tactics for the design of introductory computer programming courses in high school

  • Articles
  • Published:
Instructional Science Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • Adelson, B. (1981). Problem solving and the development of abstract categories in programming languages. Memory and Cognition, 9, 422–433.

    Google Scholar 

  • Anderson, J. R. (1982). Acquisition of cognitive skill. Psychological Review, 89, 369–406.

    Google Scholar 

  • Anderson, J. R. (1983). The architecture of cognition. Cambridge: The Harvard University Press.

    Google Scholar 

  • 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.

    Google Scholar 

  • Anderson, J. R., Farrell, R. and Sauers, R. (1984). Learning to program in LISP. Cognitive Science, 8, 87–129.

    Google Scholar 

  • 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.

    Google Scholar 

  • Anderson, J. R. and Jeffries, R. (1985). Novice LISP errors: Undetected losses of information from working memory. Human-Computer Interaction, 1, 107–131.

    Google Scholar 

  • 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.

    Google Scholar 

  • Anderson, J. R. and Reiser, B. J. (1985). The LISP tutor. Byte, 10(4), 159–175.

    Google Scholar 

  • Anderson, J. R. and Skwarecki, E. (1986). The automated tutoring of introductory computer programming. Communications of the ACM, 29, 842–849.

    Google Scholar 

  • Atherson, R. (1981). Requirements for a general purpose high-level programming language for schools. Computer Education, 38, 14–16.

    Google Scholar 

  • Atherton, R. (1982). BASIC damages the brain. Computer Education, 40, 14–17.

    Google Scholar 

  • 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.

    Google Scholar 

  • Ausubel, D. P. (1968). Educational psychology: A cognitive approach. New York: Holt, Rinehart & Winston.

    Google Scholar 

  • 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.

    Google Scholar 

  • Balzert, H. and Hille, H. (1980). A standardized curriculum in informatics for adult education. Computers and Education, 4, 189–198.

    Google Scholar 

  • Barfield, W. (1986). Expert-novice differences for software: Implications for problem-solving and knowledge acquisition. Behavior and Information Technology, 5, 15–29.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Bonar, J. and Soloway, E. (1985). Preprogramming knowledge: A major source of misconceptions in novice programmers. Human-Computer Interaction, 1, 133–161.

    Google Scholar 

  • Bradley, C. A. (1985). The relationship between students' information processing style and Logo programming. Journal of Educational Computing Research, 1, 427–433.

    Google Scholar 

  • Brooke, J. B. and Duncan, K. D. (1980). Experimental studies of flowchart use at different stages of program debugging. Ergonomics, 23, 1057–1091.

    Google Scholar 

  • Brooks, R. (1977). Towards a theory of the cognitive processes in computer programming. International Journal of Man-Machine Studies, 9, 737–751.

    Google Scholar 

  • Clements, D. H. (1986a). Effects of Logo and CAI environments on cognition and creativity. Journal of Educational Psychology, 78, 309–318.

    Google Scholar 

  • Clements, D. H. (1986b). Logo and Cognition: A theoretical foundation. Computers in Human Behavior, 2, 95–110.

    Google Scholar 

  • 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.

    Google Scholar 

  • Clements, D. H. and Gullo, D. F. (1984). Effects of computer programming on young children's cognition. Journal of Educational Psychology, 76, 1051–1058.

    Google Scholar 

  • Cooper, D. and Clancy, M. (1982). Oh! Pascal!. New York: W. W. Norton.

    Google Scholar 

  • 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.

    Google Scholar 

  • Dalbey, J. and Linn, M. C. (1986). Cognitive consequences of programming: Augmentations to basic instruction. Journal of Educational Computing Research, 2, 75–93.

    Google Scholar 

  • 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.

    Google Scholar 

  • Dale, N. and Orschalick, D. (1983). Introduction to Pascal and structured design. New York: D. C. Heath and Co.

    Google Scholar 

  • 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.

    Google Scholar 

  • Dershem, H. L. (1980). Computer problem solving (Modules and monographs in undergraduate mathematics and its applications project). Newton, MA.: Educational Development Center.

    Google Scholar 

  • Dijkstra, E. W. (1968). GOTO statement considered harmful. Communications of the ACM, 11, 147–148.

    Google Scholar 

  • DuBoulay, B. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2, 57–73.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Gall, M. (1984). Synthesis of research on teachers' questioning. Educational Leadership, 42 (3), 40–47.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Green, T. R. G., Sime, M. E. and Fitter, M. J. (1980). The problems the programmer faces. Ergonomics, 23, 893–907.

    Google Scholar 

  • Hayes-Roth, B. and Hayes-Roth, F. (1979). A cognitive model of planning. Cognitive Science, 3, 275–310.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Johnson, W. L. and Soloway, E. (1985a). PROUST: Knowledge-based program understanding. IEEE Transactions on Software Engineering, 11, 267–275.

    Google Scholar 

  • Johnson, W. L. and Soloway, E. (1985b). PROUST: An automatic debugger for Pascal programs. Byte, 10(4), 179–193.

    Google Scholar 

  • Joni, S. A. and Soloway, E. (1986). But my program runs! Discourse rules for novice programmers. Journal of Educational Computing Research, 2, 95–125.

    Google Scholar 

  • 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.

    Google Scholar 

  • Linn, M. C. (1985). The cognitive consequences of programming instruction in classrooms. Educational Researcher, 14(5), 14–29.

    Google Scholar 

  • Mandinach, E. B. and Linn, M. C. (1986). The cognitive effects of computer learning environments. Journal of Educational Computing Research, 2, 411–427.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Mayer, R. E. (1979). A psychology of learning BASIC. Communications of the ACM, 22, 589–593.

    Google Scholar 

  • Mayer, R. E. (1981). The psychology of how novices learn computer programming. Computing Surveys, 13, 121–141.

    Google Scholar 

  • 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.

    Google Scholar 

  • Mayer, R. E. and Bromage, B. (1980). Different recall protocols for technical text due to advance organizers. Journal of Educational Psychology, 72, 209–225.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Newell, A. and Simon, H. A. (1972). Human Problem Solving. Englewood Cliffs, NJ.: Prentice-Hall.

    Google Scholar 

  • Pea, R. D. (1986). Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing Research, 2, 25–36.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Resnick, L. B. and Ford, W. W. (1981). The psychology of mathematics for instruction. Hillsdale, NJ.: Erlbaum Associates.

    Google Scholar 

  • Sacerdoti, E. G. (1977). A structure for plans and behavior. New York: Elsevier Science Publishing.

    Google Scholar 

  • 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.

    Google Scholar 

  • Samurçay, R. (1985). Learning programming: An analysis of looping strategies used by beginning students. Journal for the Learning of Mathematics, 5, 37–43.

    Google Scholar 

  • Schulz-Zander, R. (1981). Ein didaktischer Ansatz für den Informatikunterricht [A didactic proposal for computer science education]. Log In, 1, 24–27.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Shneiderman, B. (1976). Exploratory experiments in programmer behavior. InternationalJournal of Computer and Information Sciences, 5, 123–143.

    Google Scholar 

  • Shneiderman, B. (1977a). Teaching programming: A spiral approach to syntax and semantics. Computers and Education, 1, 193–197.

    Google Scholar 

  • Shneiderman, B. (1977b). Measuring computer program quality and comprehension. International Journal of Man-Machine Studies, 9, 46–59.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Sime, M. E., Arblaster, A. T. and Green, T. R. G. (1977). Struturing the programmer's task. Journal of Occupational Psychology, 50, 205–216.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Spohrer, J. C., Soloway, E. and Pope, E. (1985). A goal/plan analysis of buggy Pascal programs. Human-Computer Interaction, 1, 163–207.

    Google Scholar 

  • Webb, N. M. (1983). Predicting learning from student interaction: Defining the interaction variables. Educational Psychologist, 18, 33–41.

    Google Scholar 

  • Webb, N. M. (1984). Microcomputer learning in small groups: cognitive requirements and group processes. Journal of Educational Psychology, 76, 1076–1089.

    Google Scholar 

  • 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.

    Google Scholar 

  • Weiser, M. and Shertz, J. (1983). Programming problem representation in novice and expert programmers. International Journal of Man-Machine Studies, 19, 391–398.

    Google Scholar 

  • Wirth, N. (1974). On the composition of well-structured programs. Computing Surveys, 6, 247–259.

    Google Scholar 

  • Woodhouse, D. (1983). Introductory courses in computing: Aims and languages. Computer Education, 7(2), 79–89.

    Google Scholar 

  • Yourdon, E. (1975). Techniques of program structure and design. Englewood Cliffs, NJ.: Prentice-Hall.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Notes

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00120253

Keywords

Navigation