Measuring the effects of low assistive vs. moderately assistive environments on novice programmers
Improving the novice's experience with programming has been an important research topic for some time. The high attrition rate of CS majors continues to be a problem. Incoming majors are being exposed to programming but many are driven away from the field. As a way to engage novices with programming, many CS departments have adopted visual environments. However, not all novices are taught to program using visual environments. Typically, students are introduced to programming through either a visual or command line environment at the beginning stages of a CS curriculum. The features in standard command line environments are not as assistive to programmers as visual environments. Novices must learn both language syntax and semantics while navigating the file system and compilation tools. On the other hand, visual environments with highly assistive features could constrict a novice to learn a fixed set of foundational programming skills that exclude exposure to syntax checking, compilation and file systems. Novices will eventually need to move to a less assistive environment to round out their skill set. The objective of this research was to determine if certain environments are more appropriate for teaching novices how to program, based on their respective levels of feature assistance. There are anecdotally based motivations for using either tools with low assistive features like command line environments (promotes acquisition of useful mental models) or tools with moderate to high assistive features like visual environments (engages novices while programming). Unfortunately, no systematic study exists that supports either supposition. This research was composed of three studies for evaluating environments with varying feature sets: a high school outreach, a CS1-Laboratory Study, and a CS1-Study. Engagement, comprehension, efficiency, and usability were used as measures to evaluate the environments during these studies. Overall, this research showed that a moderately assistive environment imposes a lower learning curve for novices, while a low assistive environment appears to broaden their understanding of programming.