信息与计算科学专业数据结构课程的教学探索
2019-01-23王嘉
王 嘉
(太原科技大学 应用科学学院,山西 太原 030024)
0 引 言
信息与计算科学专业主要研究信息技术的核心基础与运用现代计算工具高效求解科学与工程问题的数学理论与方法[1],着重培养掌握信息技术和计算技术等数学基础的应用型人才。在本专业课程体系中,计算机课程起着将理论转换为实践的重要作用,而数据结构作为重要的专业课,主要用于“非数值计算”,处理字符、表格和图像等具有一定结构的数据[2],实现数据在计算机内的表示、存储和运算,形成解决特定问题的高效算法。
为适应人工智能领域和大数据人才发展的需要,响应地方高校培养应用型人才的要求,迎接建设“新工科”的浪潮,学院针对本专业学生计算机实践能力薄弱,数学基础不扎实的问题开展了教学改革,对培养方案和多门专业课程的教学大纲进行了调整。对数据结构课程也不断反思,研究如何提高学生解决实际问题的能力,以达到应用型人才的培养目标。
1 数据结构教学现状
由于数据结构的抽象程度高,算法多,逻辑性强,实践要求高,课程的考核通过率一直偏低,2017年本专业两个班的卷面不及格率更是高达47.91%。分析原因,可以归纳为以下几个方面。
(1)学习目标不明确。部分学生缺乏对专业前景的了解以及对自身的职业规划,未能认识到数学基础和计算机实践之间相辅相成的关系,对数据分析、人工智能算法、大数据应用等就业方向缺少了解,一些学生直到工作面试时,被问到“树”“排序”等热点问题,才意识到数据结构的重要性。
(2)理论和实践脱节。数据结构要求学生具有较高的逻辑思维能力和抽象能力,这本该是数学系学生的优势,然而从理论能力到实践能力的转化需要不断的实践和总结。数据结构对编程能力要求较高,由于实践环节课时不足,本专业学生的编程基础普遍较差,逻辑概念无法顺利转换为代码,造成后续学习的障碍。
(3)教学形式落后。单纯的PPT教学内容刻板,互动性差,学生容易开小差;数据结构的理论比重大,机房教学也不能满足教学要求;成长于互联网时代的学生,习惯于从电脑、手机上获得知识和互动,传统课堂不能满足其多元化的需求,频繁使用手机更干扰着课堂教学效果。
(4)实践环节学时不足。本专业数据结构理论学时52个,上机12学时,学生只有6次上机的机会,两个小时内要完成数据结构的类型定义、操作定义和算法的学习,还要解决各种编码错误,没有扎实的编程基础、不在课下抽时间钻研是无法掌握的。同时,这些实践内容只能覆盖到基础知识,对于综合案例,学生几乎没有时间完成。
2 数据结构课程改革探索与实践
2.1 学习目标分级的探索
在教学过程中,教师不仅要保证授课难度的递增,还要尊重学生之间的能力差异和个体学习过程的渐进性。因此,教师有必要结合学生的特点重新评估教学内容的适应度,有步骤、有层次、有针对性地实施教学。
结合以上思路,教学内容被划分为CPS三级目标,具体划分如下:
C级(Concept),即概念级:要求学生掌握基础概念、基本技能,能够独立完成基础习题,熟悉运算步骤,并能根据指导把伪码转化为程序代码。
以线性表为例,C级要求:能独立完成课后填空选择题,掌握建表、判空、查找、定位、插入、删除等基本操作的核心语句,能够上机完成。
P级(Practice),即实践级:在达成C级的基础上,能够独立完成教材算法的延伸,能通过协作、讨论等方式完成课后习题中低难度的算法题目。
仍以线性表为例,学生能够模仿C级算法,独立完成循环链表、双向链表带头结点和不带头结点情况下的延伸算法以及习题中尾插法创建单链表、线性表的就地逆置这类难度较低的算法。
S级(Solve),即应用级:在达成P级的基础上,鼓励学生完成课后习题中较高难度的算法题目,能通过协作和讨论完成案例的分析、设计和实现。
线性表S级要求:写出无序表和有序表的合并算法,实现一元多项式的运算、设计并实现一个通讯录。
三级学习目标将教学内容从整体分解为小目标,最后再回到整体,既便于教师实施阶段性考核,也符合学生的学习认知过程。
2.2 实践环节的探索和改革
针对实践教学中存在的诸多问题,有必要对原有实践内容进行改革,建立理论与实践紧密结合的分层次、开放性、多渠道交流的实验教学模式,提高实验课程的利用率,充分达到应用型本科教育的目的[3]。实践的具体内容被编写为上机指导,发布在教师博客,供学生预习和参考。上机指导原有6章,分别是:①顺序表和链表;②栈和队列;③二叉树;④图;⑤查找;⑥排序。最新修改的17级大纲中增加了2个机时,补充了串、矩阵和广义表的内容,作为第4章。每章内容包括从易到难的三个模块,与CPS学习目标相对应,见表1。
表1 CPS三级学习目标与实践能力对照
Part1:基础内容的实践。要将教材内的算法转化为代码,并编写主函数完成调用和测试。该模块起着将理论转化为实践、巩固大纲知识点的重要作用,要求所有学生必须独立完成,对应学习目标的C级。
Part2:教材内容的延伸。基于C级实现的自定义结构类型,扩展算法的操作。该模块引导学生从模仿到思考,起着提升学习兴趣的作用,对应学习目标的P级。
Part3:解决案例问题。该模块需要学生从问题出发,建立抽象模型、定义数据模型、定义操作函数,到最后解决问题,以团队为单位,完成一篇小论文。这一过程可以极大地提升学生实践能力,培养团队协作性,对应学习目标的S级。
为确保在有限的机时内完成编码和测试,可要求学生预习第1模块,提前完成数据类型的定义部分,在机房完成第2模块。第3模块由16级学生自选完成,17级大纲新增了数据结构课程设计环节,可以进行充分实践。
2.3 教学信息化的实践
2017年10月,本校鼓励全校教师通过“微助教”平台推进信息化教学。教师可以创建课堂、实施多元化教学或者进行课堂资源管理。课堂专属二维码在课堂首页左下角,教师点击此处会弹出引导学生扫码加入课堂的完整页面,学生根据提示打开微信扫码即可快速加入课堂,无需再手动输入课堂编号[4]。一个基于CPS三级目标、完整的线上线下教学流程如图1所示。
图1 基于“微助教”的教学流程
1)课前准备。
教师登录—开启校方认证课堂—通知学生加入班级—上传并开放课件—创建题库和答案—开启预习题目—规定答题时间—查看答题情况。
学生登录—加入课堂—预习课件—完成前测—系统根据答案打分。
教师提前上传课件和题库,学生预习指定章节,完成相应知识点的前测题目,前测对应学习目标的C级,用以增进学习动力,检验学生对所学内容的认知程度,进而调整教学内容的难易程度,可通过提问、测验、讨论等多种方式进行[5],其中“微助教”答题的形式最为便捷。
2)课堂管理。
常用课堂管理包括分组和签到,教师可以按班级分组,或指定更小的组别。学生在手机上进行签到,没有带手机或者不能上网的学生可手动修改状态[4]。系统自动在姓名旁显示超距离的定位,如500 m,以防学生作弊。签到结束后可公示人数、出勤率、名次等信息。教师可以导出整个学期的签到结果为Excel表格,分数自动汇总,便于考核。
3)多元化教学。
多元化教学是常规教学的补充,目的是强化学生的注意力,调动学习积极性。教师需要结合前测结果有针对性地实施授课内容,并在学生有疑问、学习效果不理想、课堂气氛不活跃的时候介入多元化的教学,本课程的多元化教学方式包括算法动画演示、点答、讨论和游戏。
动画:本课程使用的教材提供了微视频教学资源,每个算法旁边都有一个二维码,学生用手机扫描就能观看算法的步骤和效果。
点答:教师在“微助教”上使用点答功能,指定学生回答问题,点答包括手工点答、抢答和随机点答,学生姓名下方显示抢答次数和评分。
讨论:教师在“微助教”上创建讨论,学生在手机上输入观点或问题,讨论结果以弹幕或词云的形式呈现,频率最高的词汇代表了大多数人的想法,可以引导学生归纳出某个结论。讨论结束后可以导出Excel表格,便于进行评分。
游戏:算法的动画演示虽然直观,有助于理解,但要熟练掌握需要反复练习或模拟,数据结构的很多算法都可以进行现场的模拟,比如让学生充当数据元素演示队列的入队和出队、二叉树的平衡化、排序等过程。
4)后测。
后测包括随堂测验、课后大作业和单元考核,用以检验教学效果与教学目标的吻合度。
授课完毕就可以在“微助教”上开启练习进行随堂测验,难度较前测有所提高,教师立刻可以获知某个知识点的掌握度。大作业每章一次,共7次,为笔答题目,难度为P级。单元考核可根据实际情况进行,本课程分为3个单元:线性结构、树和图、排序和查找。通过“微助教”的题库可以直接创建组卷,考核难度主要对应学习目标的C、P级和少量S级。
3 结 语
近两年,学院逐渐加大了本专业“应用型”人才的培养力度,引入校企合作,协同育人模式,从大一开始为学生树立正确的就业观进行职业规划,致力于强化学生的计算机实践能力。在此形势下,数据结构课程积极开展了探索和改革。学习目标和实践的分级是本次教学改革的基础,围绕这个基础需要不断完善教学资源,包括PPT课件、线上平台的前测、后测题目以及用于引导式学习的讨论题目、上机指导等。
借助“微助教”平台,分级化教学的理念得以落实,学生在线上预习基础内容并完成前测,教师则有更多时间进行深入教学,多元的教学形式和导学方式有助于培养学生思考和解决问题的能力。
今后还计划完成基于“微助教”的导学模块的建设,利用简答题引导学生填写上机记录,实现实践环节的信息化;利用填空题实现“算法导写”,指导编码能力薄弱的学生填写算法语句,根据注释填写语句,根据函数填写代码段,最终培养学生独立编码的能力。