An introductory course (and its successor) in programming should be concerned with three aspects of programming: I. 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.) I want to indicate what I feel is being taught as opposed to what should be taught. My main theme is, of course, structured programming, but I will discuss some other points. For example, I will outline a replacement for that crutch the computer industry has been using for so long, the flow chart. While my remarks are aimed at the instructors of introductory programming courses, I feel they are important to the whole programming profession. Let us begin with the first aspect of programming, problem solving.
CITATION STYLE
Gries, D. (1974). What should we teach in an introductory programming course? In Proceedings of the 4th SIGCSE Technical Symposium on Computer Science Education, SIGCSE 1974 (pp. 81–89). Association for Computing Machinery. https://doi.org/10.1145/800183.810447
Mendeley helps you to discover research relevant for your work.