高职数据结构课程混合教学模式改革与实践
——基于Pyt hon语言的线上线下教学设计

2022-09-26 04:03乔国荣
辽宁高职学报 2022年9期
关键词:链表数据结构线性

乔国荣

辽宁轻工职业学院,辽宁 大连 116100

数据结构课程是高职计算机专业课程体系中公认的一门专业核心课程,在计算机相关专业课程体系中起着承上启下的作用,也是计算机程序设计的重要基础课程。该门课程主要研究的是数据元素的逻辑结构以及数据元素的存储结构,从而设计出针对这些数据元素的算法以及实现方法,具有较强的抽象性和综合性。很早以前许多教材针对数据结构算法的实现采用伪代码表示,因不能做到所见即所得,学生学习停留在云里雾里,所以数据结构是公认的比较难学的一门课程。近年来,为了让学生方便理解学习内容,许多数据结构课程教材的作者采用C、C++或者Java语言把相关算法描述出来,实现了所见即所得,但还是不能非常直观地表达。随着人工智能时代的到来,Python语言在人工智能领

收稿日期:2022-01-18

作者简介:乔国荣(1970—),女,辽宁法库人,教授,硕士。域得到广泛应用,因此笔者试图运用Python语言来实现数据结构中的各个算法,并借用pythontutor.com网站来动态演示数据在内存中的演变过程,将抽象问题形象化,更加方便学生的理解和学习。从这个角度出发,研究数据结构课程基于Python语言的线上线下混合教学模式具有极其深远的意义。

一、数据结构课程线上线下混合教学模式研究现状

目前,数据结构课程在各高校的教学大多数情况下还是采用以教师为主,教学以传统的多媒体课件讲解为主要教学手段。尽管在数据结构课堂教学中引入了案例式、启发式等教学手段,但是其学习内容枯燥和难于理解确实给高职学生的学习带来了很多的障碍;又受到课时的限制,绝大多数任课教师为了完成教学计划,在整个教学过程中,对课程中的重点内容也不能做到细致入微地讲解,因此,根本无法激起学生学习的兴趣,更别说让学生自主学习了,教学效果不尽如人意。

为了改变数据结构课程的教学现状,许多老师都进行了相应的教学改革。胡伟平[1]认为数据结构作为软件工程专业最核心的专业基础课之一,传统教学以理论教学为主,学习枯燥,课程结束之后学生普遍反映能理解理论,但是写不出程序。为了改变这种状况,一些高校使用线上线下混合式教学方法对教学内容进行了重构,对教学过程进行了重新设计,将MOOC、云班课、拼题A网站等教学辅助平台整合在一起,改革了教学环节,取得了良好的教学效果。周艳聪等[2]提到数据结构课程在计算机软件等专业中占据着核心地位,近几年更是成为各个高校计算机专业考研的必修课程,其地位不言而喻。由于不同层次的学生对课程资源要求不同,对课程的理解和掌握程度也不同,各高校的学习平台依据本校学生实际情况而构建,更方便本校学生或者同类别学校学生使用。滕秀花[3]针对传统教学中存在的问题,结合工程认证人才培养目标,充分应用学校提供的网络教学平台进行课程建设,深入开展线上线下相结合的混合式教学模式。陈俊仁[4]结合数据结构课程当前的教学状况,秉承“以学生为中心,以有效教学见长”的教学理念,融合线上和线下教学模式,提出了基于课堂派的数据结构教学改革。李莉等[5]通过实践证明,线上线下混合教学模式下的数据结构课堂教学改革,很大程度上激发了学生的学习兴趣,调动了学生的学习积极性。上述研究者仅从线上线下混合教学模式出发讨论如何改革数据结构课程的教学方法,但是没有提到用Python语言实现算法。基于上述研究现状,笔者提出了基于Python语言实现数据结构课程线上线下混合的教学模式。

二、基于Python语言建设在超星平台上的混合式线上线下教学模式

随着信息技术、网络技术的快速发展,以及师生对于移动终端的大规模应用,学生学习以及教师教学的方式已经不再局限于课堂上进行[6-10],而是随时随地都可以利用移动设备快速地进入到学习状态。一场新冠病毒肺炎疫情更是把这种学习模式应用到极致:学生们边进行核酸检测,边看手机进行学习。微视频教学记录了教师在整个课堂教学过程中应用多媒体教学手段围绕某个知识点或者教学环节而展开的教学过程,该种教学方式具有主题突出、动画演示数据在内存中的变化,视频短小精悍等诸多特点。基于超星平台多媒体微课混合式教学分为课前准备、课中教学、课后作业总结拓展三个阶段,是一种交互式三段反转课堂教学模式,并采用线上线下相结合的方式进行。

课前准备阶段,以学生自主学习为主,教师辅导为辅。这个阶段教师需要将该次课所要讲解的课程教学内容进行梳理,并将所教授的知识要点进行分解细化,同时根据各知识要点之间的关联性和逻辑性,并将各知识点进行精心组织,编排成许多相对独立又彼此相关的教学单元,并精心为学生设计了自主学习任务菜单,最终制作完成每个单元的微课视频,将这些内容放在超星学习平台上(见图1)。学生在课前按照任务菜单的要求完成课前学习,通过PPT课件学习、微课视频学习、线上提问、同学们讨论交流等方式自主预习相关知识点。同时,教师也能在该网络教学平台,通过移动端或者电脑端有效监督学生的课前学习进度,及时检查学生预习效果。

图1 课前准备阶段

经过了课前准备阶段,学生完成了自主学习之后,为教师在课堂教学阶段留下了更加充裕的时间,得以在教学阶段进行详细讲解(见图2),突出重点,着重解决难点问题以及个别辅导,并且有针对性地开展小组讨论,充分调动了学生们的学习积极性,高效地完成知识的传授过程。

图2 疫情期间运用腾迅课堂线上授课页面

到课后作业总结拓展阶段,同学们需要完成教师布置的相关作业、单元测试等,消化课堂上所学内容,并进一步启发学生的逻辑思维能力和综合应用能力(见图3)。

图3 作业实训拓展

三、混合教学模式改革方案

高职教育教学要注重理实一体,突出实践教学,紧跟企业的用人要求制定人才培养方案,确定授课内容。随着人工智能的发展,Python语言在人工智能领域的使用异军突起,因此笔者对数据结构课程教学内容进行了调整,算法设计采用Python语言来实现。为了方便学生们的理解,运用pythontutor.com网站提供的动画演示数据在内存中的存储变化过程,使学生们耳目一新,充分调动了他们的学习积极性。采用这种动画教学手段,能够更好地激发学生自主学习的兴趣,形象化地帮助学生更好地理解数据结构中各种抽象算法,寓教于乐,培养学生动手实践能力,充分体现职业教育技术技能型人才培养特点。

为了更好地描述数据结构课程混合教学模式的运行过程,本文以数据结构课程混合教学过程中“线性链表”的建立教学为例,阐述如何完成基于超星平台的多种手段共同进行的多媒体动画微课线上线下混合教学模式的教学设计。

(一)“线性链表”教学模型分析

设计算法并全代码编程实现是为了让学生更好地理解线性链表的应用。为了让学生们方便理解线性链表的概念、性质,也为了学生们能快速掌握线性链表的存储结构,从而完成数据类型定义,最终理解并设计线性链表的基本算法,笔者归纳总结出“线性链表”的教学重点是链表的结点定义,教学难点是有关线性链表的算法真正代码实现。

(二)“线性链表”课前准备阶段教学模型设计

根据课程标准所设计的教学目标要求,任课教师课前依据课程标准要求,有针对性地对教学内容进行梳理,笔者划分出6个需要学生们掌握的相对独立的知识点:(1)线性链表的定义及性质;(2)线性链表的Python结点定义;(3)线性链表的最基本运算算法之一设计:建立链表;(4)线性链表的基本运算算法之二设计:输出链表;(5)线性链表的基本运算算法之三设计:插入结点;(6)线性链表的基本运算算法之四设计:删出结点。然后针对每个知识点编定脚本、设计并制作动画,之后教师演示动画并且录制相应的教学视频。根据观察分析,高职学生保持最佳注意力时间平均15分钟左右,因此,我们将每段动画演示讲解视频录制时间控制在15分钟之内。依据教学环节需要,整理出每个知识点对应的在线测试题,学生在线看完教学视频以后自行测试学习情况。

(三)“线性链表”课教学授课阶段

学生经过了前面课前准备阶段的自主学习,绝大多数同学基本上掌握了将近40%的教学内容,没有掌握的教学内容学生们会带着问题来听教师线下课堂教学。这种教学方式让学生有充足的时间对线性链表的存储结构以及相应的运算算法有一个全面的理解。由于学生已经对线性链表的基本操作算法有了大概的了解,但是具体实践还是有一定的困难。因此,笔者线下教学也采用了pythontutor.com网站边输代码边动态演示数据在内存中的表示方法(如图4所示)。该图演示了类似于C语言的结点类型定义形式。因为Python没有动态分配存储空间的函数,因此形象地定义了结点类,学生学习起来更加直观、生动,所见即所得。学生边学边实践,并且小组内可以相互探讨互相查错修改,全程教师掌控整个课堂,教学效果很好。

图4 定义结点的内存动画演示过程

(四)“线性链表”课后线上复习总结阶段

课后线上复习总结阶段是检验学生是否完全掌握所学知识点的一个非常重要的教学环节。在该环节,教师结合授课内容以及学生掌握情况布置相应的实训与作业,帮助同学们巩固所学的知识。同时教师也会根据学生的学习状况,对教学内容进行总结,改进教学方法,优化教学资源。

(五)课程考核评价

线上线下混合教学模式采用过程性评价与总结性评价相结合的形式,具体考核方案(见表1)如下:总成绩=期末考试(50%)+课前(10%)+课中(30%)+课后(10%)。

表1 数据结构课程考核方式统计表

四、线上线下教学模式总结与改进

经过实践,基于Python语言的数据结构课程线上线下混合教学模式改革与实践,针对传统课堂教学的不足进行了改革,通过动画教学、视频教学、反转课堂等教学手段,有效地激发了学生对该课程的学习兴趣,课程教学也取得了较好的效果,但有些方面还需要进一步改进完善。例如,教学资源的利用应适可而止,应将精力用于设计形象化的动画教学,寓教于乐,这样可以有效地激发学生学习兴趣,并持续维持学习的热情。在教学资源建设方面,超星平台也有它的局限性,限制了很多学生个性化的发挥。还有很多其他很好的教学平台可供我们使用,尤其在实践教学的设计上,有些平台设计的功能更加优秀。除此之外,教学内容的选择上是应该选择最适合高职学生学习的教学内容,有针对性地制作高质量微视频等教学资源,但也不能画地为牢,也要考虑学生日后的就业和进一步学习的需要。线上的教学内容设计应该高于高职的教学标准,但也应注重职业教育特色,注重校企合作开发,要与企业真实场景的实践有机结合,为学生日后就业以及进一步学习打下坚实的基础。

猜你喜欢
链表数据结构线性
渐近线性Klein-Gordon-Maxwell系统正解的存在性
数据结构线上线下混合教学模式探讨
线性回归方程的求解与应用
为什么会有“数据结构”?
基于二进制链表的粗糙集属性约简
跟麦咭学编程
二阶线性微分方程的解法
C++的基于函数模板实现单向链表
高职高专数据结构教学改革探讨
基于线性正则变换的 LMS 自适应滤波