Timely, personalized feedback is essential for students learning programming, especially as class sizes expand. LLM-based tools like ChatGPT offer instant support, but reveal direct answers with code, which may hinder deep conceptual engagement. We developed CodeAid, an LLM-based programming assistant delivering helpful, technically correct responses, without revealing code solutions. For example, CodeAid can answer conceptual questions, generate pseudo-code with line-by-line explanations, and annotate 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 on CodeAid. Findings revealed students primarily used CodeAid for conceptual understanding and debugging, although a minority tried to obtain direct code. Educators appreciated CodeAid's educational approach, and expressed concerns about occasional incorrect feedback and students defaulting to ChatGPT.
翻译:及时且个性化的反馈对于学习编程的学生至关重要,尤其在班级规模日益扩大的背景下。基于LLM的聊天工具(如ChatGPT)虽能提供即时支持,但直接给出代码答案可能阻碍深层概念理解。为此,我们开发了CodeAid——一款基于LLM的编程助教,能够在提供有用且技术正确响应的同时避免直接展示代码解决方案。例如,CodeAid可解答概念性问题、生成逐行解释的伪代码,并对学生的错误代码进行标注并提出修改建议。我们在一个700名学生的编程班级中部署了CodeAid,并开展了为期12周的教学实验。通过对8000次CodeAid使用记录的主题分析,结合每周问卷调查及22次学生访谈,进一步深化了研究。此外,我们采访了八位编程教育者以获取对CodeAid的深层见解。结果表明:学生主要使用CodeAid进行概念理解与代码调试,但少数人试图获取直接代码;教育者认可CodeAid的教学方法,同时对偶发的错误反馈及学生转向ChatGPT的倾向表示担忧。