The field of computer science changes rapidly, and this change occurs as well in the introductory curriculum. Formerly advanced topics filter down to the first year, and even to secondary school; some topics disappear completely. These changes are good---they indicate a dynamic discipline and a still-emerging picture of the field's fundamental principles. But we must not let our revolutionary zeal blind us to the pedagogical need and conceptual value of time-tested material. Many topics and approaches that are well understood and now unfashionable should retain their place in the introductory curriculum, where they serve as intellectual ballast, foundation, and motivation for the more current and trendier content. We argue here for balance: that radical change be tempered by an appreciation for the place of long-standing approaches and underlying fundamentals. Those advocating curricular change must articulate their educational goals fully and consider explicitly what effect on those goals they expect the change to have; they must not throw the baby out with the bathwater.
[1]
Gerald J. Sussman,et al.
Structure and interpretation of computer programs
,
1985,
Proceedings of the IEEE.
[2]
Donald E. Knuth,et al.
Structured Programming with go to Statements
,
1974,
CSUR.
[3]
Edsger W. Dijkstra,et al.
Go To Statement Considered Harmful
,
2022,
Software Pioneers.
[4]
James H. Cross,et al.
Team dynamics in student programming projects
,
1994,
SIGCSE '94.
[5]
Edsger W. Dijkstra,et al.
Letters to the editor: go to statement considered harmful
,
1968,
CACM.
[6]
Richard E. Pattis.
The “procedures early” approach in CS 1: a heresy
,
1993,
SIGCSE '93.
[7]
M.N. Sastry,et al.
Structure and interpretation of computer programs
,
1986,
Proceedings of the IEEE.
[8]
Linda A. Macaulay.
Cooperation in understanding user needs and requirements
,
1995
.