温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
认知
负荷
视角
数据结构
实验
题库
设计
司国东
173计 算 机 教 育Computer Education第 4 期2023 年 4 月 10 日文章编号:1672-5913(2023)04-0173-04中图分类号:G642核心课程建设认知负荷视角下的数据结构实验题库设计司国东,彭利民,张义青(华南农业大学 数学与信息学院,广东 广州 510642)摘 要:分析互联网时代背景下数据结构课程教学存在的问题,提出基于认知负荷理论的实验题库设计和教学方法,最后通过近 5 学年考核平均成绩说明教学改革成效。关键词:数据结构;认知负荷;实验教学;题库0引 言数据结构是计算机专业的一门核心课程,课程包含多种数据结构及相关算法,学生需要理解和掌握这些数据结构的特性、构造方法、应用场景,并能编码实现。课程既注重培养学生的算法设计能力,也强调技术性和实践应用性1。在计算机领域,数据结构不但是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础2。数据结构是计算机专业硕士研究生入学考试的必考科目,也是学生毕业时参加企事业单位技术面试的重点3。1数据结构教学中存在的问题数据结构课程在教学过程中存在一些普遍性问题,集中体现在学生个体差异较大4、编程基础薄弱5、课程难度大6、实验教学效果不佳等方面。学生一般在学习C语言之后学习数据结构,此时他们的编程思维与代码能力并不强,在指针和结构体方面掌握得也不牢固,更谈不上灵活运用。另一方面,课程理论内容多,抽象性强,不易理解7。学生在完成理论学习后,还要把理论知识在计算机上编码实现,这些都是全新的体验,学生普遍反映学习难度大。从就业层面看,近年来软件与互联网行业发展很快,社会对计算机人才的需求与日俱增,企事业单位对计算机专业毕业生的要求也在不断提高8,特别是在数据结构与算法方面,应用能力与编码能力的要求越来越高。总体看,2015 年是一个分水岭,2015 年之前企业在面试时对数据结构的考查多以理论知识为主,常在面试中提出一些和数据结构相关的基础问题,如“链表的优缺点”,也会让学生在纸上手写一些简单的代码,如“单链表逆置”“字符串相关算法”等。在 2015 年之后,算法和编码能力逐渐成为笔面试考查的重点。企业通过 Online Judge 系统(简称 OJ),以远程“笔试”的方式进行第一轮筛选,考试内容以数据结构和算法题目为主,只有达到一定分数才能通过笔试,得到后续面试的机会;而在之后的几轮面试过程中,面试官也经常现场出题,要求学生手写代码或在线编程。目前几乎所有的知名 IT 企业(阿里巴巴、腾讯、字节跳动、华为、美团、百度、京东等)都采用这种方式来招聘毕业生。面试题目的难度也在逐年上升,最初只是简单的数据结构基础知识考查(如链表合并、排序算法),现在已经上升到对数据结构的灵活应用(如图论、搜索、分治等内容)。基金项目:华南农业大学 2020 年度校级教改项目“数据结构在线评判系统题库的建设与应用研究”(K20192)。第一作者简介:司国东,男,副教授,研究方向为教育信息技术,。DOI:10.16512/ki.jsjjy.2023.04.0442023174计 算 机 教 育Computer Education为了适应社会需求的变化,提升学生的算法与编码能力,需要对数据结构的实践教学内容与教学方法作出相应调整,这是提高课程教学质量的必要手段和必经之路。2认知负荷理论继建构主义理论之后,认知负荷理论成为学习心理学和认知心理学领域又一个对教学设计起重要指导作用的基础性理论。这一理论也能很好地解释理工类专业课程学习难度大的问题。认知负荷理论由澳大利亚认知心理学家约翰 斯威勒在 20 世纪 80 年代末提出,经过几十年的研究与发展,该理论已经被证实能在教学设计上起到显著的积极作用9。认知负荷是人们在信息加工过程中需要投入的认知资源总量,它的主要理论基础是资源有限理论和图式理论10。资源有限理论认为人的工作记忆(认知资源)容量是有限的,一次只能存储大约为 72 条基本信息或信息块,学习过程中使用工作记忆理解(处理)教学材料,并把习得的信息用编码存储在长时记忆中,整个过程中要持续地使用认知资源。在学习与信息加工过程中,当需求的认知资源超过了人本身所具有的认知资源时,就会产生认知超负荷现象,进而影响学习效果和效率。图式理论认为知识以图式的形式存储于长时记忆中,个体在学习新知识时,长时记忆中的图式可以根据所面临的情景进行快速而正确的归类,这种归类是一种自动化的加工过程,它不需要有意识控制和资源消耗,因此可以降低个体的认知负荷。认知负荷按来源可以分为 3 类:内部认知负荷、外部认知负荷和相关认知负荷11。内部认知负荷依赖学习材料的内在难度、有多少组成成分和它们之间是如何影响的。当学习材料的组成成分很多,且相互作用很复杂时,学习者要承担极高的内部认知负荷。外部认知负荷依赖学习材料的设计、组织和呈现方式。如果设计与呈现的方式不够友好,学习者必须从事与学习材料无关的认知加工,外部认知负荷会增高12。相关认知负荷与学习者主观领域相关,指的是学习者在图式建构和自动化过程中意欲投入的认知资源的数量。它与学习者的认知努力有关,适当增加学习者的相关认知负荷,可以引导学习者利用剩余认知资源进行深层次的图式建构13。一般认为这 3 类认知负荷是叠加的,内部和相关认知负荷与知识建构相关,应作为认知资源使用的主体,而外部认知负荷与知识建构无关,应通过设计尽量减少14。在学习者学习过程中,3 类认知负荷的总量不能超过学习者个体所能承受的认知负荷总量15。数据结构是一门认知负荷较高的课程。课程理论内容多,抽象性强,知识点间关联密切,学习者要承担较高的内部认知负荷,学习难度大,而偏弱的基础和畏难情绪又降低了学习者相关认知负荷的投入,进一步影响了课程的学习效果。认知心理学领域的大量研究表明,在内部认知负荷难以降低的情况下,降低外部认知负荷,提升相关认知负荷投入,是改善课程教学、提升教学效果的有效方法。3题库设计及教学方法调整3.1原有题库及应用现状作者所在学校使用严蔚敏老师的数据结构(C 语言版)第 2 版 作为课程教材。该教材理论性强、结构合理、条理清晰、叙述权威,相较于第一版,第二版还提供了微课视频。美中不足的是,教材偏重理论,在实践教学方面相对欠缺。教材中算法均采用伪代码形式,大量使用指针和宏定义,初学者不易理解。特别是在数据结构的具体应用方面,例题与习题都比较少,无法满足当前环境下的教学需求。学校原有的 OJ 题库仅收录了教材各章节的算法例题和少量课后习题,从以往的教学实践看,这些题目有助于学生更好地理解理论知识。问题在于,题库中题目总数较少,特别是缺少应用类题目,学生在应用数据结构解决具体问题方面缺乏针对性训练,解题与编码能力偏弱。3.2基于认知负荷理论的题库设计题库建设既要满足社会环境变化带来的新需求,也要尽可能地降低学生在学习过程中的认知负荷。在题目设计上,应选择合适的学习内容、设计结构良好的学习对象,降低因学习材料缺失导致的内部认知负荷;调整题目的组织方式与呈现方式,降低外部认知负荷;构建基于知识点的核心课程建设第 4 期175题目集合,同时激励学生,让他们在主观上更加认真努力,投入更多的认知资源,进行深层次的图式建构。针对内部认知负荷高的问题,在学习资源方面进行调整。在题库中新增约 100 道习题,提供更多的基础应用题目,帮助学生构建图式,进而更好地理解课程重点和难点。题目来源主要有 3 方面:将教材中尚未加入题库的少量题目添加至题库中;新编一些简单的基础应用题目;在网上采集了近三年与课程知识点相关的知名企业面试真题。这些新增题目数量较多,难度不一,能为不同层次同学提供帮助。它们以拓展题目的形式添加到课程题库中,并明确告知学生这些题目仅供课后练习,且不涉及课程成绩的评定。这样做的目的是:不给学生过多的学习压力和负担,让他们能根据自身情况调整学习进度;课程结束后通过统计每个题目的提交数据(提交人数、通过率等信息),对题目的难度和接受程度进行客观评定,在学年结束后对题目进行修订或更换。为降低外部认知负荷,在题目的组织方式与呈现方式进行多项调整。在组织方式上,新增题目按章节、知识点、难度进行分类,学生可以根据自身水平自由选择题目来完成。在呈现方式上:对教材提供的算法题目和伪代码进行重构,改进部分代码的书写方法,提供更多的代码注释和帮助信息,方便学生理解;提供难度星级、算法标签、标准程序和题解,难度星级和算法标签让学生提前知道大概难度和应该使用哪类算法或结构,降低他们的思考难度;将涉及数据结构内部操作的题目由编程题改为填空题,例如链表逆置和有序链表的合并;对于典型数据结构,题目中提供一些不使用指针和结构体的实现方法,帮助学生更好地理解这些结构,方便拓展到其他语言。例如教材中栈结构的实现需要几十行代码,且使用了指针、结构体和宏定义,对于一些简单的栈应用来说,这种栈定义比较繁琐,因此在题目的帮助信息中为学生提供相对简洁的定义方法:int st1000,top=0;/以 top 作为栈顶指针,top=0 为空栈sttop+=x;/x 入栈,栈顶指针+1top-;/出栈相关认知负荷方面,教师在日常教学过程中要进行有效引导,提供一些简单易记的经验口诀给学生。题目编排上要由浅入深,培养形成思维图式,通过解决问题,归纳总结经验,提升自信,让学生更有意愿投入认知资源。另外,学生对面试真题有更强的主观学习意愿,将真题信息(某公司某年某月某岗位面试题)置于题目说明的顶部位置,对提升学习动机也有促进作用。3.3教学方法调整课程教学包含课堂教学和实验教学两部分,课堂教学侧重理论知识讲授,教师起主导作用,而实验教学以学生实践为主,学生要在 OJ 上完成题目,教师在实验过程中起辅导作用。在不改变教学内容与考核方式的情况下,作者在教学方法方面做了一些细微的调整,并在 2020 和 2021学年的教学中进行了实践。调整措施包括:课程的第一次课先复习 C 语言的指针与结构体内容(强化基础),然后通过案例介绍数据结构在考研和面试时的重要性(提升学习动机),介绍 OJ 系统题目特点和学生未来需要达到的编码水平(设定学习目标);在课堂教学中,借鉴翻转课堂的理念,要求学生在课前通过教材及教材提供视频资源进行预习,在教学中对容易理解和重要程度低的内容进行压缩和精简,将节省下来的时间用于讲授数据结构的应用技巧和代码实现细节;在实验课中抽出部分课时做专题性的实验习题讲解,并进行一些教材之外内容拓展(如单调栈、并查集),教师在个人博客上提供部分难题的题解。4教学成效分析题库设计与建设基本完成后,在 2020 学年初次使用,在 2021 学年进行了一些题目调整。总体看来,新题库对实验教学成效起到了明显的提升作用。从日常教学情况看,课余时间在 OJ刷题的同学明显增多,学生所写代码更加规范,部分同学算法能力提升较大。通过分析 OJ 系统提供的实验情况登记表,在未做强制性要求的情况下,学生平均完成拓展题目的数量在 20 题左右。在成绩考核方面,我校数据结构课程既有理论试卷考核,也有上机实践考核。理论考核包括2023176计 算 机 教 育Computer Education选择题、应用题与算法题,主要考查数据结构的概念、应用以及算法设计能力。上机考核共 3 道编程题目,采用随机抽题方式,限时 1.5 小时,其中前两题为基础性题目,第 3 题为数据结构应用题目,难度略高,题目必须通过所有数据点才能得分。图 1 为笔者近 5 学年所带班级数据结构课程的理论考核与上机考核平均成绩。学生均为计算机类专业(学年后括号内数字为参加考试人数),其中 2019 学年因疫情影响使用网课教学方式,没有进行上机考核。理论考核成绩总体看来相对稳定,2019 学年网课期间教学效果低于在校期间面授课,而 2021 学年试卷难度高于历年,也使得平均成绩略低。在实验考核方面,使用新题库后,考核成绩稳步上升。通过对实验考核具体数据分析发现,学生对基本算法题目掌握较好,在应用数据结构解决新问题(上机考核第三题)上有明显