Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

What should we teach in an introductory programming course?

Published: 01 January 1974 Publication History

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]
Conway, R. and D. Gries. An Introduction to Programming, Winthrop Pub., Cambridge, Mass., 1973.
[2]
Dahl, O.-J., E.W. Dijkstra, and C.A.R. Hoare. Structured Programming. Academic Press, New York, 1972.
[3]
Descartes, René. Discourse on Method, 1637. Can be found in numerous texts and anthologies in philosophy.
[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.
[5]
Hyman, R. and B. Anderson. Solving Problems. International Science and Technology (Sept. 1965), 36-41.
[6]
McCracken, D. Is there a FORTRAN in your future? Datamation (May 1973) 236-237.
[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.
[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.
[9]
Wirth, N. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, N.J., 1973.

Cited By

View all
  • (2023)Introduction to programming Using CleanProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 210.1145/3587103.3594176(655-655)Online publication date: 29-Jun-2023
  • (2018)Measuring students' attitudes toward information technologyJournal of Computing Sciences in Colleges10.5555/3199572.319958633:4(101-102)Online publication date: 1-Apr-2018
  • (2018)A multilingual and comparative approach to teaching introductory computer programmingJournal of Computing Sciences in Colleges10.5555/3199572.319957333:4(4-12)Online publication date: 1-Apr-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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: 01 January 1974
Published in SIGCSE Volume 6, Issue 1

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)277
  • Downloads (Last 6 weeks)17
Reflects downloads up to 10 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Introduction to programming Using CleanProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 210.1145/3587103.3594176(655-655)Online publication date: 29-Jun-2023
  • (2018)Measuring students' attitudes toward information technologyJournal of Computing Sciences in Colleges10.5555/3199572.319958633:4(101-102)Online publication date: 1-Apr-2018
  • (2018)A multilingual and comparative approach to teaching introductory computer programmingJournal of Computing Sciences in Colleges10.5555/3199572.319957333:4(4-12)Online publication date: 1-Apr-2018
  • (2016)Voluntary participation in discussion forums as an engagement indicatorProceedings of the 28th Australian Conference on Computer-Human Interaction10.1145/3010915.3010967(489-493)Online publication date: 29-Nov-2016
  • (2015)Teaching computer programmingProceedings of the 2015 IEEE Frontiers in Education Conference (FIE)10.1109/FIE.2015.7344184(1-9)Online publication date: 21-Oct-2015
  • (2014)Issues in Teaching the Introductory Course in Computers in Business CurriculumAEDS Journal10.1080/00011037.1980.1100828814:1(45-51)Online publication date: 11-Nov-2014
  • (2014)The Required Business Computing Course: Peer-Group Learning with a Managerial EmphasisAEDS Journal10.1080/00011037.1978.1100822711:3(73-83)Online publication date: 11-Nov-2014
  • (2011)A Collaborative and Adaptive Design Pattern of the Jigsaw Method within Learning Design-Based E-Learning SystemsTechnology-Enhanced Systems and Tools for Collaborative Learning Scaffolding10.1007/978-3-642-19814-4_11(239-255)Online publication date: 2011
  • (2008)Optimists have more fun, but do they learn better? On the influence of emotional and social factors on learning introductory computer scienceComputer Science Education10.1080/0899340070179113318:1(1-16)Online publication date: Mar-2008
  • (1984)Identifying predictors of programming skillACM SIGCSE Bulletin10.1145/382200.38254416:4(36-42)Online publication date: 1-Dec-1984
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media