您好, 访客   登录/注册

基于创新能力培养的数据结构课程教学改革

来源:用户上传      作者:袁辉勇 戴经国 刘霖 彭剑

  摘要:数据结构课程在计算机学科中有着非常重要的地位。重新确定数据结构课程定位与培养目标,自编辅导教材与实验指导书,开发程序设计在线训练平台,建设在线开放课程,将ACM竞赛模式引入到实践教学,突出理论与实践应用相结合,有效调动了学生自主学习的积极性,提高了学生的创新能力。
  关键词:在线开放课程;创新能力培养;多层次实践教学
  中图分类号:G642 文献标识码:A
  文章编号:1009-3044(2020)15-0190-02
  1引言
  数据结构作为计算机学科的专业基础核心课程,对应于学科中问题求解的理论、抽象和设计的方法论,在学科知识体系中具有核心的重要位置。它承上启下,贯通始终,对于培养学生的计算思维、系统分析与设计、算法设计与分析、程序设计与实现等基本能力至关重要。大量的实践表明,数据结构课程在计算机本科课程中有着相当重要的作用,同时也对毕业生后续的工作和研究有着深远的影响嘲。它所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其他课程,还是对从事大型信息项目的开发,都是重要而必备的基础。
  程序的时间和空间效率,不仅跟数据的组织方式有关,也跟处理流程的巧妙程度有关。数据结构讲授、探讨有关数据组织、算法设计、时间和空间效率的概念和通用分析方法,帮助学生学会数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。地方高校结合自身特点,创新教育教学理念,改革传统教学方法与教学手段,推进教学改革与创新,构建以创新能力培养为目标的教学体系,提升课程教学水平,对创新人才培养有非常重要的作用。
  2课程教学中存在的问题
  先导课程不扎实。数据结构课程的先导课程有c或c++程序设计,学生在学习数据结构应较好地掌握程序设计语言,数据结构中的算法基本上是采用C或c++语言描述,但由于大一学生开始学习c或C++程序设计,要达到熟练使用还有一定难度,尤其是在使用指针时还比较困难。
  教学内容与课程体系零散。数据结构课程内容相对抽象零散,涉及较多的基本概念、基本结构、算法和基本技术。由于课程的核心内容主要集中于对各种数据结构的应用上,虽然各种数据结构之间存在许多内在的联系,但这些内容还是独立、自成体系,各种结构上的算法涉及的知识较多,而且基于模型及其操作,不易理解。
  教学目的与教学要求不明确。数据结构是一门实践性较强的课程,要注重培养学生利用理论知识解决具体问题的能力,但传统的教学仅仅满足于将理论知识讲解清楚,并不注重将理论知识应用于解决具体问题,学生为了考试死记硬背理论知识,把一门实践性较强的课程变成了一门与实践脱钩、内容枯燥、乏味的理论课。
  教学资源缺乏、教学手段落后。在课程教学中,长期实施以教师为主体、按照教学大纲教学进度来组织、学生被动学习的教学方法。大多利用“粉笔+黑板+PPT”的算法演示方式,缺乏有效的教学资源,缺乏动画和反复演示的效果,难以充分展示算法的执行过程,学生难以掌握复杂数据之间的变化关系。
  3基于创新能力培养的课程教学改革
  (1)打牢前导课程基础,强调程序设计语言的应用
  C语言的结构体和指针是描述存储结构的基础,灵活地运用指针可以处理各种复杂的数据结构。在组织教学内容时,预留时间重点复习和训练C语言程序设计中的结构体和指针,在复习和训练中,从注重C语言的语法知识转变为注重程序设计能力的培养,对学生学好数据结构起到积极的作用。在数据结构各章节的教学过程中,则结合学生的学习状况和相应算法,再适当复习必要的C语言程序设计知识,抓住这两门课程的衔接点实施教学。
  (2)重组课程知识体系,突出三种结构和两种技术
  数据结构的知识点比较多,看起来零散,但知识体系很清晰。要把握好数据结构中的线性、树、图三种基本结构和排序、查找两种基本技术。突出数据组织方法与实现技术构成,重构由基本概念、基本结构(线性、树、图)和基本技术(查找和排序)三大部分组成的课程体系。基本概念部分重点讲述数据结构定义、内容、方法、评价以及前续基础与课程要求,明确数据结构是什么、学什么、怎么学数据结构。基本结构部分重点讲述线性结构、树、图的逻辑结构、存储结构及其加工处理基本算法。基本技术部分包括查找和排序两类经典技术,贯穿了参数传递、指针处理技术、数组应用、递归与队列等重要的程序设计技术;力求表现经典算法思路,培养学生的创新能力,为学生继续拓展提供线索。
  教学中以数据的逻辑结构为主线,顺序介绍线性结构、树形结构、图形结构和文件结构,针对每种数据结构时,针对其存储结构设计相关算法。例如,针对线性表,按存储结构分为顺序存储和链式存储两种方式,针对不同的存储结构设计算法;考虑到线性结构在运算时的特殊性,进一步介绍栈、队列、串、数组和广义表,最后重点讲解排序和查找两种基本算法。在把握好课程的知识体系后,从简单到复杂、循序渐进、逐步深入地实施教学。例如在线性表中学习的链表,在树的链式存储、图的邻接表、链地址法解决哈希表冲突时都是其具体应用。在教学中应注意引导学生复习前面的内容,把相关教学内容串联,形成一个完整的知识体系。
  (3)明确课程目标,优化教学内容
  应用型本科的特点,使其数据结构课程的课程目标和要求与一流本科有着不同的侧重点。应用型本科数据结构课程重点讲授数据的三种基本结构、两种技术及算法设计与分析,为操作系统、编译原理、计算机网络、软件工程等后续课程提供必要的知识基础。应该优化教学内容,教学中侧重数据的存储结构及其算法实现,注重算法的效率性,锻炼学生在实际问题求解中选择数据结构、设计算法的能力。
  (4)建设立体化教学资源,有效辅助学生自主学习
  建设支撑教学过程与自主学习两个面向的立体化数据结构课程教学资源。根据国家规划教材(《数据结构》,严蔚敏,清华大学出版社)的教学内容,精选习题,重新编写实验教学大纲,更新实践教学内容,精心设计了12个课程实验,编写了配套辅导教材《数據结构习题与实验指导》,设计了与课程内容相适应的多媒体课件,提供选件控制方式,便于教学内容重组。面向自主学习扩展的教学资源包括“数据结构”在线开放课程和程序设计在线训练平台。
转载注明来源:https://www.xzbu.com/8/view-15266905.htm