skip to main content
article
Free Access

Learning to program = learning to construct mechanisms and explanations

Published:01 September 1986Publication History
Skip Abstract Section

Abstract

Teaching effective problem-solving skills in the context of teaching programming necessitates a revised curriculum for introductory computer programming courses.

References

  1. 1 Adelson. B. Problem solving and tht: development of abstract categories in programming languages. Mem. Cognitior~ 9 (1981), 422-433.Google ScholarGoogle ScholarCross RefCross Ref
  2. 2 Adelson. B., and Soloway. E. The role of domain experience in software design. IEEE Trans. Softw. Eng. (Nov. 1975). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Bartlett, F.C. Remembering. University Press. Cambridge, Mass., 1932.Google ScholarGoogle Scholar
  4. 4 Bower, G.H., Black, J.B., and Turner. T. Scripts in memory for text. Cognitive Psychd. 17 (1979). 177-220.Google ScholarGoogle Scholar
  5. 5 Brooks. R. Towards a theory of the comprehension of computer programs. ItIt. J. Man-Mach. Stud. 18 (1983), 543-554.Google ScholarGoogle ScholarCross RefCross Ref
  6. 6 Chase, W.C. and Simon, H. Perception in chess. Cognitive Psychol. 4 (19731, 55-81.Google ScholarGoogle ScholarCross RefCross Ref
  7. 7 Collins, A. Explicating the tacit knowledge in teaching and learning. Tech. Rep. 3889. Bolt, Beranek and Newman, Cambridge, Mass., 1978.Google ScholarGoogle Scholar
  8. 8 Curtis. B. Tutorial: Human Factors in Software Development. IEEE Computer Society, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Graesser, A.C. Prose Comprehension beyond the Word. Springer-Verlag. New York, 1981.Google ScholarGoogle ScholarCross RefCross Ref
  10. 10 Howe. J.A.M. O'Shea, T., and Plane, J. Teaching mathematics through Logo programming. Tech. Rep. 115, Artificial Intelligence, Univ. of Edinburgh, Scotland. 1979.Google ScholarGoogle Scholar
  11. 11 Johnson, W.L. Intention-based diagnosis of errors in novice programs. Ph.D. thesis 246. Dept. of Computer Science, Yale Univ., New Haven, Corm. 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Joni. S. and Soloway. E. But my program runs! Discourse rules for novice programmers. J. Educ. Comput. Res. To be published.Google ScholarGoogle Scholar
  13. 13 Kant. E. and Newell. A. Problem solving techniques for the design of algorithms. Tech. Rep. CMU-C S-82-145, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., 198'2.Google ScholarGoogle Scholar
  14. 14 Kernighan. B. and Plauger. P. The EJements of Style. McGraw-Hill, New York. 1978.Google ScholarGoogle Scholar
  15. 15 Larkin. I. McDermott. I., Simon, D. and Simon. H. Expert and novice performance in solving physics problems. Science 208 (198), 140-156.Google ScholarGoogle Scholar
  16. 16 Ledgard. H., Hueras, J. and Nagin, P. Pascal with Style: Programming Proverbs. Hayden Book Co., Rochelle Park, N.J., 1979.Google ScholarGoogle Scholar
  17. 17 Linn. MC. The cognitive consequences of programming instruction in classrooms. Educ. Res. 14, 5 (1985). 14-29.Google ScholarGoogle ScholarCross RefCross Ref
  18. 18 Littman, D., Pinto. I., Letovsky, S., and Soloway, E. Software maintenance and mental models. In Empirical Studies of Programmers, E. Soloway and S. lyengar. Eds. Ablex, New York, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 McKeithen. K.B. Reitman, J.S. Rueter. H.H., and Hirtle, S.C. Knowledge organization and skill differences in computer programmers. Cognifiue Psychol. 13 (1981), 307-325.Google ScholarGoogle ScholarCross RefCross Ref
  20. 20 Michener. E.R. Understanding understanding mathematics. Cognitive Sci. 2 (1978). 283-327.Google ScholarGoogle Scholar
  21. 21 Papert. S. Mindstorms, Children, Compufers and Powerful Ideas. Basic Books, New York, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Parnas, D. Software aspects of strategic defense systems. Am. Sci. 73 (1985). 432-440.Google ScholarGoogle Scholar
  23. 23 Pea. R., and Kurland, D. Logo programming and the development of planning skills. Tech. Rep. 16, Center for Children and Technology, Bank Street College of Education, New York, 1984.Google ScholarGoogle Scholar
  24. 24 Resnick, L. Mathematics and science learning: A new conception. Science 220 (19831, 477-478.Google ScholarGoogle ScholarCross RefCross Ref
  25. 25 Rich. C. Inspection methods in programming. Tech. Rep. AI-TR-604, AI Laboratory, MIT, Cambridge, Mass., 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 Schank. R.C., and Abelson, R. Scripts, Plans, Goals and Understanding. Lawrence Erlbaum Associates, Hillsdale, N.J., 1977.Google ScholarGoogle Scholar
  27. 27 Shneiderman, B. Exploratory experiments in programmer behavior. Jut. 1. Comput. Juf. Sri. 5, 2 (1976). 123-143.Google ScholarGoogle Scholar
  28. 28 Shneiderman, B. Software Psychology: Human Factors in Compufer and Information Systems. Winthrop Publishers. Cambridge, Mass. 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Soloway, E. From problems to programs via plans: The content and structure of knowledge for introductory LISP programming. I. Educ. Comput. Res. (Summer 1985).Google ScholarGoogle Scholar
  30. 30 Soloway, E. Programming and problem solving in Pascal. In preparation.Google ScholarGoogle Scholar
  31. 31 Soloway, E., and Ehrlich, K. Empirical studies of programming knowledge. IEEE Trans. Softw. Eng. SE-IO. 5 (1984). 595-609.Google ScholarGoogle Scholar
  32. 32 Soloway, E., and Iyengar. S. Empirical Studies of Programmers. Ablex, New York, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33 Soloway. E., Lochhead, J. and Clement, J. Does computer programming enhance problem solving ability? Some positive evidence on algebra word problems. In Computer Literacy, R. Seidel, B. Hunter, and R. Anderson, Eds. Academic Press, New York, 1982, pp. 171-215.Google ScholarGoogle Scholar
  34. 34 Soloway. E. Ehrlich, K. Bonar, J. and Greenspan. J. What do novices know about programming? In Directions in Human-Computer Interactions, A. Badre and B. Shneiderman. Eds. Ablex. New York, 1982.Google ScholarGoogle Scholar
  35. 35 Spohrer. J. and Soloway, E. Novice mistakes: Are the folk wisdoms correct? Commurt. ACM 29, 7 (July 1986). 624-632. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36 Spohrer, J., and Soloway. E. Analyzing the high-frequency bugs in novice programs. In Empirical Studies of Programmers, E. Soloway and S. Iyengar. Eds. Ablex. New York, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37 Spohrer. J., Soloway, E., and Pope, E. A goal/plan analysis of buggy Pascal programs. Hum.-Comput, Inferaction 1, 2 (1985).Google ScholarGoogle Scholar

Index Terms

  1. Learning to program = learning to construct mechanisms and explanations

              Recommendations

              Reviews

              Grady Gaston Early

              Soloway states clearly and explicitly what many of us have known for years: introductory programming courses should concentrate less on computer programming and more on algorithm development. Further, the beginning course should be used to communicate to students many of the common programming idioms or “stereotypical solutions” that are used repeatedly to solve problems. The input-process-output idiom, various sorting and searching idioms, etc., should be demonstrated to students. According to Soloway, students should also be taught various plans for constructing algorithms by combining idioms in various ways. Abutment allows two idioms to be catenated for sequential execution. Nesting allows one idiom to surround another. Merging allows two idioms to proceed simultaneously. Tailoring allows one to modify an “almost works” solution so that it fits a new situation. It seems to me that it may be true that the Moore, or Texas, method of mathematics instruction is valuable for some students. A student may develop a deeper understanding of a topic if that student “discovers” the topic for himself by starting with first principles so as to reinvent the discipline. But many students do not have the time for such a plan. Nor do most CS departments have the faculty to support a leisurely, Socratic method. In such cases, I believe it is more cost-effective to teach the idioms as we teach multiplication facts: present the “why,” of course, but insist on memorization as well. Finally, programmers use many tools to construct problem solutions. To this reviewer, it makes no more sense to turn novice programmers loose in a shop full of tools, without rigorous instruction in the use of those tools, than to turn a novice machinist loose in a machine shop with a similar lack of instruction. We now have many programming idioms that have been developed over hundreds of years of collective effort. I believe we must pass on these idioms to our successors in a much shorter period of time.

              Access critical reviews of Computing literature here

              Become a reviewer for Computing Reviews.

              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

              • Published in

                cover image Communications of the ACM
                Communications of the ACM  Volume 29, Issue 9
                Sept. 1986
                82 pages
                ISSN:0001-0782
                EISSN:1557-7317
                DOI:10.1145/6592
                • Editor:
                • P. J. Denning
                Issue’s Table of Contents

                Copyright © 1986 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 September 1986

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader