0 引 言
ChatGPT是一种通用型自然语言生成类大模型,其强大的知识集成、理解和回答能力引起全球热议,并迅速得到广大年轻人的认可,这为教育界带来诸多挑战。由于ChatGPT简单易用,世界各地的学生开始利用ChatGPT写作业,如Study.com对1 000多名学生的调查显示,超过89%的美国学生使用ChatGPT帮助完成家庭作业[1]。在众多学生眼里,与谷歌、百度等搜索软件相比,ChatGPT是一个更好用的工具。在笔者的测试中,ChatGPT能以100%的准确率通过《剑指Offer》[2]中全部50道难题,也能在LeetCode编程周赛中达到中等水平,该结果令人惊叹,因为这些周赛题目对LeetCode而言是新题,不能通过单纯搜索的方式获得正确答案。对计算机专业教学人员而言,ChatGPT的出现似乎更是一种对教学任务的挑战。带着这样的危机感,作为教育者不得不认真思考,在AI工具伴随学生成长的时代,采用什么方式才能让学生获得真实的学习过程,经历学习的挑战。
目前高校教育普遍对ChatGPT持有两种态度,第一种是鼓励学生利用ChatGPT辅助学习,这一观点或许比较适合高阶的专业学习和研究;第二种是对使用ChatGPT采取谨慎和戒备态度,如近来美国多所公立学校因为担心学生作弊,禁用了ChatGPT。纽约市教育部门发言人直言,该工具“不会培养批判性思维和解决问题的能力”。
技术的发展是必然的,我们不可能将AI工具拒之门外,因此,为了在该环境下培养出具备高阶能力的计算机专业人才,教学策略和内容尤其是作业类的练习内容必须进行调整升级,以应对ChatGPT类工具所带来的全新挑战。
1 ChatGPT对计算机基础教育的挑战分析
计算机导论课是计算机科学专业学生的第一门大学专业必修课,目的是为学生日后的深度专业学习打好基础。课程教材包含《计算机科学导论——以python为舟》[3]和《编程导论——以python为舟》[4],共设立7次作业,每次作业题量约10题,图1展示了ChatGPT与班级学生的得分情况,每次作业总分不同,在此展示分数标准化到100的结果。总体而言,ChatGPT约低于中等水平。ChatGPT表现最差的是作业7,因为作业7需要使用教材专用的汇编语言,ChatGPT并没有这方面知识,所以回答较差。
经过对ChatGPT在计算机导论作业中的结果分析,ChatGPT能力远超过传统搜索引擎,除了可以回答概念理解、填空题之外,还可以分析问题、自动进行代码编写。人们也可以要求ChatGPT给出最优时间复杂度的程序,最让人印象深刻的是ChatGPT有能力跟踪并输出程序的执行过程,展示执行过程中变量值的变化。这代表其并不是单纯搜索已有代码,而是具有真实的编程和解析能力。ChatGPT也可以较完备地回答一些开放性问题。另外,对题目进行简单变形、更换输入案例,ChatGPT也能够给出分析的过程、代码和结果,其代码中还很专业地添加了注释;同时,ChatGPT给出的答案具备一定的多样性,即多人对同一问题同时、多次询问,获取的答案可能存在差别。虽然ChatGPT的回答不一定是正确的,如分析过程和结果不一致、对题目具备复杂逻辑运算容易出错,但是它的回答都有比较明显的因果关系及逻辑思维。
ChatGPT在答题中展现出诸多优点,学生可以直接利用ChatGPT进行知识整理、分析、归纳,甚至设计出解决方案,与计算机专业学生直接相关的能力包含代码生成、代码分析、计算时间复杂度、输出程序中间运行过程等。学生仅需在对话框内向其进行提问就可以完成一系列复杂的学习、编写代码、调试过程,这减少了学生进行资料搜索、独立思考、设计解决方案、创新思维等能力的训练,因此,在计算机基础教育阶段应避免学生利用ChatGPT做作业。
目前并没有对应对ChatGPT的教学方法的探索,这为教师教学带来了很大挑战,主要的挑战点在:①如何高效减少计算机初学者对ChatGPT的使用。仅对学生进行口头劝导的方式效果有限,教师可以从题目设计本身入手限制学生对ChatGPT的使用,然而,从前文的分析中可见,仅仅简单变换题目内容,如更换题目的输入案例,ChatGPT仍然可以作答,因此,需要考虑其他方面的具体设计来应对该挑战。②如何有效检验学生是否用ChatGPT完成作业。
因此,应该对现有教学方案进行改进,在计算机教育基础阶段,避免学生利用ChatGPT完成作业,以有效训练学生的计算机专业能力和高阶素养。
2 计算机基础教学中的应对策略
为了有效避免学生依赖ChatGPT完成作业,充分训练学生的计算机素养和高阶能力,应结合ChatGPT在计算机导论作业案例中的分析结果,从检验学生是否利用ChatGPT的方法、题目设计、相关教学方案设计方面总结应对策略,图2所示为设计框架图。
2.1 检验是否依赖ChatGPT完成作业
(1)用工具检测是否抄袭。这些工具包含查重工具、代码抄袭检查器等。教师也可以直接询问ChatGPT,学生所提交的回答结果是否是ChatGPT生成的结果,在笔者测试中,将学生所提交作业代码给ChatGPT展示并询问“这是不是你生成的?”,其可能回复该答案的出处,或直接回复是其生成的答案。然而,该类方法并不能保证其结论完全正确。
(2)设计前后依赖的题目进行线下测试。布置前序的问题在作业中,留下一两个问题在线下测试,因此,若学生抄袭,该生将较难正确回答线下测试中的题目。在多年计算机导论课堂实践中,笔者发现该方法适用于检验任何方式的抄袭行为。在实际教学中,该方法展示出高效果。
2.2 题目设计
(1)使用教材开发的教学软件。为了让计算机初学者学习用简单的汇编语言编程,计算机导论课程配套了专门为课程练习开发的一个运行汇编语言程序的模拟器SEAL。在SEAL中,定义了一套基本汇编语言指令。因此,当作业中涉及利用SEAL完成汇编语言程序编写时,ChatGPT并不能产生满足要求的结果,错误率达到100%,因为ChatGPT没有经过SEAL相关知识的训练。由于作业7中包含大量基于SEAL汇编相关题目,ChatGPT在作业7中作答表现较差。利用该特点,教师可以自行开发教学配套软件,让学生使用该类软件完成作业,如此,学生难以通过ChatGPT获取正确答案,可有效制约学生对ChatGPT的使用。
(2)画图类题目。图示的方法在计算机专业教学中是重要的工具,其可以帮助学生更容易、深刻地理解抽象概念[5],如理解程序执行过程、函数栈等;同时,学生亦需要通过图示方法,训练对抽象知识的分析和理解。在计算机导论作业案例中存在让学生画出电路逻辑门、程序栈的变化图等要求,而ChatGPT并不能正确作答这类题目,错误率高达100%,如在对逻辑门或、非进行绘制时,ChatGPT的绘制结果如图3所示,两个逻辑门的结果错误,且两者基本无区别,可见,ChatGPT对图形的理解和解释能力十分有限。因此,教师可以添加画图类题目,如在分析程序类题目中要求学生以图示化的方法表现出分析过程。利用该方法,学生不易从ChatGPT获取正确图示结果。即使获得正确的文字表述结论,学生也需要再次理解文字分析过程,以绘制图示结果,起到知识巩固的作用。通过该方法防止学生从ChatGPT直接获取答案,亦可提升学生对知识的理解,提升其分析能力。
(3)依赖课堂、教科书特殊定义。在本案例分析中,存在一些题目中的关键名词,在课堂中进行另外定义解释的情况,而在题目中不会做其他解释,如“请按照列表大小对列表进行排序”,其中“大小”的含义可以是列表的长度、列表求和值等,在课堂中对大小的定义进行说明,如此,ChatGPT并不能正确作答,因为它不能正确理解所给关键名词的具体含义,所以给出错误的分析和答案。在实际教学中,这个方法也可以有效检验学生是否认真听讲。
(4)题目依赖已出的题目内容。在计算机导论作业案例中,某些题目之前存在关联性,如一道题是另一道题目扩展,学生在回答该题时需要先理解另一道题目的背景、要求、含义等。ChatGPT对该类问题解答出错率较高,错误率为40%,如题目“用Python程序做出十进制数到二进制补码转换的过程。附加要求为程序能处理不同位数的转换。先输入位数n,n=16,后输入一个介于-32 768和32 767之间的值,输出对应的n位二进制补码”,该题目是教材[3]中一道程序练习题的延伸,ChatGPT在解决该问题时,直接调用Python中二进制转换函数bin()获得结果,并没有如所依赖的题目一样自行写程序来模拟进制转换过程,且在ChatGPT的答案中对负数处理错误。因此,教师在出题时,其背景可以依赖之前出过的题目内容,以控制学生对ChatGPT的使用。
(5)增加学生作答过程性叙述要求。做题过程展现学生对问题的思考过程,让学生写下思路可帮助他们梳理自己的思路,也方便教师分辨学生是否存在借助ChatGPT完成作业或其他抄袭行为。若学生完全按照ChatGPT给出的过程进行作答,可能存在几种情况方便教师分辨:①ChatGPT在解答问题时通常会给出较完整的分析过程,且会出现以教学口吻分析题目的情况,这与普通学生作答方式有所不同;②ChatGPT存在分析过程与最终回答不符的情况,因此也容易被察觉。通过让学生写出过程性步骤,可以有效检验学生是否依赖ChatGPT回答问题,促进其自主进行问题的思考和解答。
(6)增加学生作答总结性叙述要求。具体而言,该方案要求学生写下做题中遇到的难点、心得,或者对不懂的问题进行提问。对于学生个人在做题中遇到的问题,需要学生经过独立思考之后得到答案,这促使学生需要对作业题目进行深入思考;同时,通过学生的难点、问题反馈,教师可以更好地改进教学计划,以及时适应学生对知识学习的要求。
(7)提升问题内容的趣味性。从题目内容出发,调动学生对题目内容的兴趣,以激发其思考问题的主观能动性,如设计题目内容时结合学生的生活背景、学生感兴趣的游戏背景等,或者以趣味对话的形式、图形展示的方式呈现问题,让学生在趣味性的题目情境中解决问题,以提升学生解决问题的积极性,减少ChatGPT的使用。
除了以上设计方案以外,教师在布置作业任务时也需要把控题目的难度、数量,避免课业负担大而降低学生学习的积极性,造成学生只图快而直接利用ChatGPT完成作业的情况。
2.3 相关教学设计
(1)分小组学习。基于第一次或者前两次课堂学习作业、课堂小测反馈结果,对学生进行分组,使每个小组均分有成绩好、成绩中等、成绩较差的学生,让学生以小组为单位进行学习讨论,这可以促进学生之间的认识了解以及合作学习,提升学生学习的参与度、积极性,使学生可以主动思考问题、解决问题。与此同时,学生之间可以起到互相监督的作用,以减少学生使用ChatGPT完成作业的情况。在多年的教学实践中,以小组形式进行学习的方案可以达到明显的教学效果,学生可以通过讨论的形式加深对知识的理解,与此同时培养沟通交流能力以及团队意识。
(2)教师劝导。在平时教学过程中,教师可采用适当劝导,告知学生使用ChatGPT完成作业被发现时将给予惩罚措施,如作业分数给0分,这将极大影响学生的平时分,从而影响该课程最终考核。
3 结 语
对于计算机专业初学者而言,夯实基础很重要,需要培养计算机专业人才所需要的多种能力,如独立思考、分析问题、设计算法、代码编程等。为达到这些目的,需要大量的知识练习。知识练习的最主要手段是作业,因此,在计算机基础学习阶段,学生不应该依赖ChatGPT完成作业,这会阻碍他们提升专业能力。ChatGPT甚至会带来更大的危机,即学生解决问题受制于该类软件工具,一旦这类软件限用,那么会对国家计算机领域发展有影响。除此之外,ChatGPT不能保证结果的正确性,仅起到建议的作用,因此,学习过程中不能完全依赖该类软件,容易对学生知识学习产生误导。综上,在计算机基础教学阶段利用ChatGPT要相当谨慎,以确保计算机初学者能够锻炼重要的核心素养及能力。教学工作者需要对教学方案进行调整以应对该类软件,让学生能够在初学阶段打好计算机基础,训练学习研究中所必需的高阶能力。
参考文献:
[1] Study. com. Productive teaching tool or innovative cheating?[EB/OL]. [2023-04-20]. https://study.com/resources/perceptions-of-chatgpt-in-schools.
[2] 何海涛. 剑指Offer: 名企面试官精讲典型编程题[M]. 2版. 北京: 电子工业出版社, 2017.
[3] 沙行勉. 计算机科学导论: 以Python为舟[M]. 3版. 北京: 清华大学出版社, 2020.
[4] 沙行勉. 编程导论: 以Python为舟[M]. 2版. 北京: 清华大学出版社, 2022.
[5] 江南, 何炎祥. 计算机专业编程语言类课程教学的思考[J]. 计算机教育, 2016(4): 156-159.
基金项目:国家自然科学基金项目(61972154);上海市2020年度“科技创新行动计划”人工智能科技支撑专项项目(20511101600)。
作者简介:沙行勉,男,华东师范大学教授,国家特聘专家,研究方向为大数据系统、高性能智能计算、先进存储、并行/分布式系统与计算、嵌入式系统、量子计算等,edwinsha@cs.ecnu.edu.cn;诸葛晴凤(通信作者),女,华东师范大学教授,研究方向为并行系统、高效能内存计算、面向新型智能应用的系统与存储优化、智能化数据存储与数据管理、资源分配与调度、嵌入式系统、软/硬件协同设计,qfzhuge@cs.ecnu.edu.cn。
引文格式:沙行勉,王寒,徐珑珊等.ChatGPT对计算机基础教育的挑战分析与应对策略[J].计算机教育,2023(11):51-54.
转自:“计算机教育”微信公众号
如有侵权,请联系本站删除!