您好, 访客   登录/注册

高职《数据结构》实践教学探索

来源:用户上传      作者: 李盘荣

  摘 要: 本文作者对高职《数据结构》课程实践教学的重要性、存在的问题,提出了实践教学的探索和实施方法,得到了一定的实效。
  关键词: 高职 《数据结构》课程 实践教学 探索
  
  1.引言
  
  《数据结构》是计算机程序设计的的重要理论技术基础,它不仅是计算机类各专业的核心课程, 而且是其它专业的重要选修课。《数据结构》是实践性很强的课程,本课程的教学不仅要注重学生对理论的理解、学习基本理论知识,更要注重培养学生的实践能力,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。
  通过本课程的学习,学生能够学会分析研究计算机加工的数据结构的特性,今后能够针对具体问题选择适当的逻辑结构、存储结构,以及相应的算法,编写出结构清晰、正确易读、符合软件工程规范的程序,为进一步学习后续专业课程和软件开发打下坚实基础。
  因此,《数据结构》课程教学中实践教学有着相当重要的意义。
  
  2.高职《数据结构》实践教学的重要性
  
  目前,我国正在大力发展职业教育,国务院作出的《关于大力发展职业教育的决定》,要求“落实科学发展观,把发展职业教育作为经济社会发展的重要基础和教育工作的战略重点”[1]。《中共中央国务院关于深化教育改革,全面推进素质教育的决定》中指出:“加强课程的社会性和实践性,重视实验课程的教学,培养学生实际操作能力。”因此,培养出合格的高职学生是目前各高职学校亟待解决的问题。高职教育不能等同于普通高校的教育,对《数据结构》的教学要体现出高职教育特色,我们要充分认识到实践教学的重要性和创新性,要使学生学好《数据结构》尤其要注重本课程的实践教学[2]。
  《数据结构》课程性质本身决定了实践教学的重要性。《数据结构》课程实践教学包括两方面:(1)与课程教学同步的上机实验;(2)课程结束后的课程设计。在整个教学过程中,两者缺一不可,相辅相成。通过两方面循序渐进地训练,学生能掌握更多的程序设计技巧和方法,提高分析问题、解决问题的能力。
  
  3.当前《数据结构》实践教学中存在的问题
  
  《数据结构》研究的是各种数据结构中元素之间的逻辑关系及在计算机中的存储实现[3]。只有通过实践环节,学生才能够更加感性地掌握这些数据结构所适用的运算及其实现和应用。然而,当前《数据结构》实践教学中存在着较多问题:一是由于我国办学的历史原因,高职的教材和大纲基本上都来自普通高校的教材和大纲的改编和缩编版本,很少有适合高职教育的《数据结构》的教材;二是由于高职学生相对普通高校学生基础差,底子薄,因而在学习本课程时产生了畏难厌学的情绪;三是学生在学习《数据结构》时,由于对前驱课程(如C语言)掌握得不够熟练,导致学习本课程困难;四是学生普遍实际动手能力较差,实践不能够佐证理论;五是学生认为这门课程理论性太强,太抽象、枯燥,面对具体问题时,不知该如何应用学过的知识来给出切实可行的解决方案,理论不能够指导实践。
  
  4.解决上述问题的几个前提条件
  
  要解决上述问题,使得教师教好数据结构,学生学好数据结构,我们必须做好准备工作。
  4.1制定合理的教学计划,正确处理理论教学和实践教学的关系。
  教师在授课之前一定要合理地制定教学计划、进度,这首先是教师对课程教学认识水平的一个重要体现,其次关系着这门课程的教学能否正常进行开展。总体而言,教学计划应该详略得当,同时考虑高职的特点。
  教师要教好数据结构,学生要学好数据结构,最为关键的一点就是注重并正确对待理论教学和实践教学的关系。教师应在计划中以理论为基础,偏重于实践,对于《数据结构》这门课将理论和实践比例协调在2∶1到1.2∶1,在教学计划中能够按照知识体系的铺展将教学分成理论教学和实践操作两大模块,相互交叉进行,并将实践操作模块分为教学内容实验和综合实验(课程设计)。
  这就要求教师不断提高自身素质,能够根据学生实际学习情况,以及对数据结构等计算机知识的需求,做个教学有创新意识、不断进取的新型教师。
  4.2选取好教材。
  所谓好教材就是要具有高职特色,教师在教材内容的选取上应坚持以学致用、学用结合的原则,集先进性、科学性和实用性于一体,尽可能地将最基础、最适用的软件写入教材,略去一些纯理论的推导和繁琐的数学证明;在内容的深浅程度上,把握理论够用、侧重实用、由深入浅的原则。同时,教材文字要浅显易懂,衔接自然,逻辑性强。由许乐平主编的《数据结构――C++描述》是一本非常适合高职的教材,其配套的《数据结构学习指导与实验》也是一本非常好的实践教学用书[4]。
  4.3注重教学过程、合理实施教学组织、理论能够指导实践。
  教学过程包括教师、学生、教学内容、教学手段和方法等基本要素,彼此联系,相互影响,形成了错综复杂的关系。教师要注重教学过程,采用启发式、讨论式、任务驱动式等多种教学方法设计好教学过程,并正确分析、认识和妥善处理这些关系,以提高高职课程教学质量。
  教师实施教学组织要根据教学内容,合理安排教学进度,注重节奏教学,精心准备,激情授课,强调交互式教学,深入浅出,理论联系实际,突出原理的应用;同时能够以人为本,诚心与学生交朋友,推崇亲情教学。
  对于高职学生,我们要重点培养其解决实际问题的能力,以应用知识为主,衡量学习成绩的标准不是知不知道,而是会不会干;所学的理论知识要能够指导实践。教师在教学过程中应尽量多采用一些动态效果来描述算法的思想,使学生易于接受和理解,并加深印象;尽可能将前后内容联系起来,从中寻找一些规律,进行归纳提炼和使其系统化,使学生能较好地理解各个知识点间的联系,从而降低课程的复杂度;在课堂上多举一些编程中常用到的一些数据结构中的算法,让学生知道这些算法都是用来干什么的;最后通过合理、有效地设计实践内容,来强化理论教学的效果,从而起到理论指导实践的作用。
  任务驱动教学法是一种非常好的教学方法,其实施过程为:提出任务→分析任务→完成任务→交流总结。在理论教学和实践教学两个模块中教师都可以很自如地运用这个方法。
  
  5.实践教学探索
  
  国务院《关于大力发展职业教育的决定》要求“加强职业院校学生实践能力和职业技能的培养”[1]。《数据结构》由于其课程地位的重要性,课程的实践教学不能单纯考虑课程本身,而必须综合考虑多个方面进行。加强实践,培养学生实践操作技能是本课程教学重点,也是高职教学的重要环节。
  5.1实践教学内容的设计。
  教师要根据学校实际教学条件和本课程知识体系的特点,合理安排实践内容,合理选题,立足基本,以培养学生动手操作能力为主,既要巩固课堂知识、拓宽知识面,又要培养学生的分析问题、解决问题的能力和创新能力。
  5.1.1实验课的题目安排要做到立足基本、分开层次、注意难易搭配。
  至少要求学生完成以下模块的实验(基本实践):①线性表操作;②栈和队列的应用;③二叉树的操作;④图的操作;⑤查找;⑥排序。例如在“线性表操作”实验中,可以设置以下题目:(1)分别用数组和链表实现线性表的逆置;(2)分别用数组和循环单链表实现约瑟夫问题;(3)一元多项式的加法。通过这种分层教学法,学生可以根据自己掌握理论知识的实际情况,选择做较难的还是稍易的题目,每一位学生都能够上机编程,提高自己的动手操作能力。
  5.1.2科学设置课程设计。
  课程设计是《数据结构》实验教学中必不可少的一个重要环节,它是学生对所学课程知识的综合运用,能够很好地培养学生全面、灵活的设计思想和较高的创新能力,加深学生对该课程所学内容的进一步理解与巩固[2]。因此如何科学地设置选题是本课程实践教学的一个至关重要的环节。建议设置一些具有综合性和专业性的题目,同时兼顾典型性、趣味性,比如:停车场管理、职工工资管理系统模拟、民航自动售票系统、舞伴匹配问题、类似记事本的文本编辑器、若干旅游城市的旅游线路选择等。学生课程设计前至少提前一个月给学生布置下去,供学生选择,给他们较充分的时间去思考、查阅资料、论证可行性,在可行的基础上编写程序,准备到机房实践验证,避免杜绝学生为了应付检查而出现“抄袭、拷贝”现象。课程设计对教师而言不是给出一个或若干选题就是任务完成,而要自始至终贯穿整个实践环节。

  5.1.3实践题目形式的设计。
  对于实践环节,传统的题目无论实验还是课程设计往往是给出文字叙述的题目和一些测试数据,就由学生去完成,通常再由教师给予一定的指导。但事实上,实践环节的题目形式应该是可以多样化的。笔者曾做过一些探索尝试:①借鉴全国计算机三级考试上机考试的形式,除了给出文字叙述以外,还给出大部分程序,要求学生完成实现某个功能的函数;②借鉴程序员考试除给出文字叙述以外,还给出基本完善的程序,缺少若干语句,要求学生进行语句填空;③除了给出文字叙述以外还给出一个基本完成的程序,但包含若干细小的错误,要求学生根据测试数据测试情况进行排错。其中③能够更好地考查学生的能力,也更加适合高职学生的能力实践,因为高职计算机专业学生就业目标之一就是成为软件测试员。
  5.2开设《数据结构》兴趣小组,培养学生的团队协作精神。
  培养学生的学习热情,无论是理论教学还是实践教学对学生的学习都非常重要,而在《数据结构》实践教学中作用尤为突出。教师可开设兴趣小组,鼓励一些能力突出的学生利用“数据结构”理论,结合相关的软件工程的知识,针对一些特定的课题或者具有实际市场价值的系统项目进行相关研究,这样一方面可以激发学生的学习兴趣,增强学生的编程能力、系统分析能力和科学创新能力,另一方面可以培养学生的团队协作精神。此项工作可以借助微机协会的指导或者和学校竞赛辅导小组相辅相成,经过尝试可以发现:①小组的成员往往能够领先完成每次实验的内容,以他们为核心,周围的学生也基本能够顺利完成实验。②通过研究趣味性的题目,小组成员常常进行讨论,有时组员依次发言,就自己所研究的问题、所得到的收获、所想到的解题思路进行阐述,并指出自己选择这种解决方案的原因,通过相互讨论,并由实践指导教师进行点评,指出方案中的优点、不足和需要改进的方法,小组成员感觉到这种方法能够学以致用,学习积极性大大提高,虽然兴趣小组开发不了大型的或者实用的程序,但经过教师指导,小组成员普遍反映这种方式既加深了对数据结构知识的理解,又增加了开发经验,获益匪浅。③在实践环节的课程设计过程中,尤其对应后面涉及的几个较大的题目,学生既可以借助兴趣小组的概念,又可以自由组合,甚至由教师指定分组,以小组的形式共同实现它们。教师要以培养学生的动手操作能力和团队协作精神为目的,鼓励学生互相沟通、共同探讨、共同参与,发挥各自的优势,达到共同提高的目的;同时要指导学生相互分工合作,从功能分割模块到模块间参数传递,乃至综合测试等都要给予学生必要的指导。指定分组的情况往往是:基于学生中实践动手能力有强弱的区分,分组务必使得每组学生中都有动手能力较强的学生,由他们负责所在小组的实验,指定他们做一些实验辅导工作,这样变教师指导实践为学生指导实践,能够充分调动学生参加实践的积极性。通过相互合作学生不仅得到了互相学习的机会,而且激发了学习热情,培养了团队协作精神,为以后的实际工作打下良好的基础。
  因此,开设“数据结构”兴趣小组,解决一些特定课题或者实际生活中的问题是一项很有意义的尝试。
  5.3实践教学方法及过程管理的改进。
  5.3.1以学生为主体,加强教师在实践教学中的主导作用。
  改革实践教学方法就是要注重学生是主体,通过对学生的系统引导,充分调动他们获取知识的积极性和主动性,增强他们的能力,提高学生的素质。实践是整个教学过程中的一个重要环节,实践教学的方法直接影响着学生对实践的态度,也影响着他们的动手能力、创新意识的培养。
  5.3.2学生实践过程的组织和管理。
  根据《数据结构》课程的特点,我们可以采取范例演示、独立实践与分组实践及上述三种方式交叉出现等多种形式进行实践活动。基于现有条件和培养团队精神的角度出发,我们可以对实验采用独立实践,课程设计采用分组实践来组织实施实践教学活动,一方面所有的学生都能够按照基本要求掌握数据结构必需的基本操作,另一方面学生通过分组可以相互学习、相互讨论切磋,提出一个最优方案后再实施,从而加强学生之间相互沟通和合作精神,为将来从事IT业需要群体合作的工作打好一定的沟通基础。
  教师要以学生为主体,改变自己在教学环节中作用,有针对性地选择学习内容,不再“满堂灌”,进行共性化与个性化相结合的教学。
  5.4改革考试方式,加强实验考核。
  传统的考核方式多是闭卷笔试,对于实践性很强的《数据结构》这一课程,单纯用笔试已经很难准确和完整衡量一个学生的知识水平和运用能力,必须通过实践操作、上机考核,才能真实反映学生所掌握知识技能。对于高职生,我们应该着重考核学生综合运用所学知识、解决实际问题的能力,促进学生个性与能力的全面发展。因此,笔者从有利于学生掌握知识,巩固所学内容,提高能力和素质的目的出发,对《数据结构》的考核采取了一系列的措施,并在城职院许可的范围内进行了一些考试改革的尝试,强调实验考核的重要性。具体做法是:每次实验课结束后要求学生填写实验报告,包括实验目的、实验内容、详细设计、实验结果和实验体会。此外,对考试分数的分配也进行了重新调整,上机实验和平时作业占总成绩的20%,课程设计占总成绩的20%,期末考试占总成绩的60%。笔者通过加大上机实验和课程设计的分值,有效地调动了学生的学习积极性,达到了督促学生勤动手、多思考的目的。
  
  6.结语
  
  总之,对于高职高专《数据结构》课程的实践教学,我们应不断探索教学方法策略,使学生通过数据结构的实践,提高分析问题、解决问题的能力。只要我们思想上重视实践环节的教学,提高自身实践教学的能力,采用合理的教学方法,“数据结构”课程的实践教学必将取得良好的效果。
  
  参考文献:
  [1]国务院.关于大力发展职业教育的决定.国发[2005]35号,2005,11,09.
  [2]王宗亮.高职高专计算机专业课程教学探索与实践.广东水利电力职业技术学院学报,2005,9.
  [3]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1997.
  [4]许乐平.数据结构――C++描述[M].北京:中央广播电视大学出版社,2006.


转载注明来源:https://www.xzbu.com/9/view-985649.htm