专科层面《数据结构》实验教学改革
2014-11-23常璐璐
常璐璐
(滨州学院 计算机科学技术系,山东 滨州 256603)
《数据结构》是IT专业中一门重要的基础教学课程,该课程的开设必需同时开设实验课程。滨州学院计算机科学技术系将《数据结构》课程的建设和实验教学改革有机结合起来,探索出一条信息化人才培养之路[1]。
1 教学现状
1.1 先导课程掌握较差,课程本身难度大
要学好《数据结构》,必须得有扎实的编程基础,《数据结构》的前导课程是《C语言程序设计基础》,从多年的教学情况来看,学生对于程序设计基础的掌握表现出极大的不一致,只有极少数的学生能够掌握好这门语言[2]。而且在前期的学习过程中仅仅讲到基本的语法、数据类型、函数等概念,对于数据结构实验中经常用到的头文件、宏定义、结构体、指针、递归、函数调用等概念只是作了简单地介绍,没有深入展开。学生在实验课程中不能正确输入数据,对结构体、函数等概念不熟悉,函数的传址调用概念不清,有关指针的内容理解不深。对将算法转化为程序感到非常困难。因此学生在数据结构实验课中就会遇到各种问题,会出现入门困难,甚至一节课都调不好一个小程序等问题。
1.2 考核方式不全面
现阶段大多数高校对于该门课程一般的考核方式是期末纸质考试或者提交项目源代码,甚至有的学校对于学生的实验课程没有单独的考核。由于纸质考试的形式无法从各个方面考查学生的编程能力和其对算法思想的掌握情况,只会导致学生死记硬背书本知识[提交项目源代码会导致绝大多数学生简单复制个别学生作业的作弊现状,所提交的项目源代码千篇一律,教师无法从过程动态考查学生对该门课程掌握的真实情况[3]。
1.3 学生的学习热情不高
由于课程抽象不易理解,课程对应的实验项目较大,课程项目需要要到的前导知识较多,一般一个大的项目需要好几堂课才能完成。项目难度高,工作量大,前后知识的关系密切等原因导致学生对于该门课程的学习积极性普遍不高。
2 实验教学改革
2.1 实验教学改革的理念
为了解决上述问题,结合本学校计算机专业中各专业多年授课的实际情况,我们提出了从五层次开展实验,实验过程注意三个相结合,同时实验结果要注重两个培养的教学改革理念,其示意图如图1所示。
图1 数据结构实验教学改革示意图
按照实验的内容、难度的不同将所有实验分为五个层次:预备型实验,验证型实验,设计型实验,研究型实验,综合型实验。
预备型实验需要学生在课前预习完成,上课前任课教师检查或者指定学生对其他同学的预备型实验进行检查。例如,冒泡排序算法实现就是预备型实验,学生通过完成该实验能够熟悉开发环境,了解类C语言与C语言的区别。验证型实验是验证教师课堂讲授的内容,设计型实验和研究型实验都是在之前实验的基础上进行设计创新。验证型实验、设计型实验、研究型实验都是在课堂完成,学生根据自己学习的情况进行实验类别的选择。例如:线性表基本操作的实现、二叉树基本操作的实现等属于验证型实验,学生将课堂上的内容通过算法实现进行验证,加深对课堂知识的理解;一元二次多项式的实现、利用队列实现约瑟夫环问题等属于设计型实验,该类实验要求学生根据所学的知识来进行相关设计并最终解决问题;用各种查找、排序算法对同一组数据进行操作、利用队列实现按层次遍历二叉树等属于研究型实验,通过完成该类实验,学生能更好地掌握各种数据结构的特点,以及如何在需要的时候选择恰当的数据结构;综合型实验也就是课程设计,是教师根据课堂所讲授的几个章节的内容综合布置一道题目,让学生课下组织材料,独立或者几个同学一起进行设计,定期举行综合型实验的汇报答辩[4]。例如:地图填色问题,银行排队等问题属于综合型实验,学生选择多种学过的数据结构实现算法设计的要求,从而达到对所学知识综合运用,融会贯通的目的。
三个结合是指算法分析能力与程序设计能力相结合,集中启发式探讨与分类辅导答疑相结合,阶段化过程考核与多元化综合能力考核相结合。
算法分析能力与程序设计能力相结合是指将教材上的算法和实验课上程序设计有机结合起来,能将算法转化为对应的程序,用程序来验证算法。集中启发式探讨与分类辅导答疑相结合是指实验课堂上教师做适当的启发式指导,学生根据教师的启发分组进行讨论,教师根据每组讨论的情况再进行指导,循环几轮之后,学生对于所设计的程序、程序所对应的算法都有了深入的理解。例如:利用栈实现表达式的问题,学生分组对问题进行讨论时,教师启发学生要结合栈的特点来解决表达式的加减乘除运算问题,通过分组讨论、编程实现,使得每个学生都能掌握栈这种数据结构。阶段化过程考核与多元化综合能力考核是指取消一考定结果的先例,而是将考核阶段化、过程化、多元化,每个综合型实验进行答辩考核,实验过程进行随机考核,考核方式包括答辩,书面小结,课堂表现等。学生最终实验成绩=课堂表现25 +书面小结25 +答辩50 。
2.4 两个培养
两个培养指算法分析设计能力培养和综合能力培养相结合。我们要求培养出的学生不仅能写出优秀的算法,编出高效、优质的程序,更是一个综合能力突出的项目经理。例如:在实验过程中选取了停车场问题、地图涂色问题、银行排队问题、实现串行算法并行化问题等。这些算法的分析以及程序的实现不仅帮助学生进行算法分析设计,更重要的是借助实现这些程序,学生的编程能力、综合处理问题的能力都得到了提高。
3 《数据结构》实验课程改革效果
通过将数据结构实验课程在滨州学院2009级到2011级专科的教学过程中进行分类分层次的改革实践之后,主要出现了如下表现:
(1)学生学习积极性大幅提高,到课率高,课堂表现积极。通过将实验项目进行五个层次,三个结合,两个培养的分层划分,学生对该课程的学习循序渐进,课前预习实验课堂内容,课上选择设计型实验或者研究型实验或者验证型实验进行分组协作,课下总结学过的内容和同学们一起进行综合型实验的设计,整个过程相辅相成,极大地提高了学生的学习效果[5]。
(2)学生的算法分析设计能力和综合能力都大幅提高。通过过程考核、随机考核、实验答辩等多个考核形式,动态掌握了学生的学习情况,随时发现问题随时解决。老师考核学生,学生根据分组情况,组长考核组员,组员之间互相监督,互相学习,使得绝大多数同学的算法分析设计能力和综合能力都大幅提高。
(3)2010级软件技术专业和网络技术专业专科班的专升本率分别为23 和36 。《数据结构》是专升本考试的必考科目,专升本率的升高可以从一个方面反映出学生对该门课程的掌握是随着实验课程教学改革的过程逐年提高的。
4 结束语
实验教学是教学中极其重要的组成,能否良好地开展实验教学决定了学生对课程掌握的程度和老师的教学效果。几年来的实验教学改革显示,实验课程的教学组织过程更加科学,极大地调动了学生的学习积极性;实验内容的分类分层能极大地提高学生的动手创新能力,充分调动学生在实验课堂上的主动性和积极性,使得专科实验教学的总体水平得到了明显提高,进而推动本专业其他课程的讲授。
[1] 安 婧.美国高校信息化建设对我国高校的启示研究[D].哈尔滨:黑龙江大学,2010.
[2] 顾春琴.面向CDIO的《数据结构》教学改革与实践[J].现代计算机:专业版,2010(15):30-31.
[3] 李刚.《电子商务概论》课程教学改革探索[J].淮南职业技术学院学报,2012(2):53-54.
[4] 吴卫江.计算机接口技术课程实验教学探讨[J].计算机教育,2011(6):95-97.
[5] 党兴亚.利用计算机教学提高学生整体素质[J].成才之路,2013(4):21.