“文心一言”在计算机编程课程中的应用效果研究
作者: 乌达巴拉 寇婕婷
关键词:人工智能;文心一言;计算机编程;对比实验
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2024)26-0007-03 开放科学(资源服务)标识码(OSID) :
0 引言
随着以 ChatGPT 为代表的大语言模型(Language Model) 的兴起,人工智能(Artificial Intelligence, AI) 在医疗、金融、电商等多个领域产生了深刻影响,并在教育领域展示出巨大的潜力[1]。AI 技术和工具可以根据用户的需求和问题,提供相应的信息和解决方案,从而极大地提高工作和学习的效率。例如,高校学生可以利用 AI 工具完成写作、文献综述、论文撰写以及编写计算机代码等任务[2-3]。
毋庸置疑,AI技术为计算机相关课程带来了巨大挑战和变革。计算机学科的教育者正在思考如何将先进的 AI技术融入教学实践,以提升学生的编程能力、问题解决能力和创新思维能力。然而,AI技术并非完美无缺,也面临技术和伦理挑战。例如,学生对 AI 的过度依赖可能导致其失去独立思考和解决问题的能力,甚至引发诚信问题,如作弊和抄袭。因此,对 AI 技术对学生学习能力的影响进行分析是极有必要的。
本文探讨AI工具对学生在计算机编程课程学习方面的影响。通过使用百度“文心一言”作为辅助工具,评估其在学生学习过程中提供的帮助以及面临的挑战。本研究招募了已完成“数据结构和算法”课程的软件技术专业学生参与挑战。学生被分为 A 组和 B 组。A 组可以查阅教科书和编程笔记,但不能使用互联网;B组可以使用“文心一言”来帮助解决编程问题。为模拟真实的编程环境,挑战任务在 ACM 国际大学生程序设计竞赛(ICPC)的编程竞赛控制系统Programming Contest Control(PC2) 上完成。学生需要编写满足特定要求的可执行代码,并通过测试用例验证代码的正确性。学生的表现根据通过测试用例的数量进行评分。实验结果显示,B 组学生在得分上相较于 A 组具有显著优势,表明“文心一言”在辅助学生解决编程问题方面发挥了积极作用。然而,B 组学生在使用“文心一言”的过程中,缺少深入的讨论环节,导致提交的代码存在不一致性和不准确性。
1 相关研究
1.1 AI工具在高等教育教学中的应用
AI工具对高等教育产生了重大影响。文献[4]通过对高校56名学生的调查发现,ChatGPT在学习和工作中表现出色,但也存在准确性低和数据依赖等问题。文献[5]研究了ChatGPT在问题驱动学习中的应用,发现它对团队合作和学习动机有积极影响,但也面临理解语义和信息准确性等挑战。文献[6]强调了ChatGPT对教育的重要影响,但同时指出需要应对其带来的冲击。AI 工具在高等教育中的作用是显著的,但也面临各种挑战。
1.2 AI工具在计算机相关课程教学中的应用
随着AI技术的发展,传统的计算机学科教学方式逐渐拥抱人工智能浪潮,实现转型升级,并完成教学工具和教学方法的重构。文献[1]探讨了ChatGPT对教学和编程学习的影响,研究内容包括如何确保其提供的编程建议准确可靠,以及避免过度使用对学生编程技能掌握的影响。文献[7]评估了ChatGPT在Java 编程中生成解决方案的能力,结果显示其准确性高,为编程教学带来了新的可能性,但也指出了在处理非结构化信息时面临的挑战。文献[8]探索了“文心一言”在教学中的应用,提出了创新设计和教学方法,并获得了教师和学生的积极反馈。
上述研究探讨了教师和学生对AI 工具如Chat⁃ GPT作为教学辅助工具的接受度,与本研究目的一致。本文旨在补充当前知识库,深入讨论“文心一言”在教学应用中的潜力和挑战。
2 方法设计
2.1 招募参与者
本文采用配额抽样方法来确保样本的代表性和研究的可靠性。配额抽样是一种非随机抽样方法,通过根据预先设定的标准或配额来选择样本,以保证样本在不同维度上的代表性。本研究的关键特征为大二软件技术专业学生,且他们已经修完Java课程和数据结构与算法课程。这种特征组合旨在选择具备一定编程基础和对数据结构有深入理解的学生,以代表该目标群体。通过这种精心的样本选择,可以提高研究结果的可靠性和推广性,从而有助于对目标群体的特定问题进行深入研究和分析。
2.2 研究设计
1) 研究问题。使用“文心一言”完成编程挑战的学生与未使用该工具的学生之间的学术成就水平是否存在统计学上的差异?
2) 程研和究数条据件结。构所与有算参法与课挑程,战并的至学少生获均已完成Java课程和数据结构与算法课程,并至少获得了B的成最低成绩。
3) 实施过程。首先,招募24名学生,将他们均分为A组和B组,每组包含六个团队,每个团队有两名成员。这样的分组设计旨在确保研究样本充足且具有代表性,并在学术水平和预测分数方面保持同质性,以消除潜在因素对研究结果的影响。然后,设计干预或挑战环节。在这一环节中,A组作为对照组,被授予访问教科书和编程笔记的权限,但没有提供互联网使用权;B组作为实验组,允许使用“文心一言”来帮助解决编程问题。这样的设置旨在对比传统学习方式与AI辅助学习方式的差异。最后,在评测环节,为衡量学生的完成水平,使用后测成绩作为评价指标。
参与者需面对一系列编程问题,每个问题根据难度级别分配相应的分值,并在规定时间内解决问题以获得分值。每个问题都伴随着一组隐藏的测试用例,团队的最终得分取决于他们成功通过的测试用例数量。挑战任务包括五个编程问题,每个问题有说明、输入/输出和限制。每个问题设有指定的内存和CPU时间限制,以激励学生在解决方案中使用优化的数据结构。
2.3 数据收集
在任务结束后,收集学生的后测成绩数据,并进行统计分析,采用独立样本t 检验来验证两组之间的差异是否显著。
A组提交自己撰写的代码以及对应的测试用例;B组提交给“文心一言”的提示信息、在“文心一言”辅助下生成的代码及其对应的测试用例。在 PC2控制面板上,可以获得详尽的数据视图,涵盖学生在不同任务中的得分、使用时间等方面的具体信息,还详细记录了学生在每个问题上所花费的时间以及通过的测试用例数量等信息。
2.4 访谈环节
为了深入了解学生在此次任务中对 AI 工具的看法和态度,我们邀请了参与编程挑战的学生参加单独的访谈环节。这一设置旨在确保对话重点突出,不受干扰。我们设计了五个类别的问题,以探讨学生与 AI 工具的互动:AI 工具
1) 对AI工具的了解和使用经验。询问参与者对AI工具(例如 “文心一言和”) 的了解程度,以及他们之前是否有使用经验;探讨他们在学习编程过程中是否使用过 AI工具,使用的频率和方式是什么。
2) 评估问题。了解学生在使用“文心一言”解决问题的具体情况,例如利用的功能、处理的问题类型、生成代码的准确性和创新性;询问使用“文心一言”后编码效率的提升情况、错误减少情况,以及是否激发了解决问题的新思路。
3) 对 AI 工具在教学或学习中的应用建议和期望。询问参与者对在教学和学习过程中使用 AI 工具的建议和期望;探讨他们对未来 AI 工具开发的看法及期盼,特别是其在计算机相关课程中的应用。
4) 道德问题。邀请参与者表达他们对“文心一言”的总体印象;讨论是否存在如真实性、抄袭、知识产权侵犯、输出偏见等伦理问题;探讨相关的道德考量,以及其在教学、学习和社会影响方面的观点。
3 结果分析
表1和表2展示了A组和B组在不同任务中的成绩表现。A组团队在任务T1(难度一颗星)中取得较高分数(超过80分),但在T5任务中表现不佳。通过后续访谈得知,他们在数据结构选择上未花费太多时间,却在T4和T5的算法设计、调试与修改错误上投入大量时间,导致这两项任务的分数偏低。
B组团队(B1至B6) 使用“文心一言”辅助编写代码。分析表2的结果显示,除B2外,其他团队在完成 T1任务时均获得满分(100分)。在“文心一言”的帮助下,B组团队在完成任务 T1至T3时能获得满分,但在T4和T5任务中,没有团队达到满分。这可能反映出对于较复杂问题,AI 工具也需改进以满足高难度任务的要求。
表3显示了A组和B组在任务 T1 至 T5 中获得的均值和标准差。对于所有任务,B 组团队的均值均显著高于 A 组。在任务 T1、T2 和 T3 上,两组的标准差相似,但在 T4 和 T5 这两项难度较大的任务上,差异显著。
图1显示了团队完成任务 T1至 T5所花费的平均时间。相比之下,A组在完成 T1至T3任务时花费了更多时间,而 B组在完成T4和T5任务时花费了更多时间。B组使用了“文心一言”辅助编写代码,但由于它生成的部分代码过于冗长,超出了输出大小的限制,导致被截断。此外,通过“文心一言”进行了多次查询,结果显示不一致。因此,B组花费了更多时间来调试代码以解决这些问题。
4 讨论
研究结果显示,“文心一言”在辅助编写代码方面展现了卓越的能力。它能够生成连贯且结构良好的代码,并针对提出的问题提供优化的解决方案。虽然当学生要求“文心一言”为特定内容编写完整代码时,它通常可以满足要求,但在终端运行这些代码时,结果的质量却参差不齐。
在实际编程任务中,由于“文心一言”生成的代码存在不准确性和不一致性问题,导致测试用例失败。尤其是随着问题难度的增加,这种情况更加显著。此外,由于生成文本长度的限制,学生有时无法获得完整的程序代码。因此,他们不得不多次向“文心一言”发出提示,以获取所需的输出,这增加了编译错误的风险。
对于学生而言,深入理解内在算法的工作原理可能并非必要,但理解影响结果的变量却至关重要。此外,还需要考虑该工具可能存在的隐含偏见和假设,以确保其输出的准确性和公正性。
需要善于向 AI 工具提供准确的提示,以生成最佳的内容。而制定有效的提示需要对工具及其基础内容有深刻的理解,同时也需要具备批判性思维。虽然基本提示可能足以产生所需的输出,但通常需要付出大量的努力才能获得期望的结果。
5局限和未来的工作
当前研究中存在的问题以及未来研究的设想如下:
1) 设计更多的任务。为了更好地反映参与者的实际编程能力和解决问题的能力,可以设计多样化和复杂的编程任务,以提供更全面的洞察力,帮助更好地评估参与者的技能和反应。
2) 未考虑多种AI工具。当前研究未考虑不同AI工具的使用。在后期研究中可以探索不同AI工具,例如ChatGPT或其他生成式AI工具在编程任务中的表现差异。比较不同AI工具之间的性能差异可以为工具的进一步优化提供重要的线索。
3) 样本量较小。在定性研究中,样本量的大小是一个挑战。未来的研究可以考虑扩大样本量,以获得更具代表性和全面性的结果。此外,可以考虑采用混合方法,结合定性和定量数据,以更好地分析人与人工智能的输出,并得出更具说服力的研究结论。