Why I care about programming and how to teach it


Journal Article

This is the thirty-fifth SIGCSE conference. Off-by-one bugs notwithstanding, it seems safe to assume that the members of the SIGCSE community have been teaching programming for at least 35 years. Have we improved the teaching of programming in that time? We have changed languages, we have occasionally changed paradigms, and the platform we use to teach programming is effectively infinitely more powerful than it was 35 years ago. However, if we use the SIGCSE proceedings as a snapshot of the state-of-the-art in teaching programming, it's possible to take a view that "the more things change the more they remain the same." In this talk I'll review what the community has had to say about teaching programming and what it is saying today. The community does not always speak in one voice, but there are established trends that illuminate what we as a community view as important. In 1974 David Gries discussed how we should teach programming and used this analogy: "Suppose you attend a course in cabinet making. The instructor briefly shows you a saw, a plane, a hammer, and a few other tools, letting you use each one for a few minutes. He next shows you a beautifully-finished cabinet. Finally, he tells you to design and build your own cabinet and bring him the finished product in a few weeks. You would think he was crazy!" As part of this talk I will demonstrate how I teach program-building and why I think that if we do not program in front of our students we cannot effectively teach programming. I hope to convince you that programming should be taught by demonstration and that I am not crazy.

Full Text

Duke Authors

Cited Authors

  • Astrachan, O

Published Date

  • March 1, 2004

Published In

Volume / Issue

  • 36 / 1

Start / End Page

  • 235 -

Electronic International Standard Serial Number (EISSN)

  • 0097-8418

International Standard Serial Number (ISSN)

  • 0097-8418

Digital Object Identifier (DOI)

  • 10.1145/1028174.971302

Citation Source

  • Scopus