skip to main content
article
Free Access

What should we teach in an introductory programming course?

Authors Info & Claims
Published:01 January 1974Publication History
Skip Abstract Section

Abstract

An introductory course (and its successor) in programming should be concerned with three aspects of programming:

1. How to solve problems,

2. How to describe an algorithmic solution to a problem,

3. How to verify that an algorithm is correct.

I should like to discuss mainly the first two aspects. The third is just as important, but if the first two are carried out in a systematic fashion, the third is much easier than commonly supposed. (Note that the third step is not “debugging,” because the word “debugging” conveys the impression that errors are alright—that they are a natural phenomenon which, like flies in a house, must be found and swatted. If “debugging” was called “getting rid of one's mistakes,” I'm sure most programmers would change their attitude and work harder at producing a correct program initially.)

References

  1. 1 Conway, R. and D. Gries. An Introduction to Programming, Winthrop Pub., Cambridge, Mass., 1973.Google ScholarGoogle Scholar
  2. 2 Dahl, O.-J., E.W. Dijkstra, and C.A.R. Hoare. Structured Programming. Academic Press, New York, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Descartes, René. Discourse on Method, 1637. Can be found in numerous texts and anthologies in philosophy.Google ScholarGoogle Scholar
  4. 4 Dijkstra, E.W. Notes on Structured Programming. In {2}. This provided the impetus to the current wave of research and articles on the programming process and the structure of programs. Unfortunately, the term "structured programming" is not defined in it! Consequently, different people have different ideas on what the term means. It deserves to be read thoroughly by every programmer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Hyman, R. and B. Anderson. Solving Problems. International Science and Technology (Sept. 1965), 36-41.Google ScholarGoogle Scholar
  6. 6 McCracken, D. Is there a FORTRAN in your future? Datamation (May 1973) 236-237.Google ScholarGoogle Scholar
  7. 7 Poe, Edgar Allen. The Philosophy of Composition. Graham's Magazine, April 1846. (Appears in Stearn (editor), The Portable Poe, Viking Press, 1945. This amazing article describes how Poe wrote The Raven, "step by step, to its completion with the precision and rigid consequence of a mathematical problem." We would call it top-down programming.Google ScholarGoogle Scholar
  8. 8 Polya, G. How to Solve It. Princeton University Press, Princeton, N.J., 1945. Every instructor in an introductory programming course should read this book.Google ScholarGoogle Scholar
  9. 9 Wirth, N. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, N.J., 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. What should we teach in an introductory programming course?

      Recommendations

      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 ACM SIGCSE Bulletin
        ACM SIGCSE Bulletin  Volume 6, Issue 1
        Proceedings of the 4th SIGCSE symposium on Computer science education
        February 1974
        195 pages
        ISSN:0097-8418
        DOI:10.1145/953057
        Issue’s Table of Contents
        • cover image ACM Conferences
          SIGCSE '74: Proceedings of the fourth SIGCSE technical symposium on Computer science education
          January 1974
          194 pages
          ISBN:9781450374835
          DOI:10.1145/800183

        Copyright © 1974 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 January 1974

        Check for updates

        Qualifiers

        • article

      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!