摘要:
In education, many assessments boil down to getting the correct solution or necessary result to receive credit. This end goal mentality, in turn, influences how educators transfer knowledge to students. For example, some educators may present or walk through completed solutions. However, continually displaying and using worked-out solutions to teach can quickly become an obstruction to learning. In computer science, a significant amount of learning occurs while fixing the errors that litter the pathway from a blank page to a working solution. This dissertation establishes a methodology for teaching from student errors in computer science. The first part of the dissertation establishes how we developed over fifty lightweight exercises to integrate into a ten-week course without content replacement. Using past research in computer science, education theory, and cognitive load theory, we developed and refined a standard exercise structure that incorporates student submissions containing erroneous code, past student solutions presented during student-instructor interactions, and instructor feedback. Collectively, our core exercises are known as "What's Wrong With My Code" exercises. Next, we evaluated the "What's Wrong With My Code" exercises in three distinct ways. First, we performed a study to assess student improvement when using our exercises in place of current course activities (e.g., CodeLab). Second, we analyzed the differences in student error encounters for an entire term by comparing error counts in prior course offerings to offerings with our exercises integrated into the weekly course workload. Lastly, we evaluated student self-efficacy improvements over an entire term by comparing offerings with and without our exercises. In each of the studies, our exercises proved beneficial with increased student performance (with effect sizes of 0.56 and 0.42), increased self-efficacy (p-value < 0.05), and diminished student error encounter rates. Finally, we used our