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.