Context and Creation in the Learning of Computer Programming

"'Chris Hancock is a project associate at Harvard's Educational Technology Center (ETC), a federally funded research center which investigates the uses of computers in education. Some of the ideas discussed here were developed in collaboration with other members of ETC's programming research group. Teaching and learning computer programming at the introductory level have both turned out to be difficult. Many students in high schools and colleges have had unrewarding experiences in programming courses and come away thinking "I'm not the kind of person who can do this." It's hard for those of us with a lot of programming background to appreciate the difficulties that novice programmers confront. Perhaps it's partly because we've worked with the basic concepts of programming for long enough that they now seen trivial. But another reason may be that there are some important ideas in programming that no-one made explicit to us when we learned to program. We picked these ideas up without realizing what we were learning, and even now we don't have words for some of our most fundamental knowledge.