张晓玲,董万归,曾 新,李 毅,羊海潮
(大理大学数学与计算机学院,云南大理 671003)
“数据结构”是计算机科学与技术专业的核心基础课程,是计算机程序设计的重要理论和实践基础,是设计和实现编译程序、操作系统、数据库系统和大型应用程序的重要基础。该课程上承程序设计基础,下启算法设计与分析,在计算机科学与技术专业人才培养目标中具有举足轻重的作用。通过学习数据结构,学生学会分析和组织数据,为涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并能对算法的时间和空间复杂度进行分析。
传统模式教学的“数据结构”存在以下问题:
(1)课程一般开设在大二第2学期,学生专业课只学习了“程序设计基础”,掌握了程序的基本知识、数组和函数,知道了结构体和指针,但是对数据类型的理解不够深入,对程序和算法概念模糊,结构体和指针的使用很不熟练〔1〕。
(2)课程理论抽象难懂、内容多,课时紧。传统的授课模式采取“满堂灌”的方式,学生被动接受知识,难以激活学生的主动性和创造性。课堂上教师忙于完成授课内容,无暇顾及学生的学习基础和学习能力差异,师生互动少,学习效果不佳〔2〕。
(3)学生基础差异大,实践能力要求高。在学习过程中,学生通过编写程序理解和运用课程中的知识点,抽象思维和编程能力将得到很大的锻炼和提高。程序设计基础好的学生随着所学知识的增加学习兴趣变得越来越浓。然而,随着课程学习难度的增加,基础薄弱的学生在编写程序过程中遇到的问题会越来越多,进而产生挫败感,学习欲望逐渐消失,从而为后续专业课程的学习埋下了“应用能力隐患”〔3〕。
针对“数据结构”课程普遍存在的问题,许多教学工作者对教学模式进行了改革和探索〔4〕,高春晓等〔5〕提出了基于学习结果的工程教育模式;张平等〔6〕提出基于问题导向的混合式教学模式;赵榆琴等〔7〕对程序设计课程与数据结构之间的“双向重构”教学衔接法进行了探讨。信息技术和互联网的飞速发展,由一批国内外知名高校加入建设开放共享的优质教育资源在线学习平台,“中国大学慕课”“学堂在线”“智慧树”等的出现,为改变“数据结构”教学模式和学习方式提供了新的契机,为慕课(massive open online course,MOOC)与课堂教学相融合的混合式教学组织形式奠定了技术基础。北京大学是最先进行基于MOOC资源开展混合式教学实践的国内一流大学之一,王晶心等〔8〕针对北京大学MOOC的应用效果进行了实证研究,结果表明基于MOOC的混合式教学对大学生的学习成效起到积极的促进作用。王曙燕等〔9〕以信息化教学工具为依托,在线上学习和线下翻转过程中实现学生自学能力的引导,并通过教学反馈提升教师的授课能力;任雪萍〔2〕借助超星平台,以翻转课堂为切入点,设计了线上线下相融合的“数据结构”混合式教学方式;吕品等〔3〕提出了在“数据结构”课程教学中融入线上学习的教学方法,通过实践说明了线上学习平台对教学具有持续改进的作用。根据我校计算机专业培养目标,结合学生特点,针对“数据结构”传统教学中存在的问题,设计了混合式教学模式,教学效果良好。
1.1 混合式教学 混合式教学是一种基于网络学习环境、移动通信设备和课堂讨论等多种教学活动相互结合的教学组织方式〔8〕。自20世纪90年代末发展到现在,学术界对混合式教学的关注点从技术的应用过渡到了对教学策略和方法的关注。教师在进行课程的设计、教学资源的选择和教学方法安排的时候要充分利用在线教育资源和信息化技术的优势,坚持以学生为中心,体现学生在学习过程中的主导地位,最终促进教学效果的最优化〔10〕。
1.2 课程整体设计
1.2.1 “四段式”内容设计 以立德树人为本,以解决问题的能力培养为主线,重点讲授组织、存储和操作数据的思想和方法,贯穿算法设计和算法分析过程。将课程内容按照逻辑结构、存储结构、基本操作和综合运用这4个阶段,以线性结构、树形结构和图形结构为主题,每个主题按照案例驱动的四阶段讲解、分层次的实践练习、解惑式的主题研讨3个步骤进行教学。案例驱动的教学,可以使学生了解现实中出现的问题有哪些解决方法,学生带着目的去学习理论知识,提高了学生的学习兴趣。以线性结构为例,整个讲解过程围绕图书信息管理系统的数据组织、存储和增、删、改、查等基本操作来进行,最后实现和总结。在学习过程中学生深刻地理解了线性表的特点,同一个线性表存储方式不同则操作实现的方法不同,要根据用户的功能需求选择合适的存储结构〔11〕。
1.2.2 分层次实践体系 针对学生基础差异大这个问题,为不同基础的学生设置不同难度的实践训练题目,使每个学生都有能力提升空间。采用课内上机实验和课外程序设计类实验辅助教学平台PTA(programming teaching assistant)训练题目集相结合的分层次训练体系,上机实验主要以根据学习的特点和规律自编的实验指导书为主,指导书配合四阶段教学法的内容组织,并兼顾难度的梯次,循序渐进,逐步深入。其中每个实验主题被分成基础实验、拓展实验和综合实验三部分:基础实验一般都是验证性的实验,其主要目的是对基本数据结构的存储结构和操作的实现,例如线性表基本操作基于顺序存储和链式存储的实现;拓展实验是对基础实验的拓展,例如把两个线性表合并;第三部分综合实验是综合设计项目,例如求两个一元多项式的和。PTA训练题目集按照程序填空题+函数题+编程题的方式来组织,层层深入引导式的训练方法〔12〕照顾了编程能力差的学生,使其在训练过程中获得学习成就感进而激起其编程的欲望,编程题为程序设计基础好的学生提供了提升的空间。
1.2.3 过程化考核支撑 从结果评价为主转向结果评价和过程化评价相结合。在混合式教学模式下,学生需要自主完成一部分在线课程的学习,整个学习过程缺乏教师的监督,高水平学习动机的驱动与维持是学生成功完成学习任务的关键,教师需要在学习过程中给予学生及时有效的反馈,并对学生的学习能力和努力给予切实的肯定。以往以结果评价为主的考核方式已经不能适应混合式教学的要求,因此采用多样化课程考核方法支持学习过程各环节评价,以增加学生的成就感与自信心,激发并维持其学习动机。考核方法见表1。
表1 多样化课程考核方法
1.3 教学资源
1.3.1 教师团队 教师是教学活动的主要组成部分,教师对混合教学的态度、教学准备和教学模式都将对学生的学习成效产生很大的影响。经过多年的教学实践,形成了由5名教师组成的“数据结构”课程授课团队,其中副教授4人,讲师1人;1名博士研究生,4名硕士研究生。团队教师积极参加混合式教学模式的设计和实践,对混合式教学有深刻的认识,在长期的教学研究和教学改革实践过程中,各位教师表现出较强的团队精神和良好的敬业精神,形成了一个具有很强凝聚力、团结向上的集体。
1.3.2 视频学习资源 针对课程内容抽象的特点,采用中国大学慕课(https://www.icourse163.org)上由浙江大学开设的国家精品课程“数据结构”,该课程对每一种重要的经典数据结构都会从实际问题出发,导出其定义、实现(存储)方法以及操作实现,并以更丰富的综合应用案例和练习题帮助学生增强对理论的感性认识,和本混合式教学的内容设计相吻合。学生可以反复观看,重复学习,加上教师通俗易懂的表述,对抽象的概念和知识点的详细讲解,弥补了学生基础薄弱对抽象概念难理解的问题。
1.3.3 程序设计类在线实践平台PTA(http://pintia.cn)该平台创建了一种实验教学资源共建共享的模式,借助此平台为学生搭建了引导式分层次的实践训练体系。
1.3.4 助教团队 混合式教学强调学生在学习过程中的主导地位,教师的“教”服务于学生的“学”,教学过程中师生互动和生生互动的积极互动反馈机制可以有效地提高学生的自主学习能力〔12〕。但是一名教师面对一个班甚至更多的学生,及时回答学生的问题和发起讨论会力不从心,因此课程团队出台了《学生助教岗位设置与管理办法》,在全院研究生中公开招聘助教,建立了研究生助教团队,由助教团队主持小组讨论,在微信交流群答疑解惑、监测在线学习和测试的结果并作出实时的反馈,保证了对学生的个性化服务。期末对助教考核并通过调查问卷征求学生对助教的意见,82%的学生表示对助教老师比较满意,认为助教老师工作态度比较认真,助教老师与任课教师和学生的教与学沟通方面也比较及时和主动,并且觉得这种学习方式给他们与教师和其他同学之间的交流和互动创造了更多的机会和时间,使他们获得了更好的学习体验,也提高了学习成效。
1.3.5 智慧教学工具 雨课堂用来发布本周学习内容说明、预习通知、在线学习视频、学习效果检测和随堂测试等,而微信、QQ为小组讨论和交流学习提供了方便快捷的方式。
1.4 教学方法安排 教学方法采用MOOC+翻转课堂+PTA+雨课堂的方法,实体课堂和虚拟课堂相结合,多个教学环节交叉融合和有机结合,并均衡学生的负担〔13-14〕。实施路线见图1。实体课堂指的是传统的以教师为主的授课课堂,翻转课堂由虚拟课堂和实体课堂两种方式实现,虚拟课堂由学生自主完成在线视频学习、在线实践练习和在线交流讨论,而这里的实体课堂则在传统的授课课堂中加入了小组讨论、主题研讨和随堂练习,这个实体课堂将由教师、助教和学生一起来主导。
图1 混合式教学方法设计
2.1 课前 教师根据教学大纲知识点的难易程度和重要性,安排哪些知识的学习为在线学习,哪些知识是由传统的教师授课,哪些知识点可以翻转课堂,表2展示了图这一章按照教学大纲规定的各个知识点的具体教学设计。这一章一共有6个知识点8个学时,从表2可以看出,6个知识点中有4个知识点采用了虚拟课堂和实体课堂相结合的翻转课堂教学模式展开教学,有3个知识点还安排了拓展学习的内容,课前教师先通过雨课堂发布预习通知和学习任务,学生通过在线学习和在线测试掌握学习内容完成预习,助教实时监测在线学习的情况和在线测试的结果,记录学生自主学习过程中没有掌握或掌握不好的内容,在教师授课以前及时反馈给教师。
表2 图一章中各个知识点教学设计
2.2 课中 在教师授课环节,教师用5 min的时间复习预习内容,对助教反馈的学生没有掌握的内容进行讲解,导入学习内容,接着利用课堂前20 min讲解本节课的重点、难点,然后引入案例,对案例进行分析和建模,引发学生讨论,在教师的引导下学生边学边练,学生的动手能力和解决问题能力得到提升,最后学生进行成果展示和总结回顾。例如在讲授图的连通性问题这个知识点时,先对预习内容进行讲评,然后引出连通图、极小连通图和最小生成树的概念,顺利加入中央扶贫政策中道路村村通融入课程思政的内容,并用道路村村通的具体案例重点讲授两个实现生成最小生成树的算法——普里姆算法和克鲁斯卡尔算法,接下来的课堂就由学生来主导,学生实现案例求解,进行成果展示,讨论这两个算法的优劣,最后进行总结。整堂课下来兼顾了线上预习不扎实、学习能力差的学生,用案例驱动的主题式研讨带动了学生的学习兴趣,学生充分地参与到课堂中,达到了很好的学习效果。
2.3 课后提升 学生主要从以下几个方面做课后提升。
2.3.1 小组讨论 在每个章节,设计了小组讨论的主题,学生在课外找研究生助教学习讨论,助教对他们在讨论中遇到的问题和项目实施中遇到的困难进行指导,每次讨论都要记录讨论的全过程,讨论的参与度将会计入课程考核。
2.3.2 在线测试 应用程序设计类实验辅助教学平台PTA,教师在平台上自主设计开放性实验,实验题目紧紧围绕学生在课堂上所学知识的巩固和应用展开,学生不受时间和地点的约束进行在线测试实践,完成后上传测试即可看到结果。PTA平台丰富的题目为学生打开了视野,自测自评和统计的功能使教师方便地监测学生的学习过程,学生的自学能力提高,学习效果明显提升〔15-16〕。
2.3.3 参加比赛 为了拓展学生的学习,开阔其眼界和思维,组织学生参加蓝桥杯比赛,参加北京大学国际大学生程序设计竞赛(internatinal collegiate programming contest,ICPC)的暑期训练营,组织校内的程序设计大赛。在第九届蓝桥杯大赛中,取得省赛1个一等奖、1个二等奖和2个三等奖;在第十届蓝桥杯比赛中,在省赛取得了1个一等奖、4个二等奖、7个三等奖,国赛取得了1个三等奖和1个优秀奖的好成绩。参加比赛的学生人数逐年上升,取得的成绩越来越好。以赛促教,以赛促学,通过比赛提高了学生的自信心,应用能力得到提高,营造了浓厚的学习氛围。
在混合式教学模式的设计和探索过程中,团队教师充分认识到信息时代教学的发展与变化,紧跟国内外专业教育的最新动态,在学习本学科最新研究成果和实践经验的基础上,充分利用数字化新生态的学科教学知识和信息化教学手段,不断更新和丰富课程教学内容和教学方法。最后在课程建设、教学比赛和教学改革等多方面取得了很好的成绩。该课程在2020年获得第一批省级一流线上线下混合式课程立项,相关教改论文在教学反思论文比赛中获得一等奖和二等奖。
学生的学习效果方面,表3是2016—2020级学生期末考试成绩各分数段所占人数的统计表,从2017级开始进行混合式模式的教学,2019级由于疫情的关系使用全线上教学和线上考试,考试方式不同因此不参与对比。从表3中可以看出,进行混合式教学后,优秀和良好的人数得到很大程度的提高,不及格人数明显降低。对试卷进行分析对比表明实施混合式教学后,综合性、开放性试题正确率明显提高。图2为各年级学生期末成绩平均分变化趋势图,从中可看出,平均分呈逐年上升的趋势。
表3 各年级期末考试成绩各分数段所占人数统计表
图2 各年级学生期末成绩平均分变化趋势图
为了改变以知识灌输为主的传统教学模式,适应信息化时代对计算机应用型人才的需求,设计了“数据结构”课程的混合式教学模式。采用四阶段教学法进行内容组织,使学生能够循序渐进地掌握知识,应用了分层次实践教学训练体系,设计了和课程更加耦合的实验,充分利用线上资源和在线教学工具,多个教学环节交叉融合和有机结合实现混合式教学。