ELLIOT SOLOWAY Yale University
In this chapter, I argue that students need to learn how to build things, and thus they need to be explicitly taught synthesis skills. Programming, as I have redefined it, is an excellent vehicle for teaching and learning these skills. Moreover, these skills will be ever more important when the computer becomes all pervasive in our society; soon, we will be acting on the world through the computer. People will need to know how to take advantage of the unique aspects of software technology: the almost limitless ability to develop new functionality, to mold the software to the specific needs and wants of the individual. The ability to use synthesis skills will be the Rosetta Stone for this access.
The excitement and interest in computer education waxes and wanes. A few years ago, the computer literacy movement was a major force in schools. Children were taught BASIC programming, about disk drives, and about the binary numbers inside the computer. Today, there appears to be less urgency in having children know about computers per se; the emphasis seems to be on teaching students to use a computer as just another tool. However, we also need to prepare students to deal with the world of tomorrow. In doing so, we need to ask the following questions: (1) What roles will computers play tomorrow--say, in 2020? (2) What will the style of interacting be with those computers? (3) How much will people need to know about computers to use them effectively? (4) What will we teach students about computers in 2020?