How to Design Programs: An Introduction to Computing and Programming
It goes against the grain of modern education to teach
children to program. What fun is there in making plans,
acquiring discipline in organizing thoughts, devoting
attention to detail and learning to be self-critical?
-- Alan Perlis,
Epigrams in Programming
Many professions require some form of computer programming. Accountants program spreadsheets and
word processors; photographers program photo editors; musicians program synthesizers; and professional
programmers instruct plain computers. Programming has become a required skill.
Yet programming is more than just a vocational skill. Indeed,
is a fun activity, a
creative outlet, and a way to express abstract ideas in a tangible form. And designing programs teaches a
variety of skills that are important in all kinds of professions: critical reading, analytical thinking, creative
synthesis, and attention to detail.
We therefore believe that the study of program design deserves the same central role in general education
as mathematics and English. Or, put more succinctly,
everyone should learn how to design
On one hand, program design teaches the same analytical skills as mathematics. But, unlike mathematics,
working with programs is an active approach to learning. Interacting with software provides immediate
feedback and thus leads to exploration, experimentation, and self-evaluation. Furthermore, designing
programs produces useful and fun things, which vastly increases the sense of accomplishment when
compared to drill exercises in mathematics. On the other hand, program design teaches the same
analytical reading and writing skills as English. Even the smallest programming tasks are formulated as
word problems. Without critical reading skills, a student cannot design programs that match the
specification. Conversely, good program design methods force a student to articulate thoughts about
programs in proper English.
../How%20to%20Design%20Programs/curriculum-Z-H-2.html (1 of 12) [2/5/2008 4:36:43 PM]