常见问题欢迎来到大学堂论文网,权威的论文代写、论文发表平台,服务论文行业十二年,专业为您提供论文代写代发服务
点击咨询韦老师  点击咨询李老师
范文期刊如找不到所需论文资料、期刊 请您在此搜索查找
 
您当前的位置:主页 > 教育论文 >

“数据结构”课程教学环节和教学方法创新

发布时间:2019-09-29


  0 引 言

  “数据结构”课程是计算机科学与技术专业、软件工程专业的一门重要的学科基础课,也是相关专业的必修课及选修课[1].该课程通过介绍计算机中数据的组织和管理方法、各种基本类型的数据结构及其应用,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并掌握算法的时间复杂度分析和空间复杂度分析技术[2].通过该课程的学习,使学生掌握各种基本数据结构及基于数据结构的基本运算和算法,能应用高级语言编写算法,编写的程序结构符合软件工程的规范,为今后实际工程中软件算法的研究奠定基础[3-4] .“数据结构”课程还是计算机及相关专业的专业先行课,其后续课程如“数据库原理与应用”、“操作系统”、“编译原理”等课程。同时,该课程还是计算机专业考研专业课程,因此该课程的教学效果将直接影响到学生对计算机专业的认识以及对其他专业课的学习[5-6].

  目前,我校计算机科学与技术专业“数据结构”课程为 3. 5 学分,总学时为 64 学时,其中理论课时 40 学时,实验课时 24 学时,在大学二年级第一学期开设,主要的专业基础先行课有“程序设计原理”及“离散数学导论”.在教学中发现,这门课由于抽象性、理论性较强,学生学习过程中有一定的困难,影响学生的学习效果。该课程学得是否扎实,直接影响学生后续课程的学习,甚至影响学生对本专业的学习兴趣。经过多年的教学实践,针对课程教学中存在的问题,对我校“数据结构”课程进行教学改革: 以注重学生平时学习为主,打好课程理论基础; 以理论和实践相结合,锻炼学生实践能力,激发学生创新思维; 改革教学环节、改进教学方法和手段,改革考核方式,提高学生的学习积极性,为专业教学打好基础[7-11].

  1 教学中存在的主要问题

  经过多年的课程教学,分析以往的教学过程,听取学生、任课教师及相关专业教师的意见,发现学生在学习过程中存在以下问题,影响了学习效果,不能达到预期的教学效果。

  ( 1) 课程难度较大。“数据结构”课程介绍的各种数据结构内容较多,学习量较大,理论性较强,抽象性较高,学生在理解上较困难,不能很好地与现实生活中的实例相结合,不能有效地理解理论知识,以致学生学习兴趣不佳,积极性不足。学习后不知有什么用处,也不知对后续课程有什么意义。即使有实验课程,也不能很好地实践,没能帮助理论知识的理解。

  ( 2) 编程语言掌握不够扎实。我校“数据结构”课程的算法描述采用 C 语言,C 语言中的指针、函数、结构体是语言学习中的难点,也是数据结构算法描述中的重要工具。我校学生虽在“程序设计原理”课程中学习了结构化程序设计思想,但对于难点知识的指针、函数、结构体掌握得不够扎实,还不能灵活地应用于程序设计,有的学生甚至不能很好理解这方面的内容。这样,对“数据结构”课程中出现的算法描述就不能理解,因此也就不能理解相应的数据结构。

  ( 3) 学习过程的考核不足。以前该课程的考核方式主要以期末考试为主,对学生的学习过程很少考核,虽然有作业有实验,但由于大学二年级学生的课程较多,一旦疏于监督考核,就会使学生推迟学习,不能跟上教学进度,只在学期末赶作业赶实验,为考试突击,不能真正将课程的内容牢固掌握,当时能记得所学知识,但过后易忘,以致后续课程学习中出现问题。

  2 “数据结构”课程教学环节的改革

  为了实现“数据结构”课程教学目标,让学生真正掌握该课程教学内容,为本专业后续课程打好基础,我们确定了“注重平时学习、强化实践教学”的教学指导思想,对该课程的教学进行改革,将实践教学和课堂教学紧密结合,互为补充,帮助学生掌握课程理论知识的同时,提高编程能力、实践应用能力。通过教学改革,提高学生对该课程的学习兴趣,使其主动学习,通过理论和实践教学,使学生能够学以致用[12-15].

  课程负责人及任课教师均为多年从事数据结构课程教学的教师,有丰富的教学和实践经验,通过总结以往教学过程的经验、存在的问题,收集学生对课程的意见、要求,以及本课程在学生后续学习中的应用,根据培养目标制定有效的教学改革措施。将“数据结构”课程的教学环节分为几个部分: 课堂教学、实验教学、课后作业、实验作业、课堂测验、期末考试。

  2. 1 课堂教学

  课堂教学主要介绍理论知识。理论知识内容多且抽象性高,不容易理解。“数据结构”课程需要介绍各种线性结构和非线性结构,以及最基本的查找和排序操作,教学内容较多,虽然课堂教学是 40 学时,但对教学内容不能面面俱到,因此在课堂教学中首先精简教学内容,突出重点。在介绍每一种数据结构时,主要介绍该结构的特点、基本算法及主要应用,关键是介绍算法的设计思想,学生掌握设计思想后,可以举一反三,对其他算法能够更好理解。例如在讲解栈这种数据结构时,主要介绍栈的顺序存储结构和链式存储结构及对应的进栈和出栈算法,了解算法的思想后,对于判断栈空否、栈满否等算法可以让学生课下学习。在讲解栈的应用时,主要介绍递归和进制转换应用,而汉诺塔等应用留给学生课下学习。这样可以充分利用课堂时间介绍主要知识。其次,在讲授内容时理论和实践相结合,配合现实生活中的例子,更能够让学生理解理论知识。例如讲解队列时,结合现实生活中的排队实例,学生很快就能掌握队列的进队、出队等算法。

  2. 2 实验教学

  实验教学有助于理解理论知识,提高学生的编程能力。有些学生因编程语言基础不好,比较畏惧实验教学。在实验教学中,采取先易后难的方法,设计不同层次的实验内容,以提高学生学习兴趣。在实验教学中安排两类实验: 基础型实验、应用型实验。

  ( 1) 基础型实验。基础型实验又称为验证性实验,主要是实现教材上的基本算法,帮助学生对理论知识的理解和掌握,理解核心算法的基本思想,掌握设计算法的基本程序。这种实验一般给出程序结构、部分程序伪代码算法,由学生根据对算法的理解,编写完整的程序以实现算法。这些实验重点培养学生掌握程序设计思想、算法程序结构、函数调用,以及对程序设计语言的熟练程度。这部分实验较简单,学生很容易进入实验环境、调通程序,有助于理解理论知识,且有一定的成就感,对后续实验会有信心和兴趣。

  ( 2) 应用型实验。应用型实验是让学生在掌握了基础型实验的设计思想、设计方法的基础上,设计实验以完成某种数据结构的应用。例如在图的最小生成树一节中,基础型实验要求学生完成 Prim 和 Kruskal 算法,在应用型实验中先给学生提出问题: 求在 n 个城市之间铺设通信线路,费用最低的方案。这种类型的实验能够让学生理论结合实际,能够理解所学知识在实际生活中的应用,不仅可以锻炼学生的编程能力,而且锻炼学生的思考能力、应用所学知识解决问题的能力,也提高了学生的学习兴趣。

  2. 3 课后作业

  课后作业帮助学生理解和消化所学理论知识,巩固和深化教学知识点。每一章教学内容结束后,都会给学生布置课后作业,课后作业包括本章所要求的知识点的练习题,既包括识记、领会、理解的内容,也包括应用的内容,不仅巩固学生对基本概念、基本算法的理解,还包括基于概念和算法的应用,提高学生分析问题、解决问题的能力。作业有多种题型,既包括选择题、判断题和填空题,还包括证明题、应用题等。多种题型可以从不同方面锻炼学生对所学知识点的掌握及应用。

  2. 4 实验作业

  课后作业主要是对理论知识的加强,而实验作业是在实践教学中的基础型和应用型实验的基础上,锻炼和提高学生综合程序设计能力。实验作业是每一章学习后布置的综合型实验,综合利用本章所学知识于实际应用,实验规模大于基础型和应用型实验,需要学生既对应用环境了解,又对所需要的知识点和程序设计熟练掌握,从分析问题、提出解决方案、算法描述、上机调试、到解决问题的全过程的充分体验,从中学生能够掌握利用数据结构解决实际问题的方法和过程,提高实践能力,并初步感受软件开发的规范,全面培养学生综合运用知识的能力、进行研究型学习的能力。

  2. 5 课堂测验

  整个学期安排 4 或 5 次阶段性的课堂测验,每次约 30 min 左右。测验内容为阶段性教学内容的核心知识点的概念、核心算法及简单应用。阶段性测验内容一般不难,考核基本的核心的教学内容,目的是检查和督促学生平时的循序渐进地学习,对教学内容的逐渐掌握,发现问题及时解决,不致于问题堆积。

  2. 6 期末考试

  期末考试是对整个学期所学全部内容的综合性考核,是考核学生一学期的学习效果,考试之前学生的复习,是对这门课程的总复习,可以系统地总结每个阶段的学习成果,巩固学习效果。

  3 “数据结构”教学方法的探讨

  3. 1 细化教学大纲

  “数据结构”课程的大纲分为两个: 理论教学大纲和实验教学大纲。理论教学大纲给出每一章理论知识的知识点,并细化每个知识点为识记、理解、领会、简单应用、综合应用 5 个教学要求层次,明确每个知识点为重点、次重点、一般三个考核类型。实验教学大纲明确每个实验教学的教学目标、教学内容、实验环境、实验步骤、需掌握的知识点、课后实验等。细化的大纲不仅是授课教师的指导性纲领,也给学生学习该课程指明方向。

  3. 2 多媒体教学方式的采用

  数据结构教学内容理论性、抽象性较强,很多学生反映不容易理解,在课堂教学中引用多媒体教学方法,为不好理解的数据结构及算法制作多媒体课件,将算法过程用多媒体动画展示,例如将最短路径算法的每一步使用动画演示,并配有步骤讲解,这样学生和只看算法代码相比更能直观地理解算法过程,也能充分调动学生的学习兴趣,降低知识的抽象性。

  3. 3 分层次的实验教学内容

  实验教学是对课堂教学的辅助,能够有效帮助学生理解和掌握教材中的理论知识,并将理论知识用于解决实际问题,培养数据结构的应用能力和软件工程所需要的实践能力。在实验教学中,将实验内容分为基础型、应用型及综合型实验 3 个层次,使学生能够从简单到复杂的实践中,牢固地掌握所授知识点,并逐步提高学生程序设计的能力,提高学习积极性,同时能提高学习效果。

  3. 4 实验报告规范化

  综合型实验是软件工程的综合训练,包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,是对学生软件工程规范的训练和科学作风的培养。要求学生每个综合型实验均提交实验报告,实验报告要符合科技论文的写作要求。实验报告除介绍实验目的和实验内容外,还应详细写清以下几个方面的内容。

  ( 1) 需求分析。综合型实验的任务,主要解决的问题;( 2) 概要设计。说明综合型实验任务中涉及的数据结构定义、各功能模块的设计以及模块之间的调用关系;( 3) 详细设计。描述各功能模块的具体实现算法;( 4) 调试分析。编写好的各功能模块程序调试过程中遇到的问题及解决方法; 算法的复杂度分析;( 5) 实验结果。实验任务的输入和输出;( 6) 程序代码。按功能模块给出带注释的源程序,以及设计思想。

  3. 5 改革考核方式

  将以笔试为主的传统的考核方式改为平时教学环节及期末考试并重的考核方式,以综合评价学生的学习情况,尤其注重学生的课程学习过程。课程成绩分为 5 个部分: 课后作业占 10%,课后实验作业占 20%,课堂测验占 10%,实验课练习占 10%,期末考试占50% .这种考核方式注重学生的平时学习,避免期末突击、且所学知识不牢固的问题。

  4 教学效果

  任课教师的业务水平和教学水平是影响课程建设质量的重要因素。在担任该课程教学任务的教师中,学科带头人、教授 2 名,副教授 1 名,讲师 2 名,硕士研究生助教 1 名,教师队伍学历层次较高,职称、年龄结构合理,能够高效完成教学任务,也便于该课程的建设和发展。

  表 1 和图 1 显示了数据结构课程近两年学生综合成绩情况,从表和图中看出,经过课程的改革及根据教学情况的调整,学生的学习情况较好,成绩逐渐提高,成绩好的学生逐渐增加。

  5 结 语

  经过近 2 年的“数据结构”课程的教学改革,学生反映,虽然平时作业很多很辛苦,但确实学到了知识,而且很牢固,课堂及实验教学都取得了预期的效果,且该课程的成绩显着提高,激发了学生学习兴趣,明确了课程的重要性,以及该课程的作用,对本专业后续课程学习充满信心。在今后的教学过程中,将继续努力,提高学生的创新能力,培养学生研究性学习能力。

  参考文献( References) :

  [1] 教育部高等学校计算机科学与技术教学指导委员会。 高等学校计算机科学与技术专业实践教学体系与规范[M]. 北京: 清华大学出版社,2008.

  [2] 严蔚敏,吴伟民。 数据结构( C 语言版) [M]. 北京: 清华大学出版社,2011.

  [3] 赵 越,章小莉。 数据结构实践教学模式的设计与探索[J]. 计算机教育,2009( 13) : 194-196.Zhao Yue,Zhang Xiao-li. Practice Teaching Model of Data Structure[J]. Computer Education,2009( 13) : 194-196.

  [4] 王淮亭。 “数据结构”实践教学探讨与研究[J]. 计算机教育,2009( 12) : 133-134.

TAG标签: 数据结构     环节     课程    

相关论文