CodeAid: Evaluating a Classroom Deployment of an LLM-based Programming Assistant that Balances Student and Educator Needs
This addresses the need for effective programming assistance for students while balancing educator concerns about over-reliance on AI, though it is incremental in refining existing LLM applications for education.
The researchers tackled the problem of providing timely, personalized feedback in programming education without hindering deep learning by developing CodeAid, an LLM-based assistant that avoids revealing direct code solutions. They deployed it in a class of 700 students over 12 weeks, analyzing 8,000 usages and conducting surveys and interviews to identify key design considerations for educational AI tools.
Timely, personalized feedback is essential for students learning programming. LLM-powered tools like ChatGPT offer instant support, but reveal direct answers with code, which may hinder deep conceptual engagement. We developed CodeAid, an LLM-powered programming assistant delivering helpful, technically correct responses, without revealing code solutions. CodeAid answers conceptual questions, generates pseudo-code with line-by-line explanations, and annotates student's incorrect code with fix suggestions. We deployed CodeAid in a programming class of 700 students for a 12-week semester. A thematic analysis of 8,000 usages of CodeAid was performed, further enriched by weekly surveys, and 22 student interviews. We then interviewed eight programming educators to gain further insights. Our findings reveal four design considerations for future educational AI assistants: D1) exploiting AI's unique benefits; D2) simplifying query formulation while promoting cognitive engagement; D3) avoiding direct responses while encouraging motivated learning; and D4) maintaining transparency and control for students to asses and steer AI responses.