How Do Programming Students Use Generative AI?
arXiv:2501.10091 · doi:10.1145/3715762
Abstract
Programming students have a widespread access to powerful Generative AI tools like ChatGPT. While this can help understand the learning material and assist with exercises, educators are voicing more and more concerns about an overreliance on generated outputs and lack of critical thinking skills. It is thus important to understand how students actually use generative AI and what impact this could have on their learning behavior. To this end, we conducted a study including an exploratory experiment with 37 programming students, giving them monitored access to ChatGPT while solving a code authoring exercise. The task was not directly solvable by ChatGPT and required code comprehension and reasoning. While only 23 of the students actually opted to use the chatbot, the majority of those eventually prompted it to simply generate a full solution. We observed two prevalent usage strategies: to seek knowledge about general concepts and to directly generate solutions. Instead of using the bot to comprehend the code and their own mistakes, students often got trapped in a vicious cycle of submitting wrong generated code and then asking the bot for a fix. Those who self-reported using generative AI regularly were more likely to prompt the bot to generate a solution. Our findings indicate that concerns about potential decrease in programmers' agency and productivity with Generative AI are justified. We discuss how researchers and educators can respond to the potential risk of students uncritically over-relying on Generative AI. We also discuss potential modifications to our study design for large-scale replications.
preprint; accepted to ACM International Conference on the Foundations of Software Engineering (FSE) 2025
References in corpus (15)
- Evaluating Large Language Models Trained on Code
- The Robots are Here: Navigating the Generative AI Revolution in Computing Education
- Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming
- "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers
- Comparing Code Explanations Created by Students and Large Language Models
- How is ChatGPT's behavior changing over time?
- Exploring the Responses of Large Language Models to Beginner Programmers' Help Requests
- Thrilled by Your Progress! Large Language Models (GPT-4) No Longer Struggle to Pass Assessments in Higher Education Programming Courses
- Is Stack Overflow Obsolete? An Empirical Study of the Characteristics of ChatGPT Answers to Stack Overflow Questions
- ChatGPT in the classroom. Exploring its potential and limitations in a Functional Programming course
- ChatGPT Beyond English: Towards a Comprehensive Evaluation of Large Language Models in Multilingual Learning
- Knowledgeable or Educated Guess? Revisiting Language Models as Knowledge Bases
- Can Developers Prompt? A Controlled Experiment for Code Documentation Generation
- DebugBench: Evaluating Debugging Capability of Large Language Models
- On AI-Inspired UI-Design
Cited by in corpus (3)
- From Pilots to Practices: A Scoping Review of GenAI-Enabled Personalization in Computer Science Education
- "I Would Have Written My Code Differently'': Beginners Struggle to Understand LLM-Generated Code
- Examining the Usage of Generative AI Models in Student Learning Activities for Software Programming