APP下载

以创新人才培养为目标的数据结构实验教学改革

2014-12-25刘晓静王晓英张玉安黄建强刘志强

实验技术与管理 2014年11期
关键词:数据结构课程设计实验教学

刘晓静,王晓英,张玉安,黄建强,刘志强

(青海大学 计算机技术与应用系,青海 西宁 810016)

针对创新及创新人才的培养,美国制定了著名的“2061”计划,旨在用一代人的时间根本改变美国的教育体制,造就新一代具有高度科学素养的国民。在我国,2012年4月20日,教育部发布《全面提高高等教育质量的若干意见》,明确提出将“创新人才培养模式”作为提高高等教育质量的一个重要举措。以创新人才培养为目标也是当今高等教育顺应时代改革的主题。实验教学是造就创新人才培养的平台,通过有效的实验教学,可以加深学生对基本理论的理解,提高和增强学生的实践能力、社会适应能力以及创新能力[1-2]。西部地区,特别是青海作为经济欠发达地区,实现青海省对信息化人才培养提出的“以培养应用型人才为目标”,已成为一个重要的研究课题。计算机科学与其他学科之间的互相渗透与融合对复合型人才的需求日益增加,从科学技术发展方向和构建复合型人才知识结构的角度出发,青海大学计算机系开设了数据结构课程[3]。

1 数据结构实验教学存在的问题

数据结构课程是介于数学、计算机硬件和计算机软件之间的一门课程,主要讲述算法设计和数据结构的基础原理和技术,是计算机科学课程体系中核心课程之首,作为学科的专业基础课,具有承上启下的重要作用,不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础[4]。社会上大多数公司在招聘软件开发人员时必然会考查应聘人员对数据结构的掌握程度,并将此作为衡量应聘者水平的重要依据[5]。课程所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其他课程,还是对从事软件工程的开发,都有着不可替代的作用。作为计算机专业的核心基础课程,数据结构课程既注重基本的程序设计能力的培养,又强调技术性和实践应用性。

计算机的程序设计是一项创造性的智力劳动,让学生理解、习惯、熟悉这一套算法构造的思维方法,是实践环节所要解决的核心问题,然而由于数据结构这门课程具有相当的抽象性和动态性[6],学生学习的兴趣和主动性不足,教学效果不理想,在实践教学中普遍存在以下问题:

(1)理论与实践相脱节。数据结构课程涉及的知识点比较多、程序复杂、逻辑性强、抽象性高。在整个教学过程中,教师常常重点讲授理论知识,而忽视了学生的学习兴趣与所学知识实际应用的结合。此外,现在多数教材中没有现成的源程序,需要学生将伪码描述的算法编程实现。久而久之,有的学生对学习逐渐失去兴趣,严重阻碍了学生专业素质、应用能力以及创新能力的提高。

(2)语言能力相对薄弱。学生对前导课程程序设计基础I、程序设计基础II学习不够扎实,尤其对结构体、指针这2种数据结构课程中常用数据类型的认识和理解还不够透彻,导致在完成课程实验中遇到各种与语言相关的技术障碍,使其在完成实验时举步维艰。

(3)缺乏编写算法的感性认识和体会。学生在积累算法编写经验和提高动手能力方面的实践还不够,因而缺乏编写算法的感性认识。

(4)作业抄袭现象严重。由于以上原因,学生不愿意花费时间和精力投入在作业中,因而为了完成作业任务,经常互相抄袭作业。

为了克服上述问题,在课程教学过程中,应构建并实施符合专业应用型创新人才培养要求的实践教学体系,从而促进学生专业技术素质与实践能力养成[7]。具体来说,应该通过把握本课程的主线和重点改革实验教学内容和方法,使学生具备一定的软件开发能力和自主创新能力,从而为学生今后的专业学习打下坚实基础。

2 实验教学内容的改革

数据结构课程的内容可以由概念表述、数据模型、设计算法3个层面来描述,从而也显示了本课程的3个阶段:数学模型—抽象数据类型—数据结构。因而在本课程实践教学中,也可以将教学实践的目标分为3个层次——理解抽象的理论概念、掌握数据模型的一些典型应用,并逐步培养学生利用数据结构知识解决实际问题的能力。这3个目标层次是相辅相成的,难度由简到难,同时也体现了学生掌握知识并运用知识解决问题能力逐步提高的过程。以培养高素质的应用型计算机人才为目的,依据教学实践目标的3个层次对实验教学内容进行改革,分为基础型实验、综合型实验以及课程设计[8]。

2.1 优化基础型实验,加强对理论知识的认识

为了帮助学生克服对前导课程程序设计不够扎实的困难,设置了C++基础以及抽象数据类型实验,从而对结构体与指针这2种常用数据类型进行了复习与巩固。

根据数据结构的内容设置了线性表的插入与删除、栈的基本操作、递归、二叉树的基本操作、二叉搜索树的基本操作、无向图与有向图的遍历以及各种排序的实现等基础型实验内容。学生还可以根据课本定义,自行扩展讨论、定义和实现一些其他基本操作。此外,为了帮助学生更好地完成实验内容,还编写了实验指导书,给学生提供了部分实例。

2.2 加大综合型实验,掌握基本数据结构的应用

每一种数据结构都有一些很典型的应用,但和复杂的应用问题相比,这类应用任务相对简单而直接,往往可以从任务描述中直接、容易地获知使用哪种数据结构[9-10],如单循环链表中的猴子选大王问题、栈中的括号匹配问题、队列中的机场调度问题、高维数组应用中的鞍点问题、无向图的最小生成树问题、有向图的最短路径问题以及计数排序问题等。

通过加大启发式的设计型和综合型实验,以点带面,让学生自己进行编程、调试,使学生在实验中加深了掌握该种数据结构下的数据组织、加工、处理的方法,进一步理解算法的设计,从而锻炼编写和调试程序的能力,进而增加了对编写算法的感性认识和体会。

2.3 增加课程设计,培养解决实际问题的能力

实验教学采用“教研结合”的人才培养模式,在实践中从科学技术的发展方向和构建复合型人才知识结构的角度出发,增加了课程设计环节,主要训练学生运用模板库进行项目开发的能力,以及进行基本的软件工程训练。对于学生来说,课程设计的任务更艰难,涉及的内容更多,要求的程序代码更长,而内容也更加灵活,但同时也给学生提供了更有自主发挥的空间,如可以增加界面设计等。学生在解决这些问题的过程中,会更加切实地感受到数据结构的作用,提高学习的兴趣。此外,课程设计是以小组的形式来组织实施的,有助于培养学生的创新精神和团队协作精神。

基础型实验,相对简单,容易实现,可以增加学生的自信心;综合型实验,可以使学生了解和体会到数据结构的实用性,成功地解决一些典型的应用问题而具有了成就感;课程设计,可以使学生对学过的相关知识有更深刻的认识、体会和把握,从而可以训练和提高学生对复杂问题的综合分析能力,树立务实的科学态度,锻炼科学思维,进而培养学生的创新意识。

3 实验教学方法的改革

实验教学要想获得令人满意的教学效果,必须采用多种教学手段综合运用。针对3个层次的实验,教师在实验指导中分别扮演不同的角色,采用相适应的教学手段和教学方法。

3.1 算法演示实验教学,增强学生的感性认识

由于数据结构的算法涉及从简单的线性表到复杂的树、图等多种数据结构,具有一定的难度和复杂性,给该课程的学习带来了许多困难,对算法思想的理解成为学习本课程的一个重点。通过数据结构演示系统可以将抽象的算法执行过程以浅显易懂的形式展现在学生面前,从而增强学生对算法的感性认识,如图1所示。

图1 数据结构演示系统

算法过程的可视化演示是通过图形的方式表示数据结构状态的转换及其变化过程,力求生动、形象,将算法执行的动态过程表现得淋漓尽致,从而使学生能够快速地掌握基本算法,迅速完成基础型实验。

3.2 实施案例实验教学,锻炼学生逻辑思维能力

学生学籍管理系统(见图2)、航空管理系统(见图3)以及景区旅游信息管理系统(见图4)3个案例,可以将线性表、栈、队列、树、图、排序等知识点贯串进来。在具体的实施过程中,按照探究未知知识领域的途径,通过提出问题、分析问题、创造性地解决问题、知识迁移等步骤对该教学方式予以实施[11]。通过这种系统的学习和使用,学生就能够掌握某个算法是如何运用到具体问题中的,从而锻炼了学生的逻辑思维能力。

图2 学生成绩管理系统

图3 航空管理系统

图4 景区旅游信息管理系统

3.3 实验和科研项目结合,引导学生进行探究性学习

在课程设计中,教师提供多个不同项目化的题目供学生选择。学生以学习小组作为一个项目组,按照要求进行构思共同商讨设计思路,然后进行算法设计,接着由项目组长进行分工,各自负责不同部分,分头去实现算法,最后项目组将大家的实现部分汇总在一起进行整个项目的运作并撰写课程设计报告。此外,鼓励学生参与到教师的教研和科研项目中去。

通过课程设计和参与教师的教研、科研项目,可以对不同程度的学生,特别是少数民族学生进行个性化培养,以激发他们的学习热情,培养和锻炼他们的创新精神和实践能力,使他们都能在不同程度上得到提高和发展。通过多种实践环节,使学生更好地理解课堂教学内容、拓展知识面,延伸和扩展课堂教学,全面地培养学生的素质,提高学生的抽象能力、思维能力、算法和数据结构的设计与分析能力、科学报告的撰写和表达能力,从而使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力。另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。

此外,这种以项目为导向的教学方法以学生为中心,强调小组合作学习和自主学习,注重培养专业技术应用能力、团队协作交流能力、系统工程分析能力和自我提升能力。该教学方法可以让学生深入理解数据结构相关理论、扎实掌握面向对象开发的技能,全面培养学生在学科技术、个人专业素质、人际等多个方面的能力,从而在本科层次培养出具备终身学习能力的高素质计算机应用和开发人才,并且最终能让每个学生带着自己的作品走上工作岗位。

4 优化实验考核评价方式

对于基础型实验,教师采用电子形式的文档进行作业布置和作业上交,因而使得学生拷贝、粘贴更加方便,存在作业抄袭现象严重、质量下降的问题[12]。为了防止作业抄袭现象继续蔓延,教师在批改作业过程中,采用具有相似度检测功能的在线作业批改系统,对学生提交的实验报告进行批改,从而减少了作业抄袭的次数。

在综合型实验的检测中,采用课堂上学生分组讲解、其他学生提问的方式进行检测,最后教师进行问题总结答疑,让学生意识到有时只靠一个人的学习是不够全面、不到位的,同学之间必须互相学习,遇到问题互相协助、共同思考解决方案,这样才能真正地掌握解决问题的真本领。这种学习方式也提高了学生的团队合作精神,为后面的课程设计打下坚实的基础。

在课程设计的验收时,教师安排开展一堂集研究、研讨、趣味于一体的数据结构课程设计答辩会,并邀请系里教师作为嘉宾评委出席,整个活动由学生进行策划、设计,并由班里学生推荐主持人。学生经过查阅资料—构思整体方案—算法设计—编码实现—调试运行—总结,整个过程中不断地讨论、不断地解决问题,每一个环节都可以锻炼学生的沟通能力、解决问题能力以及团队协作精神,让学生受益匪浅。

5 结束语

经过不断的实验教学改革与实践,本课程取得了可喜的成绩。数据结构课程2010年获批青海大学三类课程建设项目,2012年获批青海大学二类课程建设项目以及青海大学教改项目“基于项目导向的数据结构与算法课程教学研究与实践”,2013年获批青海大学课堂教学和考试制度综合改革项目以及清华大学携手Google助力西部教育项目之精品课程建设项目,2014年获批Google创新(开发)课题项目“基于MOOC理念的数据结构与算法课程混合教学模式研究”。此外,数据结构课程2013年获得了“青海大学精品课程”称号,该课程授课教师发表相关文章4篇,其中1篇EI检索,2篇ISTP检索。

在经过该课程的系统学习后,2008、2009、2010级学生申请并获批3项国家大学生创新型实验计划项目,3项青海大学大学生科技创新基金项目以及4项清华大学携手google助力西部教育科技创新项目。学 生 发 表 的 文 章HeapAdjustmentAlgorithms BasedonCompleteBinaryTreeStructure获 得2013年“科教杯”学术论文大赛国家级一等奖,《基于完全二叉树结构的堆调整算法》获得十三届“挑战杯”全国大学生课外学术科技作品竞赛二等奖。

在数据结构的实践教学中,以创新人才培养为目标进行实验教学改革,强化实践教学活动中的“教、学、做”合一,教师的“教”是前提、学生的“学”是主体、学生的“做”是实践。在以后的实践教学中,还需要继续更新教学理念,运用先进的教学手段,与时俱进,探索改革,更好地培养学生成为有创新性思维的新世纪人才。

[1]张星明,郑运平.计算机创新人才培养模式的探索[J].计算机教育,2013(18):16-19.

[2]王伟,孟祥贵,安寅.“创新人才培养模式”下的实验教学改革探索[J].实验科学与技术,2013,11(2):144-146.

[3]刘晓静,黄维通,王晓英.西部地区CDIO理念下的数据结构与算法课程建设[J].计算机教育,2013(17):107-111.

[4]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2007.

[5]沈华.数据结构、算法和程序之间关系的探讨[J].计算机教育,2013(4):58-61.

[6]高一凡.《数据结构》算法实现及解析[M].西安:西安电子科技大学出版社,2004.

[7]龚德良,谢燕江,王鲁达,等.以应用型创新人才培养为核心的计算机专业实践教学体系研究[J].计算机教育,2013(2):5-8.

[8]刘晓静,王晓英,薛媛媛,等.让趣味教学进驻数据结构与算法课堂[J].青海大学学报,2011,29(5):95-97.

[9]张同珍.数据结构课程实验教学探索与实践[J].实验室研究与探索,2011,30(9):293-295.

[10]李和平,龚波林,刘万毅.深化实验教学改革 强化技能型人才培养[J].实验技术与管理,2013,30(2):159-161.

[11]谭定英,陈平平,刘慧玲.以问题为中心的案例教学法在数据结构与算法课程中的应用[J].计算机教育,2013(12):50-53.

[12]王晓英,靳力,王晓青,等.基于序列匹配的作业相似度检测系统[J].计算机工程,2012,38(24):53-61.

猜你喜欢

数据结构课程设计实验教学
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
龙凤元素系列课程设计
中秋明月
几何体在高中数学实验教学中的应用
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
基于Articulate Storyline的微课程设计与开发
TRIZ理论在“数据结构”多媒体教学中的应用