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

UC Riverside

UC Riverside Electronic Theses and Dissertations bannerUC Riverside

Detecting Students of Concern in Introductory Programming Classes: Techniques to Indicate Potential Struggle or Cheating

Abstract

This work is motivated by the observation that interest in computer science continues to grow, but failure rates in introductory programming courses ("CS1") have been concerning. Student frustration is a common source of dissatisfaction, attrition, and cheating in programming courses. A common cause of frustration is getting “stuck”, what we call struggling, on programming tasks, where students spend excessive time or make excessive attempts on a problem with little progress. We argue that early detection of struggle and cheating can help students, where instructors can provide early proper intervention. This dissertation addresses two problems: (1) Detecting and preventing struggle, and (2) Detecting and preventing cheating. The focus is mostly in CS1 but the work may apply to various programming courses. First, this work addresses the problem of how to identify struggle. We develop techniques and tools to measure and detect student struggle. A key novelty here is to identify programming errors that cause struggle rather than just errors that slightly annoy students, or common errors that may not cause struggle. This is important because some struggle is a normal part of learning to program.Second, this work addresses the problem of how to identify cheating. Many CS instructors use code similarity detection tools (such as Moss) to detect copied solutions shared among students in class. However, the code similarity detection approach is not effective to detect cheating when students submit unique solutions. Due to the accessibility and affordability of online “tutoring” services, a student can get a unique solution in a few minutes for about $1 (with a monthly subscription), even while the student is in a lab session. A key novelty here is to detect cheating that may not be detected by the code similarity approach. We propose techniques and tools to detect cheating. We show that our techniques and tools are powerful and able to identify and detect struggle and cheating in CS1 classes with good accuracy in a short time. To maximize the impact of our work, we plan to make our tools available to the CS community as free web tools. The techniques and tools can help improve education in CS1 and other programming courses.

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