Automating the planning and construction of programming assignments for teaching introductory computer programming

This chapter describes CASCO, an automated system for the planning and construction of programming tasks for introductory computer programming. The generated tasks have the form of completion assignments, which consist of an incomplete example program with (a) instructions to complete, extend or change the program so that it meets certain specifications, (b) explanations on new features that are illustrated by parts of the incomplete program, and (c) questions on the working and the structure of the program. The planning and construction of the completion assignments is based on a model in terms of programming plans, student profile, and problem database.