当前位置:首页 期刊杂志

基于项目的教学方法在数据结构教学中的应用

时间:2024-05-05

汪赫瑜

摘要:《数据结构》是计算机专业的核心基础课程,也是一门实践性很强的课程。在《数据结构》课程教学中,结合实际项目对教学方法进行了改革,让学生在教师的组织引导下,通过完成项目,更好地掌握所学知识,把理论知识更好地应用于实践,取得了良好的教学效果。

关键词:项目;教学方法;教学效果

中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2016)19-0147-02

一、引言

数据结构是一门学科,主要针对非数值计算(如表、树、图等)的程序设计问题,研究计算机的操作对象以及它们之间的关系和操作等[1]。同样的数据对象,用不同的数据结构来表示,运算效率可能有明显的差异。好的程序设计必须要采用好的算法,同时还要有好的数据结构。《数据结构》这门课程在计算机及相关专业本科生的教学计划中起着承上启下的重要作用,同时学好本门课程可以为其他专业课的学习打好坚实的基础。

二、传统教学存在的主要问题

在以往的教学中,老师一般都偏重概念,忽视思想,脱离应用,照本宣科,没有从思想和过程上将算法阐述清楚;对利用数据结构和算法解决实际问题讲解太少,使得许多学生认为《数据结构》是纯理论课程,只重视理论学习而轻视实践。

数据结构这门课程相对而言抽象内容比较多,算法理解相对困难。特别是一些理论知识比较抽象,在教学过程中无法将其直观地表现出来。比如树和图的抽象数据类型的定义中,数据关系的描述;再如图的关键路径算法、最短路径算法,要理解这些思想都比较困难,给教学带来了一定的难度[2]。

“C语言程序设计”是“数据结构”的前导课程。但很多学生对多维数组、结构体、指针这三种数据类型的认识和理解不深,尤其是缺乏对函数的递归调用及递归过程的理解。这些内容是数据结构课程的重要基础和必备知识,在数据结构课程中使用频度相当高。很多同学编程能力差,这都导致了数据结构课程的教学效果不理想,部分学生信心受挫,对数据结构这门课产生抵触情绪。

课程考核方式单一。当前数据结构考核主要就是期末笔试考试,造成许多学生为考试过关而学,并不注重自身能力的提高,造成大部分学生在学完课程后连简单的程序设计都无法完成。这种背离教学培养目标的现象已严重阻碍了数据结构课程的良性发展。

综上所述,许多高校在讲授数据结构这门课程时,遇到的一系列问题,我们应该寻找行之有效的方法加以解决。

三、项目驱动教学模式[3]

为了解决数据结构教学过程中存在的主要问题,提出了一种基于“项目驱动”的教学法,该方法是实施探究性教学模式的一种教学方法。它是将所学知识隐含在一个或几个项目当中,在学科学习中,“项目驱动”教学法以问题作为载体,创设一种类似科学探究的情景或途径,引导学生学习新的知识,并让学生自主通过已学的知识,分析问题、完成项目,并通过项目再更好地理解所学知识,做到融会贯通,既培养了学生的实践能力又巩固了已学的知识。

(一)教学方法

采用“基于项目驱动”的教学模式,主要就是通过“项目”的提出,将学生带入思考环境中,从而引出需要解决“项目”中问题的方法——新的知识点,通过新知识点基本功能的讲述,实现所提出的“项目”的基本功能,接着引导学生思考如何去完善这个“项目”,从而引出新知识点的全部功能或各种用法,使学生在主动思考中自觉地接受知识这样一种教学模式;将传统模式中以教师为中心、学生被动地听,以讲述知识点为主、理论与实际严重脱节的教学方式,改变为以学生为中心、通过学生主动思考,来引导学生探索新知识,设计项目从而使理论与实际相结合,来激发学生的学习兴趣,培养学生解决实际问题的能力。学习、思考、动手相结合,相辅相成,老师引导学生边学边做,小组成员协作完成相应的学习任务,实现“学中做”、“做中学”,使学生不会觉得所學知识枯燥无味,还能更好地理解一些复杂的问题。让学生真正掌握知识和相应技能。

(二)教学组织过程

在教学手段上重点知识主要以多媒体技术为依托,制作高质量的多媒体课件,突出教学内容的重点,对难理解的算法采用图形设计和动态演示的方式形象地表示出来,加强学生对抽象问题的理解,用以扩大学生的编程思维能力。

在教学过程中除了对重点知识进行讲授之外,还对实际项目进行系统分析,定期安排小组进行研讨,每个小组分阶段给出项目需使用的主要理论知识,需完成的主要功能,以及在实现时遇到的主要困难,整个过程中以学生为主,教师为辅,引导学生完成项目。

(三)考核方式

数据结构是一门理论与实践结合非常紧密的学科,针对这一特点,我们采取的考核方式从传统的笔试,改为以监督学生的学习过程为主的方法,主要从三方面进行考核。

1.平时成绩。平时成绩主要包括平时课堂表现,上机实验的完成情况,作业完成情况,小组研讨时的表现进行评价,平时成绩占总成绩的25%。

2.综合项目成绩。综合项目中设置了3个项目,内容涵盖线性表、栈和队列、树、图、查找和排序等知识。根据学生撰写的文档质量、学生设计的软件的功能完善情况、演示及答辩,明确每个学生所做的工作,综合评价每个小组成员对所做项目的贡献度。综合训练成绩占总成绩的45%。

3.期末考试成绩。期末闭卷考试考核学生对本课程的综合理解与掌握的情况,采用选择、填空、综合应用等多种题型进行考核,内容涵盖数据结构主要知识点:算法时间复杂性、空间复杂性分析、线性表、栈和队列、串、数组和广义表、树、图、查找和排序等内容。期末闭卷考试成绩占总成绩30%。

四、综合项目的设计与实施

《数据结构》这门课程主要讲授线性结构、树形结构和图形结构三种结构,所以针对重点内容主要设计三个项目进行训练。每个项目只给出基本功能,要求学生查阅资料,分析需求,尽可能多地完成功能。

(一)项目设计

1.线性结构综合项目。线性结构是最基础,也是最重要的一种结构,通过此项训练让学生掌握线性结构的知识;要求编程实现XXX管理系统,使学生掌握线性结构的存储(顺序存储和链式存储)及相关算法设计(录入、修改添加、删除、查找、排序、统计等)。充分运用所学知识,以及对所设计项目需求的充分理解,设计功能完善的系统。

2.树形结构综合项目。树形结构是一种非常重要的非线性结构,它用于描述数据元素之间的层次关系,通过此项训练让学生掌握树形结构的知识,使学生重点掌握树与二叉树的建立、转换,二叉树的存储和遍历,和二叉树相关的一些运算。

3.图形结构综合项目。图形结构是一种比树结构还复杂的非线性结构,该结构的应用极其广泛。通过此项训练让学生掌握图结构的知识;使学生重点掌握图的存储和遍历及图的各种应用实现;重点是关键路径、最短路径、最小生成树的实现。

(二)项目实施

把学生按每小组5人进行分组,组内同学共同设计完成训练项目。根据教学的进度,每个项目大约设计5~6周,每周安排答疑和上机时间,并在设计过程中根據需要在上课时安排小组研讨。每个项目完成后,每小组要提交书面文档(主要包括问题定义、问题分析、设计思路、主要的数据结构、功能模块图及函数的定义及功能等);实现的软件设计提交电子文档;最后通过答辩检验学生的综合知识掌握的程度,明确在项目完成过程中每个学生所做的工作,同时组内成员要互相讲解自己完成的部分,使得每个学生都能完整地掌握项目设计的全部内容。

(三)效果评价

采用“基于项目驱动”的教学模式进行教学,教学效果的评价主要通过验收综合训练的结果。主要有三部分组成,一是学生书写的文档,包括问题定义、问题分析、设计思路、功能模块图、功能描述、运行结果以及分析组成;二是学生设计的软件,通过演示了解完成的具体功能,尤其是了解除了给出的基本功能之外又完成了哪些附加功能;三是通过答辩了解每个学生所做的工作,以及对小组其他成员所做工作的学习情况;最后通过分析学生每个综合训练的最终成绩来评价此教学方法的效果。

对于每一个项目来说,每个小组的文档部分完成情况良好,内容完整,描述清楚。软件实现从正确性、完整性、可读性、可理解性、可修改性、灵活性及操作方便性等方面综合评价。学生们针对报告的设计思路能够做到很好的实现,但都存在功能考虑不全的问题,主要原因是需求分析做的不够好,很多功能学生们都想不到,但通过训练使学生们得到充分的锻炼,编程能力有很大地提高。答辩部分主要看学生们回答问题的准确性和完整性,通过学生们回答问题及讲解主要算法,反映学生对算法的理解和掌握情况良好,解决具体问题的能力都有很大提高,同时还提高了学生们的语言表达能力。

总体来说,采用基于项目的教学方法改革取得了一定的效果,学生们都能充分重视和认真对待每个项目,培养了学生们的团队精神,从而合作完成设计及实现。

五、结语

将实际项目应用到数据结构的教学中,激发学生的求知欲和自主学习的积极性。让学生将课堂上学到的知识直接应用于具体项目,能够使学生更好地理解理论知识,并能提高学生的实际动手能力。为后续课程的学习和科研工作的参与打下良好的基础。经过此教学方法的改革达到了很好的教学效果,学生们掌握本课程的知识情况比往届学生要好,得到了广大同学的认可。

参考文献:

[1]严蔚敏,吴伟民,等.数据结构C语言版[M].北京:清华大学出版社,2007:22-23.

[2]游静,李宁,徐守坤.数据结构教学问题的思考[J].时代教育,2008,(10):147-146.

[3]徐雅斌,周维真,施运梅,刘旭红,凌涛.项目驱动教学模式的研究与实践[J].辽宁工业大学学报(社会科学版),2011,(13):125-127.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!