ABSTRACT
The task of specializing programming environments for novices begins with the
recognition that programming is a hard skill to learn. The lack of student
programming skill even after a year of undergraduate studies in computer science
was noted and measured in the early 80’s (Soloway, Ehrlich, Bonar, & Greenspan,
1982) and again in this decade (McCracken, Almstrum, Diaz, Guzdial, Hagan,
Kolikant, Lazer, Thomas, Utting, & Wilusz 2001). We know that students have
problems with looping constructs (Soloway, Bonar, & Ehrlich, 1983),
conditionals (Green, 1977), and assembling programs out of base
components (Spohrer & Soloway, 1985)—and there are probably other factors, and
interactions between these factors, too.