How could an appropriately structured environment facilitate the acquisition of programming skills? Significant theoretical strides are needed before human-quality performance can be expected from a computer-based programming tutor. As an intermediate step, a system has been implemented which serves primarily as an editing language and diligent clerk. However, it differs from conventional programming environments in two crucial ways: (1) it interacts with the student using a vocabulary of concepts about planning and debugging, derived from an explicit model of the design process; and (2) it actively prompts the student with a menu of design alternatives, within the overall framework of a mixed-initiative dialogue. The current system is not a tutor; but the process of implementing and testing it has been instrumental in refining our model of the design process, thereby bringing us a step closer to realizing a computer-based programming tutor.
Read full abstract