APP下载

应用型人才培养过程中《数据结构》课程教学改革

2015-09-28高广银姜枫丁勇

现代计算机 2015年33期
关键词:上机数据结构C语言

高广银,姜枫,丁勇

(南京理工大学泰州科技学院计算机科学与技术系,泰州 225300)

应用型人才培养过程中《数据结构》课程教学改革

高广银,姜枫,丁勇

(南京理工大学泰州科技学院计算机科学与技术系,泰州225300)

0 引言

人们使用计算机求解实际问题,其核心是算法设计,而算法设计又高度依赖于数据结构,数据结构的选择则取决于问题本身的需求。随着计算机科学的发展,数据结构不断完善,它作为一门重要的专业核心必修课程,既是对以往课程的深入和扩展,也为深入地学习其他专业课程打下基础,成为研究与构筑计算机求解问题过程的两大基石之一[1]。然而在实际教学过程中,《数据结构》课程面临着诸多问题,在新的教育形势下教学改革势在必行。今年上半年教育部副部长鲁昕透露,中国高等教育将发生革命性调整,将有600多所高校转向职业教育,培养技能型人才[2],尽管改革的细节没有披露,但社会舆论及市场调研显示我国高等教育将调整研究型与应用型的比例,即与企业对接加强应用型人才的培养。在培养应用型人才的过程中如何重新审视专业课程教学,密切联系实际,适应人才培养的需求,值得共同研究,本文在学校立项支持下对《数据结构》课程的教学改革做一些探索。

1 教学现状及问题

1.1课程本身难度大

《数据结构》课程作为专业核心课程不仅逻辑性强,而且极抽象,很多内容即使利用课件或动画也无法完全将理论知识很直观地表现出来,不花足够的时间揣摩很难理解。此外《数据结构》课程内容较多,知识结构庞大,往往前面所学知识还没有完全理解,新的知识就接踵而至,这使得问题不断堆积,不少学生在心理上感到恐惧,难度非常大。

1.2先导课程不扎实

数据结构与算法课程的先导课程有高等数学、高级程序设计和离散数学等。学生在学习该课程前必须能够较好地掌握这几门课程。例如,分析算法时需要一定的数学基础;理解和实现算法时需要熟练地运用高级程序设计语言。由于数据结构中的算法大多采用类C、C语言或C++描述,而学生对于预定义常量和预定义类型的作用与用法、函数返回执行状态的作用与用法、函数定义和调用的方法、使用类型定义(typedef)描述存储结构的方法、指针及动态内存分配与释放的原理与方法普遍掌握不好,这些知识通常安排在C语言课程的最后,其重要性易被学生忽视,不少学生教条地去遵守语法规则应付了考试,却未真正搞懂这些知识的运用,导致其在后续课程数据结构的学习中对新知识的理解消化与实践应用受到阻碍。在数据结构课堂教学中,教师往往不得不花一部分时间在C语言的复习上。尽管如此,学生仍然模糊不清,教学效果不理想,久而久之,有些学生甚至失去了学习兴趣。因此,先导课程掌握不扎实,给《数据结构》课程的教学埋下了隐患。

1.3实践动手能力弱

《数据结构》是一门理论与实践并重的课程,其教学要求之一是培养学生进行复杂程序设计的技能和养成良好程序设计的习惯。对提出的问题,要求学生能通过分析,正确选择相应的数据结构和算法,编写程序解决,从而提高分析和解决问题的能力,这是学以致用的检验,所以在整个教学过程中,完成上机实验是个至关重要的环节。但是在实际教学中,一方面课时有限,平均每两周一次上机课,每次2学时;另一方面学生没有课前预习习惯,所有问题都在上机课时暴露,能当场解决便解决,不能解决的课后多数不能独立完成。由于实践训练不足,理论课上的算法成了“纸上谈兵”,学生学得较肤浅,听课就更觉得枯燥乏味,从而恶性循环,教师在授课时也觉困难重重。

2 理论教学改革

针对以上存在的问题,整体教学改革思路是转变思想,站在学生的角度思考,结合社会及用人单位的需求,重新整合教学内容,充分调动学生积极性,发挥学生主体性[3],否则再好、再科学的培养方案、教学计划都无法落到实处。

2.1理清知识脉络

从使用计算机解决现实具体问题出发,理清数据结构、算法及程序的概念及其关系[4],以及数据结构的研究内容包括数据的逻辑结构、数据的存储结构及数据的运算,进而引出线性结构、树形结构、图形结构等,合理地展示知识的框架[5]。

如图1所示,使用计算机解决实际问题,首先对实际问题进行建模得到抽象模型,抽象模型包括了数据的逻辑结构;算法设计者通过设计算法来求解模型,表示数据的运算,算法的设计将受到数据的逻辑结构的影响;将抽象模型映射到计算机内存储器便是数据的存储结构,它会影响程序员通过高级编程语言将算法实现;程序再由编译器翻译成计算机可以直接识别的机器指令,计算机执行指令完成对实际问题的求解。通过这一过程,学生可以更好地理解数据结构研究的对象,把握学习的思路,明确实践的要求。

2.2复习前导课程

前导课程知识是学习数据结构的基础。C语言中的结构体和指针是描述存储结构的手段,C语言本身也是将算法转换成程序的高级编程语言之一[6]。那么在实施数据结构教学时,要给学生点明C语言中与数据结构相关性大的知识,适当地复习,结合学生掌握情况布置复习任务,抓住两门课程之间的衔接点组织教学,学生往往会在复习知识时产生一种亲切感,从而平滑地过渡到新课程中来。同时,教师应将复习重点从编程语言语法转变为编程思维训练、能力培养,安排好进度,在第一次实验课时检验学生们复习情况,为数据结构课程的展开夯实基础。

2.3改进教学方法

图1 数据结构概念导入图

鉴于数据结构是使用计算机解决实际问题的基石之一以及其内容的抽象性,教师在第一次课作课程介绍时,应通过介绍数据结构的实际应用激发学生的学习兴趣。例如,走迷宫问题,如何记住走过的路;学校的图书管理系统,如何快速地查找图书信息;出门旅行,如何选择线路节省开支;一个工程,如何科学管理才能实现最短工期;以及八皇后问题、背包问题等。这些问题或者有一定实用性,或者有一定趣味性,能激发学生一探究竟的愿望和学习数据结构知识的兴趣,有兴趣便是好的开始。

在接下来的课程中,同样应注意通过实例导入课程知识,例如讲解栈结构时,可以用弹匣的例子,装弹时子弹一个个地压进弹匣,发射时子弹从弹匣顶部依次射出,这是先进后出原则,而且只在一端操作。讲解队列时,可以举学生食堂排队打饭的例子,排队总是排到队尾,总是队伍最前面的人打完饭后离开队伍,这是队列结构,先进先出,而且一端插入、另一端删除操作。通过例子过渡到知识点,学生易于理解,不觉得枯燥。

数据结构中很多内容较抽象,仅通过课件表达不够形象,可以制作动画呈现。特别地,可以列举出一些难度适中的算法,让学生自主选择、不限技术做成动画展示,进行评讲和评比,并计入平时成绩加分,充分调动学生积极性。笔者在教改过程中发现,学生会借此机会组织了一场“课程动画制作大赛”,通过网页、Flash、幻灯片等多种形式将数据结构中算法、C语言中指针运算等以动画形式描述,并通过评比择优进行再创作,与教师讨论,制作成优秀的作品,当学生署上自己的姓名时,自豪感油然而生。而且通过这样的活动,学生们其他方面的技能也得到了锻炼和提高。

3 实验教学改进

《数据结构》是一门实践性很强的课程[7],基本概念的理解、原理方法的掌握通过算法的实现体现,针对学生动手能力弱的问题对实验教学进行改进,首先要保证上机课的数量。传统的主理论辅上机的教学方式,对于培养科学型、工程型人才固然受用,这些学生基础扎实、主动性强,但是对于培养应用型人才不太合适,他们在抽象能力、举一反三方面都稍逊,那么需要规划理论课与上机课的比例,调整部分理论课为上机教学课,边讲边练,将复杂问题分割,逐个突破。再结合自主上机,学生达到一定基础训练量后,就能够融会贯通,综合运用相关知识解决复杂问题,逐步减少依赖,独立分析和思考。

其次应保证上机课的质量,精心设计上机实验题。针对应用型人才的培养,应紧扣所学知识点选择有代表性的、难度适中的典型算法及具有应用性的实例作为实验题。上机实验题应设置不同的难度,包括基础型、验证型、综合型及设计型,并且分为必做题和选做题。基础型、验证型的题目为必做题,主要巩固数据结构的概念和算法;综合型、设计型的题目为选做题,训练学生综合运用知识、分析实际问题及解决问题的能力,对于这部分题目教师可以允许学生分组完成,并根据实际教学情况适当提供一些辅助源代码,引导学生完成复杂问题求解。此外,可以允许学生自选综合型、设计型实验题,教师负责把关,学生对自选题往往更有责任心;可以允许学生就某些数据结构或算法深入研究,而不必求其全,灵活把握考核尺度。这样,学生通过自身努力在不太长的时间里可以看到结果,会有种成就感,增强了自信心,提高了学习兴趣。

4 结语

加大应用型人才培养力度是高等教育调整趋势,如何培养应用型人才是新的教育命题,在归纳总结了数据结构课程教学的现状,分析了问题产生原因的基础上,提出以调动学生积极性,发挥学生主体性为根本出发点,结合数据结构课程特点,从理论教学和实践教学两方面进行改进,理论教学注重知识讲解的趣味性、实用性,实践教学探索实验的自主性、阶梯性,合力为学生带来学习的成就感,提升实践动手能力,符合应用型人才培养需求。

[1]张铭,耿国华,陈卫卫,胡学钢.数据结构与算法课程教学实施方案[J].中国大学教学,2011(3):56-60.

[2]储召生.地方本科高校转型应走出身份困惑[N].中国教育报,2015-6-17.

[3]刘广斌.内生主体性诉求:中国高等教育的双重转型[J].湖南社会科学,2013(2):234-237.

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

[5]严蔚敏,吴伟民.数据结构(C语言版)[M].清华大学出版社,2012.

[6]张乃孝.《数据结构》教学与教材研究[J].中国大学教育,2013(2):86-90.

[7]余艳,刘燕丽,李琳娜.数据结构实践教学内容设置的分析与思考[J].实验技术与管理,2014(4):170-173.

Data Structure;Self-Study;Teaching Method

Data Structure Course Reformation in the Process of Application-Type Talent Cultivation

GAO Guang-yin,JIANG Feng,DING Yong
Department of Computer Science&Technology,Taizhou Institute of Science&Technology,NUST,Taizhou 225300

1007-1423(2015)33-0009-04

10.3969/j.issn.1007-1423.2015.33.003

高广银(1982-),男,江苏姜堰人,讲师,硕士,研究方向为数据挖掘、机器学习、图像处理

姜枫(1980-),男,江苏泰州人,副教授,博士,研究方向为计算机视觉、机器学习

丁勇(1980-),男,江苏姜堰人,副教授,硕士,研究方向为数据库理论、数据挖掘

2015-10-29

2015-11-20

在加强应用型人才培养的教育调整形势下,分析《数据结构》课程教学的现状,针对存在的问题,探讨以调动学生积极性与发挥学生主体性为目标,对理论教学与实践教学两方面进行改进的教学改革方法。

数据结构;主体性;教学方法

南京理工大学泰州科技学院教改项目(No.YJG2013B14)

In order to strengthen the education of application-type talent training,analyzes the present situation of the teaching of Data Structure course.According to the current problems,inquires into method of teaching reformation with respect to two aspects,theory teaching and experiment teaching,which is aimed to stimulate the activity of the students and develop their self-studying ability.

猜你喜欢

上机数据结构C语言
周金应
数据结构线上线下混合教学模式探讨
标准化护理程序对体外膜肺氧合术患者上机各阶段用时的影响
基于Visual Studio Code的C语言程序设计实践教学探索
为什么会有“数据结构”?
51单片机C语言入门方法
上机数控“可疑”的高毛利率
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
高职高专数据结构教学改革探讨