Litcius/Paper detail

Students' Use of GitHub Copilot for Working with Large Code Bases

Anshul Shah, Anya Chernova, Elena Tomson, Leo Porter, William G. Griswold, Adalbert Gerald Soosai Raj

202514 citationsDOIOpen Access PDF

Abstract

Large language models (LLMs) are already heavily used by professional software engineers. An important skill for new university graduates to possess will be the ability to use such LLMs to effectively navigate and modify a large code base. While much of the prior work related to LLMs in computing education focuses on novice programmers learning to code, less work has focused on how upper-division students use and trust these tools, especially while working with large code bases. In this study, we taught students about various GitHub Copilot features, including Copilot chat, in an upper-division software engineering course and asked students to add a feature to a large code base using Copilot. Our analysis revealed a novel interaction pattern that we call one-shot prompting, in which students ask Copilot to implement the entire feature at once and spend the next few prompts asking Copilot to debug the code or asking Copilot to regenerate its incorrect response. Finally, students reported significantly more trust in the code comprehension features than code generation features of Copilot, perhaps due to the presence of trust affordances in the Copilot chat that are absent in the code generation features. Our study takes the first steps in understanding how upper-division students use Github Copilot so that our instruction can adequately prepare students for a career in software engineering.

Topics & Concepts

Computer scienceCode (set theory)Source codeComputer securityProgramming languageSet (abstract data type)Teaching and Learning ProgrammingExperimental Learning in EngineeringMobile Learning in Education
Students' Use of GitHub Copilot for Working with Large Code Bases | Litcius