生成式AI辅助“数据结构”教学研究

2024-05-16 14:17张华锋
互联网周刊 2024年6期
关键词:辅助教学数据结构

摘要:生成式AI作为新兴的人工智能模型,可生成诸如文本、图像等新数据,引发教育界的关注。本文探讨了如何利用CodeGeeX这一专门辅助软件开发的生成式AI产品,助力数据结构教学,提升教学效果。借助CodeGeeX的智能生成算法代码、自动添加代码注释、智能解释代码、分析修复代码Bug以及实时智能问答等功能,教师可以更有效地引导学生深入理解基本数据结构的概念,熟练掌握其应用,解决实际问题,有助于提高教学质量和学生的学习效果。

关键词:生成式AI;CodeGeeX;数据结构;辅助教学

引言

“数据结构”是计算机类相关专业的核心基础课程,为后续学习操作系统、数据库技术等专业课程奠定基础。课程重点在于培养学生的计算思维和数据抽象能力,要求学生掌握数据结构基本知识后,在实际问题中灵活选用数据结构,设计高效的算法和存储结构,并准确分析算法的时间和空间复杂度。该课程不仅是学生进一步学习计算机领域其他课程前必备的基础,更是其从事大型信息工程开发的基础[1]。

生成式AI是一类新兴的人工智能模型,不仅可以理解和处理现有数据,还能创造全新的数据,包括文本、图像、音频、视频等。ChatGPT作为其代表产品,能以对话的方式接收输入,并生成连贯、合乎语境的文本回复,模拟人类对话。随后,文心一言、盘古、Bard等通用生成式AI产品以及Github Copilot、CodeGeeX等专门辅助软件开发的生成式AI产品相继问世。生成式AI不仅可以直接生成问题答案,甚至可以撰写课程论文和参加线上考试,在教育界引发了一场是否应在教育教学中应用生成式AI的讨论。虽然当前观点不一,但在高等教育数字化转型的大趋势下,如何有效利用生成式AI助力高等教育更快更好发展,是未来的主流研究方向[2]。

当前已有研究人员开展如何运用ChatGPT促进以知识点为核心的教学模式变革研究[3]、如何将ChatGPT用于計算机辅助教学[4]、如何将文心一言应用于数据结构教学的探讨[5],但对如何将专门辅助软件开发的生成式AI应用于教学还未有相关研究。本文以“数据结构”课程为例,探讨如何利用CodeGeeX辅助教学,提高教学效果。

1. “数据结构”课程教学现状

“数据结构”课程的教学目标主要是引导学生掌握数据结构的基本概念及其实现,并培养他们的计算思维和解决问题的能力,为未来的学习和职业发展打下坚实基础。然而,在教学实践中仍存在以下问题:

(1)课程内容繁多。数据结构涉及的知识点非常多,包括线性表、栈和队列、树和二叉树、图等结构的原理和实现,以及查找和排序等应用,学生在有限的课时内掌握这些知识面临较大挑战。

(2)抽象思维理解难度大。数据结构是一种抽象的概念,需要学生具备一定的抽象思维能力。在教学实践中,虽然通过交互性课件、可视化算法执行过程等多种方式帮助学生理解,但对很多学生来说理解算法仍然很有难度。

(3)编码基础薄弱。数据结构是一门很注重实践的课程,学生需要具备较好的编程能力来实现各种数据结构和算法。然而,在教学实践中,虽然学生已经在前置课程中学习过C语言,但对于数据结构中需要用到的指针、结构体、递归等内容普遍掌握较差,不能独立编写完整的算法,不会通过Debug解决代码错误。

如何提高教学效果,提升学生实际学习成效,为后续专业课程学习做好准备,是“数据结构”课程教学改革亟须解决的问题。

2. CodeGeeX概念

CodeGeeX是一款基于ChatGLM2-6B模型的智能编程助手,经过600B代码数据的预训练,能够自动生成和补全代码、添加注释、进行代码翻译以及提供智能问答服务[6]。

CodeGeeX支持C/C++、Python、Java等主流编程语言,并采用插件形式集成到VSCode、HBuilderX、IntelliJ IDEA等多种IDE。安装过程非常便捷,以VSCode为例,只需在扩展界面中搜索并安装即可使用,无须进行复杂配置。

3. CodeGeex辅助教学实例

3.1 智能生成并优化算法代码,降低课程编码能力要求

在算法实践时,部分编码能力较弱的学生需要花费大量时间在编码上,导致他们不能对算法进行深入分析,影响了教学目标的实现。CodeGeeX可以一键生成常见的算法代码,极大缩短编码时间,让编码能力较弱的学生也能将精力聚焦在算法理解和分析上,提高教学效果。例如,在CodeGeeX对话框中输入:“使用C语言编写一个冒泡排序算法”,CodeGeeX自动用C语言生成了对应的算法代码,并给出了冒泡排序的基本原理,如图1所示。

CodeGeeX还具备算法优化能力,继续与CodeGeeX对话,输入“优化这个算法效率”,CodeGeeX会分析原始冒泡排序算法效率不高的原因,并提供优化思路和优化后的算法代码,帮助学生深入理解算法,掌握如何提高算法效率的技巧。

3.2 自动添加代码注释,辅助算法学习

在教学实践中,大多数学生只有基本的编程能力,不能独立分析课程的示例代码。教师需要花费很多时间逐行解释代码,甚至一节课只能讲解1个算法,导致教学效率低下。

CodeGeeX可以自动为每行代码添加注释,通过详细说明每个变量、每行代码的作用,既能提高教师课堂讲解算法代码的速度,也可以提升学生自学效果。

3.3 智能解释代码,高效掌握算法实现

在学习复杂算法时,尽管教师已使用伪代码和交互性动画来讲解算法原理及执行过程,但部分学生仍然难以将算法代码与算法原理建立联系,学生产生了较强的畏难情绪,导致教学效果不佳。

CodeGeeX可以智能解释代码段在算法中的作用并说明执行过程,就像有一位经验丰富的软件工程师在实时解释代码。该功能可有效降低学习复杂算法的难度,消减学生的畏难情绪,提高教学效果。例如,在学习八皇后算法的时候,学生对于解决冲突的while循环代码段的作用不理解,只需将该代码段选中,然后在CodeGeeX对话框中输入:“代码含义”,CodeGeeX智能分析整个算法后给出了该代码段的作用,如图2所示。

3.4 智能分析修复代码Bug,提高实验效率

数据结构是一门理论性和实践性并重的课程,在教学过程中需要进行多次实验。学生虽然已经学习过C语言,但对C语言的掌握普遍比较薄弱,对于实验过程中出现的编译错误、运行时错误等Bug往往摸不着头绪,不知如何解决,解决代码Bug占用了实验课的大量时间,导致学生在实验课中往往无法按时完成实验,影响了实验教学目标的达成。

CodeGeeX能智能分析代码Bug,并给出修改建议。如图3所示,在代码段中,有一个教学中常见的代码错误:if条件中的==被误写成了=,该问题在语法上没有错误,程序可以正常编译,但运行结果不正确。对于这类逻辑Bug,学生往往需要耗费大量的时间才能修复。而使用CodeGeeX分析这段代码,CodeGeeX会直接指出有逻辑错误的代码行,并详细给出原因分析和修改建议。此时继续输入“修复bug”,CodeGeeX会自动生成修复后的代码。如此可快速修复代码Bug,有效提高实验课效率。

3.5 智能问答,实时伴随学习

数据结构课程内容多,思维抽象,学生在学习过程中,经常会碰到难理解的知识点。由于课时有限,学生不一定能及时得到教师帮助,而在网络上搜索,又很难直接找到答案,往往需要耗费大量的时间才能解决疑问。CodeGeeX基于大模型提供的智能问答功能可以实时生成准确的回答,有效提高学习效率。例如,在学习排序算法时,学生不理解为什么快速排序的时间效率比较高,此时就可以向CodeGeeX提问:“快速排序算法为什么快”,如图4所示,CodeGeeX实时生成的答案正确回答了该算法效率高的原因。此场景下,CodeGeeX就像一位知识渊博的老师在陪伴着学生学习,能够有效提高学生学习效果。

结语

CodeGeeX展现出了在“数据结构”课程辅助教学中巨大的应用潜力,作为一种专门针对软件开发的智能编程助手,既是教师备课的助手,又是学生学习的伙伴。通过CodeGeeX可以快速生成和补全算法代码,提高编程效率,帮助学生更好地理解和掌握编程语言和编程技巧。CodeGeeX还可以智能生成算法代码,减少手动编写代码的时间,将有限的实验课时聚焦在对算法的理解和分析上。CodeGeeX还可以自动添加注释、分析代码和修复代码Bug,能有效帮助学生理解代码,提供个性化学习支持和自适应教学。

生成式AI以其独特的创造性和想象力,能够生成新颖且有价值的内容,为教育领域注入新活力。其辅助教学的优势:(1)快速生成文本、图片、视频等教学资源,提供多样化学习方式;(2)根据学习情况提供辅导和学习资源推荐,进行个性化教学;(3)自动完成整理资料、批改作業等重复性工作,减轻教师工作负担。同时,也要关注生成式AI辅助教学的挑战:(1)生成式AI的引入改变了教师的角色和工作方式,需要教师积极适应变革;(2)需要引导学生正确使用生成式AI辅助学习,避免过度依赖AI技术;(3)当前生成式AI技术仍在发展,其生成内容的准确性和质量还有待提高;(4)生成式AI需要大量数据来训练和优化,如何保障教师、学生的数据隐私和安全是一个不容忽视的问题。总之,生成式AI辅助教学潜力巨大,未来需继续探索其优势,解决问题和挑战,为教育进步作出更大贡献。

参考文献:

[1]董薇,张淑丽.持续改进中的数据结构实验教学探讨[J].中国现代教育装备,2023(19):137-139.

[2]董艳,夏亮亮,李心怡,等.ChatGPT赋能学生学习的路径探析[J].电化教育研究,2023,44(12):14-20,34.

[3]陈静远,胡丽雅,吴飞.ChatGPT/生成式人工智能促进以知识点为核心的教学模式变革研究[J].华东师范大学学报(教育科学版),2023,41(7):177-186.

[4]于刚,贾志娟.关于ChatGPT用于计算机辅助教学的探讨[J].互联网周刊,2023(18):58-60.

[5]郭乃瑄,董琴,徐秀芳,等.基于文心一言的数据结构课程教学方法初探[J].科教文汇,2023(21):95-100.

[6]CodeGeeX.CodeGeeX:Tab一下,代码生成![EB/OL].(2022-11-17)[2024-02-17].https://codegeex.cn/zh-CN/bloginfo/2b34c45370a34c80a27244004f259510.

作者简介:张华锋,硕士研究生,助教,研究方向:物联网技术、AIGC。

猜你喜欢
辅助教学数据结构
数据结构线上线下混合教学模式探讨
数据结构课程教学网站的设计与实现
《计算机组成原理》综合教学辅助平台的设计与实现
作为辅助教学的微课程的设计原则初探
计算机辅助教学过程中应注意的几个问题
如何运用多媒体平台辅助小学数学教学
论初中物理实验课堂的创建
浅析体育教学中的柔韧性练习
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨