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.)
- 1 Conway, R. and D. Gries. An Introduction to Programming, Winthrop Pub., Cambridge, Mass., 1973.Google Scholar
- 2 Dahl, O.-J., E.W. Dijkstra, and C.A.R. Hoare. Structured Programming. Academic Press, New York, 1972. Google Scholar
Digital Library
- 3 Descartes, René. Discourse on Method, 1637. Can be found in numerous texts and anthologies in philosophy.Google Scholar
- 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 Scholar
Digital Library
- 5 Hyman, R. and B. Anderson. Solving Problems. International Science and Technology (Sept. 1965), 36-41.Google Scholar
- 6 McCracken, D. Is there a FORTRAN in your future? Datamation (May 1973) 236-237.Google Scholar
- 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 Scholar
- 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 Scholar
- 9 Wirth, N. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, N.J., 1973. Google Scholar
Digital Library
Index Terms
What should we teach in an introductory programming course?
Recommendations
What should we teach in an introductory programming course?
SIGCSE '74: Proceedings of the fourth SIGCSE technical symposium on Computer science educationAn 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 ...
An object-oriented program development environment for the first programming course
Over the last ten years there has been a major shift in programming language design from procedural languages to object-oriented languages. Most universities have adopted an object-oriented language for their first programming course. However, far less ...
An introductory COBOL course with structured programming
SIGCSE '76: Proceedings of the ACM SIGCSE-SIGCUE technical symposium on Computer science and educationORIS 316 was designed as a core course to teach COBOL programming language and Business Information Systems to students majoring in Business Computer Information Systems. Students from other areas such as Mathematics, Computer Science, Sociology, ...






Comments