卢灵 胡晓巍
一、引言
C语言是一门广泛应用于计算机科学和工程领域的编程语言,它可以帮助开发人员构建高效、可维护和可扩展的应用程序。然而,对许多初学者而言,学习C语言可能是一项繁琐和困难的任务。为了提高C语言课程的教学效果,我们需要探索新的方法来促进学生的学习体验。
近年来,大型语言模型(例如ChatGPT)在自然语言处理领域得到了广泛应用。ChatGPT是一项由OpenAI开发的人工智能技术,可以生成自然语言文本,并且拥有海量预训练参数。在本文中,我们将探讨如何使用ChatGPT来促进学生学习C语言课程。
本文的目标是通过实验研究,评估使用ChatGPT作为辅助工具是否能够提高学生在C语言课程中的成绩和学习效果。我们将比较使用传统教材和课程授课方法与使用ChatGPT进行学习的两组学生之间的学习成果,并分析ChatGPT对于学生学习结果的影响。
二、背景
C语言作为一种基础编程语言,常常用来当作编程初学者的入门课程。然而,学习C语言可能会面临许多困难和挑战。例如,许多学生第一次接触数据类型、数据结构的概念,第一次了解程序执行的顺序,第一次编写程序代码,可能会因为语法错误而遇到困境,甚至有些学生在理解概念时也会遇到困难,在程序调试时往往束手无策。
为了提高C语言课程的教育效果,需要采取新的方法来帮助学生克服这些困难并提高他们的学习体验。但是使用传统的辅助工具,如教科书、PPT或微课视频等,可能存在交互性不足、无法及时反馈以及缺乏个性化学习的问题。近年来,大型语言模型(例如ChatGPT)已被证明是能够解决这些问题的一种有效工具。通过与ChatGPT互动,学生可以在学习过程中获得更好的反馈和指导,并及时纠正错误。
三、实验设计
我们在C語言课程中使用ChatGPT辅助工具进行实验,以评估其对学生学习效果的影响。实验将分为两组:控制组和实验组。实验对象为中等职业学校计算机应用专业的学生,以两个平行班为例,两个班具有相近的学生数(每个班50人)和男女比例(男女比例为3∶1)、入学时的文化课成绩相差不大,且基本都没有接触过编程语言。实验时间为一个学期共4个月。
控制组将以传统教材和课堂授课的形式进行学习。这些学生将根据传统的学习计划,每周参加一次面向C语言的课程,时间为两个课时,并使用教科书来巩固所学概念。
实验组将使用ChatGPT作为辅助工具进行学习,除了与控制组相同的学习内容外,实验组还将与ChatGPT互动并获得指导和反馈。
我们将收集来自两组学生的数据,并比较他们在C语言学习方面的进展。我们将比较学生的成绩、编程能力和自我评价,并分析ChatGPT对于这些指标的影响。
四、实验实施过程
控制组学生能够获取的学习资源为课程配套教材、教师授课用PPT、微课、实训指导书,并能查阅互联网资料。为了控制研究样本数据的有效性,学生的实训机房对互联网访问做了严格的控制,通过防火墙设备的访问控制策略,使得学生只能访问C语言课程相关的IT类资源,而不能访问娱乐类无关资源。
实验组学生除了使用上述资源外,将能够使用ChatGPT与一个虚拟教师交互。ChatGPT将被配置为能够回答学生提出的问题、检查他们的程序并给出反馈。ChatGPT还将能够生成与班级学习进展相关的文章和信息,并向学生进行个性化推送。我们希望ChatGPT能够提供更加互动和个性化的学习体验,帮助学生更好地理解C语言课程。
实验组学生学会使用ChatGPT后,后续每次课程都会使用,而且表现出了浓厚的兴趣。当然学生使用ChatGPT可能会提出一些与课程无关的问题,但是将此类干扰数据去除后,结果显示,所有学生还是会将ChatGPT应用于课堂学习。
实验组学生使用ChatGPT后,使用百度搜索等其它互联网资源的意愿下降很快,而控制组学生虽然也使用百度搜索解决问题,但总体呈现下降趋势。经过学生采访与内容研究,发现百度关键字搜索往往伴随着海量的结果以及置顶的众多广告和无关信息,学生往往难以辨识,难以快速定位知识点及答案。多数学生会在无关的搜索结果上浪费大量时间,而且伴随知识难度的加大,搜索的难度也变大,使用百度搜索出的资源页面越来越难以解决实际问题,尤其是在程序调试阶段。相比较而言,ChatGPT对于问题的解答相当精准,没有纷繁复杂的无关信息,学生对于结论信息不需要进行多次的再加工,以至于部分学生将ChatGPT的结论作为权威。此外在程序调试阶段,ChatGPT能帮助查找程序bug,并给出调试建议,甚至比教师的现场指导更加高效。
实验组学生使用ChatGPT后向教师求助和翻阅PPT、微课等课堂资料的频率减少,尤其是翻阅之前资料的次数,因为ChatGPT可以迅速定位知识点,并推荐相关的知识。相比较,控制组学生由于没有更加便捷的资源获取方式,翻阅PPT、微课等课堂资料的频率一直处于高位。由于搜索的难度增大,控制组大部分学生逐渐放弃了通过互联网查找资源的方式,转而直接寻求教师,导致教师的指导量加大。
实验组和控制组的学生在课堂上查阅书本的频率并不高,原因在于书本的表述语言并不自然,学生阅读的效率低下,学生对知识目录的定位能力较差。实验组的学生在熟悉ChatGPT后,甚至完全抛弃了书本。
五、数据收集
我们使用以下指标来比较控制组和实验组的最终成就。
(1)学术成绩:比较两组学生在期中考试和期末考试中的得分,以及两组学生在整个学期中每次作业的得分。
为确定影响因子,我们保持了控制组和实验组同样的学习进度,期中考试和期末考试以及平时的作业内容均一样。考试以4道编程题为主,配合一些理论知识相关的填空题。结果显示,控制组的期中期末平均分为60.5分和55分,实验组的期中期末平均分为72.5和78分。实验组的考试成绩要明显优于控制组。随着学习内容的深入和学习难度的加大,控制组的学生学习效果开始滑坡,而实验组的学生仍然保持着学习的积极性和主动性,综合成绩较为稳定。从平时的作业效果来看,控制组提交的课堂实训任务数量开始减少,质量也有打折,而实验组提交的实训任务数量质量均能达标。
(2)编程能力:使用编程任务对学生进行评估,并比较控制组和实验组在编写程序上的表现。
从综合性编程任务的训练效果来看,实验组的学生能总结出C语言编程的一套流程,比如文件包含、主函数入口、定义变量、数据类型、条件判断和循环的选择、结果的输出等,能根据题意画流程图,并能根据报错信息进行程序调试。这类综合能力的掌握,意味着学生已经具备初级编程能力,达到了程序设计课程的学习目的。而对于控制组的学生而言,在程序编写的过程中,多数人的逻辑思维比较混乱,不能完成常规的代码书写,面对新的程序考核题,往往束手无策。
(3)自我评价:要求学生对他们的学习体验、学习效果和对ChatGPT的态度进行自我评价。
控制组学生的典型评价为:C语言课程晦涩难懂,编程涉及很多未接触过的数学知识、逻辑思维和英语阅读能力,这些全新的知识领域超过了自己的认知范畴,因而难以接受,课程学习也缺乏趣味性,希望后续不再开展如此大难度的课程。
实验组学生的典型评价为:C语言课程能够拓展自己的思维能力,通过编写程序,计算机确实能完成很多人难以完成的任务,编程能力就是一种将人的理解转换为计算机能执行的命令的一种能力。而ChatGPT在学习过程中,扮演着小导师的角色,能解答问题,解决困难,甚至能修正程序代码的错误问题,让学习更加顺畅。期待着ChatGPT能伴随自己在其他领域继续学习。
六、实验结论
本研究旨在探索使用ChatGPT作为辅助工具,以促进学生对C语言的学习。数据显示,实验组学生获得了更好的学习体验和学术成绩。由于ChatGPT可以提供个性化的学习体验,实验组学生表现出了更高的参与度和更积极的学习态度,在编写C程序的能力上有了显著提高。事实证明,以ChatGPT为动力的学习体验更具吸引力和互动性,让学生可以提出问题,并立即收到关于他们代码的反馈。此外,ChatGPT能够根据学生的个人需求提供个性化建议,提供更个性化的学习体验,因而ChatGPT有可能彻底改变我们教授编程语言的方式。
责任编辑 陈春阳