现在我们正处在百年未有之大变局。全社会的数字化、信息化、网络化,加上最近迅猛发展的智能化,对于培养计算机专业科班学生的工作来说,显得尤为重要且特殊。我们培养的学生在受教育过程中是这些变化最直接的亲历者,而在今后的工作中更是这些变革的参与者和实施者。培养未来具有源头创新能力的人才是当前计算机教育的重点。这里就系统类课程教学中的问题从教学内容、教学方法、课程交叉的角度谈一些个人观点。
首先,从教学内容来看。提升系统能力仍然是目标,但是内容和评价标准需要做出调整。很多学生反映以前认为比较难的实验,现在通过 ChatGPT 的辅助,完成所需的时间大幅度缩短了。为此,我们增加一些人工检测和验收的方式,要求学生在面试时不能使用 AI 工具,展示他们独立掌握的知识和技能。
更严重的是作业问题,毕竟不可能所有的作业都采用面试的方式进行验证。ChatGPT 做作业算不算对?因为现在很多作业和实验,学生都已经用这些工具来完成了。如果他们能用这些工具解出来,那算不算掌握了这个知识?系统类课程如系统基础和组成原理,可能情况稍微好一点。比如算法,如果学生用 ChatGPT 写出来,你认为它对吗?学生会说,以后工作中我们也不能禁止使用这些工具,而且这些工具只会越来越好,那为什么我们用它解出来的答案不对?为什么我们的考试还要闭卷?还要考这些东西?
在此背景下,作为教师,我们不得不思考:随着越来越多的内容能够被 AI 工具解答,我们是否还需要教授那些工具可以回答的问题?此外还应该教些什么?
我们需要教给学生如何辨别 ChatGPT 给出的答案是否正确。虽然这些工具会越来越准确,但是它们也存在很多问题,因为它们是由人类和人类积累的知识训练的,而人类本身就有盲点和偏见,更何况大模型还有幻觉,所以我们需要教学生如何进行答案的甄别和交叉验证。我认为我们应该教授这些,但具体怎么教,目前还在探索中。比如,我们会鼓励学生使用不同的大模型进行结果的比对,要求大模型给出答案的出处,然后让学生去原始文档中确认大模型给出的答案是否完全正确等。
提出问题的能力更重要。如果你把问题丢给 ChatGPT,很多问题都能很好地解决。比如,ChatGPT 成了班上的第一名,学生可能会觉得自己考不过 ChatGPT,那他们还要做什么呢?至少目前来看,ChatGPT 还不会主动提出问题,因此我们应该培养学生提出问题的能力。这个提出问题的能力不是对大模型的提问工程的问题,而是分析问题的本质,梳理逻辑关系后提出的为什么是这样不是别样、还可以怎么样的问题。
其次,从教学方法来看。无论 AI 如何发展,面对面地传道授业解惑,都是最好的方式。关于如何教学,很多老师都提到了吸引学生的问题。我们上课的目的是要吸引学生,让他们愿意来上课,并且认为这 45 分钟学到的知识比在网上看互动性不强的慕课要有用。有时候,老师也需要一些个人魅力,上课和录慕课风格是不同的。就我个人而言,录课时,可能因为内容熟悉而显得无聊,甚至会录到快睡着,但上课时,我会很有激情,学生可能愿意来线下听我的课。
教学也不是一个单方面输出的过程,学生的反馈经常是很好的输入,对老师的讲课是一种促进,因此展示对学生的关心,对他们意见的期待和重视,也是很好的吸引学生的手段。
另外,AI 工具不是只对学生有用,老师们也要把它更好地用起来。除了选择题、填空题等客观题型的在线评测,我们现在也利用 AI 帮助我们进行简答题的初步评测和批改,最后再由教辅和老师人工进行核验,极大地减少了教师的工作量,从而有更多时间关注教学过程。通过知识图谱作学习路径规划,指导学生选择最合适和最优的学习路线。同时,通过分析学生的在线学习时间、效果等数据,可以对教学重点进行调整。每次作业后,我都能迅速知道学生的掌握情况,了解上一堂课讲得效果不好的地方,及时调整教学。这让我的教学调整速度大大加快,这些工具对我们帮助很大。
还有一个是教学对象的差异问题。我们与北大或清华这样的顶尖高校学生水平之间的差距还是很明显的,有相当一部分学生在学习过程中非常吃力,他们从高中到大学的思维方式转变得不好。我个人教大一课程,学生在经过一个学期后,仍有学生抱怨听不懂、很难,甚至质疑为什么要学习这么难的内容。这是一个要把课程目标设定成什么样子的问题?以前说,20%的学生不需要多讲,他们能够通过自学或者简单地讲解就掌握内容,可以根据自己的兴趣爱好进行更广泛的探索;我们主要关注中间那 60%的学生,让他们掌握较好的计算机开发技能就可以,但在未来研究型大学的本科教育中,我们要培养更多能够超越 AI 的学生,那么中间这 60%的学生也要向前 20%的学生那样培养,这其实是对我们的教学提出了更高的挑战。
最后,课程交叉融合的问题。课程交叉谈了很多年,改变不大。有老师提到,学校内部的壁垒使得学院或专业之间的交叉变得非常困难。实际上,即使在同一个学院内,不同课程之间的交叉也很难实现。很多课程的贯通其实是依赖于老师个人的努力,比如我在教授系统基础和组成原理时,会试图将这两门课程交叉起来。有的老师在教授系统基础和操作系统时,也会将编译和系统基础结合起来,但这些都是个人的尝试,每个老师的体验和做法都不同。
我们应该建立一套更体系化的方法。比如,某个老师对编译和操作系统很感兴趣,可能也做了一些研究,但并不是教这些课程的老师,因此融合得不够好。如果有操作系统的老师能够提供一些很好的案例或方法,那么就可以在系统基础课程中与操作系统进行更好的结合,而不仅仅局限于自己熟悉的知识。
甚至更大胆一点,我们可以把系统类课程打通,比如设立“计算机系统”课程,涵盖计算机系统基础、计算机组成、操作系统等课程的内容,将原来的层次性讲解改为依照垂直领域来讲,比如内存管理,就将内存的硬件架构、ISA 对内存地址转换的支持、OS 对内存转换的实现过程按照垂直方向讲授,让学生从硬件到软件、对软硬件协同有更好地了解和理解。
作者简介:龚奕利,女,武汉大学副教授,研究方向为计算机体系结构、高性能计算、分布式存储等,yiligong@whu.edu.cn。
引用格式:龚奕利.新时代背景下关于计算机专业系统类课程教学的思考[J].计算机教育,2025(2):12-13.
(完)返回搜狐,查看更多