AI-Tutoring in Software Engineering Education

AI-Tutoring in Software Engineering Education

基本信息

2024ICSE-Software Engineering Education and Training

博客贡献人

柴进

作者

Eduard Frankford, Clemens Sauerwein, Patrick Bassner, Stephan Krusche, Ruth Breu

标签

编程教育,自动编程评估系统

摘要

    随着人工智能(AI)在各个领域的快速发展,人工智能驱动的工具在教育方面表现出巨大的潜力,尤其是在编程方面。然而,目前的研究中缺少对大语言模型(LLMs)作为自动编程评估系统 (APAS)AI-Tutor的科学评估。 因此,为了了解学生如何与基于LLMs的AI-Tutor进行互动,并分析他们的体验,这篇文章展开了探索性的案例研究。

    具体而言,本文在APAS Artemis中集成GPT-3.5-Turbo模型作为人工智能导师,并通过经验数据收集探索性调查的结合,根据用户与人工智能导师的互动模式确定了不同的用户类型。此外,研究结果强调了该模式的及时反馈性和可扩展性。这项研究增加了关于人工智能在教育中的作用的讨论。

问题定义

    传统的智能教学系统(Intelligent Tutoring System ITS)能提供个性化的学习体验,但其对有限训练数据的依赖限制了它们对特定场景的适用性,以及反馈的范围和深度,从而阻碍了在不同的教育背景下更广泛地使用。

    另一方面,大量研究证明了ChatGPT在向学生提供个性化反馈上的潜在优势,同时部分研究记录了ChatGPT在改进代码应用上的有效性。然而,现有的实证研究大多集中在模型代码调试、代码生成以及提供提示的能力,缺少在APAS中使用AI-Tutor时,探究学生真实体验、交互模型和感知的科学调查。

    本文围绕以下三个问题展开:

  • 在AI-Tutor的帮助下,学生与自动编程评估系统的交互是怎样的?
  • 基于LLMs的编程反馈,学生的体验感如何?
  • 在自动编程评估系统中应用AI-Tutor的启发有哪些?

    本文的工作具体有以下两点:

  • 探索将基于LLMs的人工智能导师集成到APAS的有效性和意义。采集了人工智能导师的使用、学生互动、代码提交和反馈时间。
  • 分析了每次提交之间的代码变化,以了解学生与人工智能导师的参与模式。

方法

AI-Tutor集成到APAS

    该研究选用Artemis作为自动编程评估系统,原因如下:

  1. Artemis是开源项目,易获得、可复现
  2. 具有基本功能,能够通过测试驱动反馈进行自动练习评估
  3. 在线代码编辑器,更方便
  4. 具有庞大的用户群,较可靠

在这里插入图片描述

图1. Artemis集成AI-Tutor的工作流程

    如图所示,整个工作流程可以简述为:教师准备一个练习(包括问题描述、模板文件、解决方案示例、单元测试);学生完成练习并提交;系统反馈结果(执行测试用例,返回测试结果和其他信息)

    应用AI-Tutor后,当学生选择“View AI Feedback”时,会将学生的当前代码、练习描述、示例代码进行组合,调用API请求OpenAI的服务,返回的反馈信息显示在弹窗中。

在这里插入图片描述

图2. 界面展示

    文中采用了统一的prompt模板,旨在简化学生与大模型的互动,避免敏感及无效信息的交互,确保提供一致的教学反馈,减少API会话资源。构建的prompt如下图所示,首先让LLM扮演一名导师,给出非代码形式的指导意见。

  • language:反馈的语言。

  • description:任务问题的描述。本文选用了杨辉三角形这一任务进行研究,因为这一问题涉及了基础的编程结构(循环、条件、数组、动态内存管理),递归和迭代的算法思想概念重叠(在数学和计算机领域都有这一概念),问题解法的多样性,编程过程中潜在问题的普遍性

  • current:学生当前提交的代码。

  • solution:教师设置的参考代码。

在这里插入图片描述

图3. prompt

    与此同时,系统会记录当前问题、当前代码、LLM反馈信息、用户、时间戳等数据。

探索性调查
实验设置

    实验对象为23名初学C语言的学生

    实验内容为设置一周的时间,要求学生完成杨辉三角形的编程任务,并提交到自动编程评估系统中,期间学生可以自主选择是否使用“View AI-Feedback”接受LLM的反馈。最后,在课堂上要求学生完成调查问卷,以评估学生对AI-Tutor的易用性(Perceived Ease of Use , PEOU)和有用性(Perceived Usefulness, PU)。

问卷设置
问题考察角度结果
我认为AI-Tutor很容易使用易用性1.29
使用AI-Tutor能更快速地完成任务有用性-0.29
使用AI-Tutor能提高我的表现有用性-0.43
使用AI-Tutor能提高我的工作效率/产出有用性-0.43
使用AI-Tutor能更容易地完成任务易用性&有用性0.14
我认为AI-Tutor很有用有用性0.14
使用AI-Tutor时遇到了哪些挑战?开放性
对于AI-Tutor的改进建议?开放性

结果

学生互动

    进行数据分析时,过滤掉未在APAS上传代码和未与AI-Tutor进行交互的学生记录,最终对12名有意义的参与者进行评估。

在这里插入图片描述

    如图是12名学生与AI-Tutor以及APAS交互的时间分布,绿色节点代表学生向AI-Tutor请求反馈的时间,红色节点代表学生在APAS上传代码的时间。从以上时间线分布的不同,可以将学生分为两类:

  • 持续反馈 - Iterative Ivy

    代表了在首次提交给APAS之前,密集使用AI-Tutor的学生。这些学生经常在没有完整解决方案的情况下,向AI-Tutor寻求理解和解决练习的指导。经过多个反馈周期,学生逐步完善他们的解决方案。当AI-Tutor的反馈转向次要优化时,学生们倾向于将他们的作品提交给APAS,以获得满分。

  • 交替反馈 - Hybrid Harry

    代表了在整个编码过程中,在AI-Tutor反馈和APAS提交之间交替的学生。这些学生倾向于在建立他们的代码基础后,将代码提交给APAS。过程中,AI-Tutor反馈出代码不完整或有错误的情况,学生会纠正这些问题,并重新提交。

学生体验
定性分析

在这里插入图片描述

    从结果显示,消极和积极的评价相互中和,总体的平均反应基本为中性,其中“我认为AI-Tutor很容易使用”表现出轻微的同意。

开放性问答

    对于学生提供的开放性意见,可总结为以下几点:

    1. AI-Tutor的回答过于笼统。学生更喜欢直接指向代码中改进区域的上下文特定的反馈
    2. 更多轮交互的需求(初始反馈后的后续问题),缺少历史反馈信息的查看功能
    3. 对具体例子的需求。学生们认为具体的代码示例更有助于解释反馈建议
    4. 学习抑制的潜在担忧。会过度依赖,从而减慢学习进度

经验教训

    通过分析实验数据,本文作者得出AI-Tutor确实能提供实时且个性化的反馈,甚至能够就逻辑和语义问题给出反馈(例如,学生代码定义了错误的边界条件来终止循环,此时AI-Tutor能认识到这一点,并给出建议)。

    另一方面,AI-Tutor也存在有用性、交互性上的不足。共有26.6%LLM的反馈信息无用(过于笼统,幻觉,直接给出参考代码);不能连续问答影响了学生的学习体验。

结论

    在这项将基于ChatGPT的AI-Tutor集成到Artemis APAS的研究中,本文作者发现了这种应用的巨大潜力和挑战。虽然AI-Tutor提供了及时反馈和可扩展性等优势,但它的局限性是显而易见的。这些问题包括偶尔的一般性反馈、缺乏交互式对话、与API可用性相关的操作漏洞、学生的潜在过度依赖、缺乏人情味以及上下文限制等技术约束。

相关知识链接

下载

论文链接
数据下载

总结

    这篇文章将基于LLMs的AI-Tutor集成到自动编程评估系统中,针对一个编程任务对23名C语言初学者进行为期一周的实验。通过记录AI-Tutor的反馈信息,自动评估系统记录的代码、测试结果、时间等信息,以及问卷结果,综合得出了该应用下学生的互动模式,与学生的体验。实验结果表明,将LLM应用到学生编程指导的应用具有实时与个性化的特点,表现出其应用潜力;但同时还存在着一些问题,在未来的研究中需要考虑。

不足

  • 设置的提示要求反馈只含文字描述,缺乏代码示例等上下文指示性信息,限制了反馈信息的有用性
  • 实验样本较少,不能定量说明AI-Tutor的有效性

启发

  • 本文的实验过程设置得很简单,只针对一项任务,并且让学生自主选择是否使用AI-Tutor
  • 学生体验的结果对今后该应用的落地提供了指向性建议(1.示例代码的需求;2.多次交互的需求;3.可查历史反馈信息的需求)
  • 直接利用prompt调用API进行反馈的结果不太理想,表现出研究针对学生代码纠错的专用模型的可行性
  • 分析的结果并不显著,大多为中性,文中给出了客观的评价,进行了思考与总结。

BibTex

@inproceedings{Frankford2024AITutoringIS,
  title={AI-Tutoring in Software Engineering Education},
  author={Eduard Frankford and Clemens Sauerwein and Patrick Bassner and Stephan Krusche and Ruth Breu},
  year={2024},
  url={https://api.semanticscholar.org/CorpusID:268876231}
}
  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值