摘要:针对计算机科学与技术专业的学生学习数据结构,为了激发学生学习的兴趣和积极性,将案例教学融入课堂,以实际案例为主线,通过提出案例、分析案例和解决案例三个步骤完成教学,培养和提升学生解决实际案例过程中学习通过建立模型和算法的设计,将实际案例转化为计算机可以解决的问题,有效解决实际问题。最终达到培养学生思考问题、分析问题和解决问题的能力。
关键词:数据结构;案例教学;哈夫曼算法
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)17-0157-02
1 数据结构的教学分析
1.1 学情分析
数据结构是计算机科学与技术专业学生的专业核心课程,学生的特点是基础知识扎实,逻辑思维能力和解决案例问题的能力一般,将生活中的实际案例转化为计算机可以解决的模型,通过求解模型解决实际问题的能力较弱,课堂气氛不活跃。针对上述问题,教师不仅需要给学生讲解最基本的知识点,还需要给学生拓展相应知识点的算法和用这些知识点和算法如何求解实际案例。让学生深切体会到数据结构在解决计算机领域的某些实际问题有着重要的作用,从而调动学生学习的积极性,让被动的课程学习变为主动学习。最终达到培养学生思考案例、分析案例和解决案例的能力,养成严格、科学、规范的思维习惯,为将来从事工作和研究打下牢固的基础。
1.2教学目标
通过该门课程的教学,使学生掌握“数据结构”中的基本概念、合理组织数据的基本方法、高效处理数据的基本算法、常用的经典算法、通用的程序设计技术,以及面对实际问题时选择恰当数据结构和相应算法的能力。
2以实际案例为主线进行教学活动
在数据结构的教学过程中,结合计算机学院专业的特点,以实际案例为主线,通过提出案例、分析案例、解决案例三个步骤完成主要教学如图1所示。提出案例的主要目的是激发学生学习的兴趣,让学生的学习由被动变为主动,让学生对问题产生兴趣,愿意主动积极地去解决实际案例。分析案例主要通过新课的导入,针对具体的实际案例,给学生分析该如何去解决这个案例,为了解决这个案例,已经学习了哪些知识,哪些知识是没有学习的,然后将新课进行导入。解决案例,通过导入的新课,然后讲解新的知识点,从理论到算法,对学生进行深入的讲解,通过新学习的知识和算法,来求解提出的案例,这样既让学生复习新学习的知识点和算法又让学生学会如何通过已经学习的知识点和算法来求解实际案例。以实际案例为主线的教学优势是培养学生解决实际案例能力的短板。培养学生思考案例、分析案例和解决案例的能力,实践过程中学习通过建立模型和算法的设计,将实际案例转化为计算机可以解决的问题,进一步通过所学习的知识点和算法有效的解决实际问题。
下面笔者通过最优树及其应用[1]的教学活动给出提出案例、分析案例和解决案例的三个步骤。通过案例用机器分辨一些纸币,假设各种币值的纸币出现的概率不同。现在需要解决的问题是如何设计一个分辨纸币的方法,使得所需的时间最少?下面通过和学生一起分析这个实际案例,可以发现二元树可以解决这个案例,但是不同的二元树所用的时间不同,如何找到所用时间最短的二元树是解决这个案例的关键点,则二元树不是解决这个案例的最佳方案,为了寻找最佳的方案,引出本节课学习的内容最优树的概念和哈夫曼算法。下面给学生讲解最优树的概念以及求解最优树的哈夫曼算法,哈夫曼算法的流程图如图2所示。最后和学生一起利用哈夫曼算法解决纸币分辨的问题。最后让学生课后以小组的形式解决当字母出现的频率不同,构造字母的前缀码使得传输的二进制位最少。根据本节课所学习的内容,可以构造带权的最优树; 在最优树上构造前缀码; 将前缀码对应于字母。因此,这个案例解决的关键点在于构造最优树,可以通过学习的哈夫曼算法解决这个案例。教师最后只需要负责点评,让学生自己独立思考案例、解决案例。最后对所学习的知识点进行拓展。
3 将案例教学法融入数据结构课堂
将数据结构课程的教学分为课前、课中和课后,具体过程如图3所示。课前,教师通过教学分析、教学设计。将教学资源推送给学生,有些基础知识可以通过MOOC资源或者教师录讲课的小视频推送给学生,让学生自己学习,有些知识点需要学生自主预习。课中具体的教学过程设计如图4所示,教师通过课程导入、新课讲解、求解问题和归纳总结四个步骤完成课堂的教學工作,学生在课堂中需要积极参与进来,需要进行小组讨论,最后归纳总结,课堂反馈。课后,教师需要评估教学,鼓励学生在课后以小组的形式相互设计问题,进行描述模型并且通过所学习的知识点和算法进行实际问题的求解,教师此时只需要负责引导和点评,让学生自己独立地思考案例、分析案例和解决案例。培养和提升学生在实际过程中解决实际案例的能力。让学生的学习由被动变为主动,调动学生的积极性。
下面笔者通过最优树及其应用的教学活动给出课前、课中和课后的教学活动。课前利用雨课堂给学生布置自主预习的内容,复习之前学习过的二元树的概念以及相关的定理。课中,通过提出实际案例,用机器分辨纸币的例子,激发学生的学习兴趣,调动学习的积极性和主动性,从而获得较好的教学效果。探究新知,启发学生发现二元树的概念可以解决实际案例,但是不能达到最优,达到最优需要找到二元树中权值最小的那一颗二元树,这就是本节课需要学习的内容。知识回顾,通过回顾二元树的概念,加深之前所学习的知识,并且为新知识的学习提到铺垫的作用。讲授新知,讲授最优树的概念和哈夫曼算法,激发学生寻找复杂度更低的算法,最后给出机器分辨纸币的解决方案,如图5所示,Matlab软件的代码[2-3],促进学生学习的积极性和激发他们的兴趣。求解实际案例,通过实际案例的求解,来巩固本节课的教学重点和教学难点。最后进行课堂小结,回顾本节课的教学内容,和学生一起总结教学重点和教学难点。进行知识拓展,开拓学生的视野、激发学生学习的兴趣。
4 通过案例教学培养学生的应用型思维模式
案例教学一个最直接的应用型思维模式就是课程设计。完成好课程设计,是为了更好地培养学生的应用型思维模式,这样有益于学生将来的就业和工作。数据结构课程设计[4,5]的目标使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法;针对选定的题目学会分析数据的逻辑结构和物理结构,结合C语言程序设计所学的知识,按要求完成设计方案。对于整体的设计需要学生完成以下几个步骤如图6所示,具体为:明确设计题目的任务,总体功能的分析、编码和测试、最终完成设计报告,最后教师对学生的课程设计内容和设计报告进行评价和验收。
在应用型思维为主的教学过程中安排实践教学,实践教学的实施过程就是教师与学生互动的过程,通过实践教学,有效引导学生的自主学习,以教师为主导,学生积极配合的互动交流模式。
5 小结
针对教学重点和难点,把应用型思维嵌入数据结构课堂。案例教学以教师的引导为基础,把研究性学习方法应用到实践过程中,以某个实际案例为主线,通过案例的提出、分析和解决三个步骤完成求解。具体通过案例引入问题,启发学生思考,从而化解教学重点和难点。学生在实践过程中学习通过建立模型和算法的设计,将实际案例转化为计算机可以解决的问题,有效解决实际案例。结合学生自身掌握计算机操作水平及自身对知识的理解能力来设计相应的实践内容。对涉及应用的知识点,具体内容可以是问题导向型的,主要利用相关知识来解决某个学科问题或实际问题,但具体是什么问题是开放的。在应用型思维为主的教学过程中安排实践教学,通过实践教学,有效引导学生的自主学习,从而有效提高教学效果。
参考文献:
[1] 耿国华,张德同,周明全,等.数据结构:用C语言描述[M].2版.北京:高等教育出版社,2015.
[2] 张岩,吴水根.MATLAB优化算法[M].北京:清华大学出版社,2017.
[3] 刘浩,韩晶.MATLAB R2020a完全自学一本通[M].北京:电子工业出版社,2020.
[4] 陈媛,何波,蒋鹏.数据结构学习指导·实验指导·课程设计[M].北京:机械工业出版社,2008.
[5] 苏仕华,魏韦魏,王敬生.数据结构课程设计[M].2版.北京:机械工业出版社,2010.
收稿日期:2021-12-18
基金項目:宝鸡文理学院第十六批校级教改资助项目研究成果(项目编号:21JGYB50)
作者简介:吴小娥(1978—), 女,陕西宝鸡人,工学硕士,讲师,研究方向为模式识别。