Skip to main content
eScholarship
Open Access Publications from the University of California

UC Riverside

UC Riverside Electronic Theses and Dissertations bannerUC Riverside

A Methodology for Teaching from Student Errors in Computer Science Education

Abstract

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 methodology to implement additional exercises to demonstrate a pathway for use beyond common errors. Specifically, we developed exercises to teach programming style in an introductory C++ computer science course. We evaluated the style exercises alongside data from seven years of submissions, which spanned four different instructional methods of teaching programming style. Our research concludes that students showed increased use of proper programming style before receiving any assessment feedback in academic terms that utilized our exercises. Additionally, we discovered that using an automatic assessment tool with an assigned style grade significantly improves the use of proper programming style.

This dissertation creates a methodology for teaching from student errors in any computer science course, utilizes the methodology to provide multiple implementations and use case examples for an introductory computer science course in C++, and suggests concrete changes for computer science course instructors.

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View