Computer science is no more about computers than astronomy is about telescopes.
—E. W. Dijkstra
We begin by investigating how we teach programming languages now (and what's wrong with it). Consider the following two situations:
Student X has 200 data files nnn.dat with nnn ranging from 1 to 200. X wants to transform them to plain text (ASCII) with a program dat2asc which should be called thus for each file: dat2asc nnn.dat nnn.asc. X doesn't know how to accomplish that! Two solutions present themselves to X: generate an Excel spreadsheet with the correct commands—200 nearly identical lines—and write...