现行教材大多是在本科教材的基础上进行简单的修改编成的,偏重理论,缺乏生动有趣、通俗易懂的案例,教师应该选择相对较适合的教材,另外平时留心,收集材料,备课时精心选择案例,好的案例应该是:(1)包含学生将要学习且已经学习的知识。(2)难易得当。(3)接近社会、生活,体现时代性。虽然学生基本理解学习内容了,但是实践起来往往还会遇到一些困难,因此重要的案例要让学生完成全部编码并调试成功,这样才能切实理解学习内容。当一个案例在计算机上实现时,能让学生清楚地看到理论的用途,将增大学习的兴趣,又能给他们很大的成就感,将增强学习的信心。
如在介绍栈时,可以进制转换作为案例,设置以下问题:①如何将一个十进制数据结构转换成二进制数?②如何将一个十进制整数转换成二进制整数?③余数产生的顺序与输出的顺序的关系,与栈有什么联系?④简述用栈实现进制转换程序的过程。⑤栈是一种特殊的线性表,参照已学过的线性表,栈的存储结构如何设计?⑥栈的基本操作(如入栈和出栈)如何实现?⑦程序可分为几个模块?要定义哪些结构体和函数?教师应逐步提出这些问题,让学生思考、讨论,注意引导、启发、提示,使学生得出正确的答案,这有助于培养学生的思维能力,然后根据程序的规模、难度,把学生分成几个小组,分别完成整个程序的编码及调试。
一个案例的具体实现往往很复杂,要编写很多代码,通过分工,每个学生负责一部分工作,降低了难度,缩短了时间(课时有限,在我校是每周4课时),事实上学得较好的学生将分到较难的任务,可以忽略简单的内容,学得较差的学生将分到较易的任务,可以忽略复杂的内容,两者都能得到提高,巧妙地实现了分级教学(很多老师注意到现在学生的水平差异过大,试图进行分级教学,但对于专业课而言,往往学生人数少,分级则更少,将大大增加教学成本,难以实现),还能使学生对封装以及软件工程等内容有深刻的理解。
通过对案例的讨论和实现,不仅能使学生掌握知识,也能使学生掌握分析、解决问题的方法,还能使学生养成勇于探索的精神、团结协作的作风,有助于他们将来的发展。需要指出的是:案例教学虽有很多优点,但也有不足,它偏重应用,难以涵盖各个知识点,以致学生掌握的理论知识片面零碎,不够系统,不清楚知识点之间的联系、原理的由来等,难以解决以后遇到的复杂的问题。
因此数据结构教学不宜完全使用传统的理论教学,也不宜完全使用案例教学,而应把把案例教学和理论教学结合起来,最好是融为一体,简单、次要的地方用理论教学,复杂、重要的地方用案例教学;如果学生的基础较好(如是从高中升上来的),理论教学多一些;如果学生的基础较差(如是从中专升上来的),案例教学多一些。理论教学为案例教学提供了分析问题的基础和框架,而案例教学具体形象,将降低学习难度,调动学习积极性,还将加深对理论的理解,两者相互补充、相互促进,使学生在掌握知识的同时提高能力,使理论知识能真正转化为实际能力。总之,在数据结构教学中引入案例教学,能够把枯燥的算法变为生动的实例,把静态的内容变为动态的知识,把理论和实践结合起来,把教学内容和现实生活结合起来,达到较好的教学效果。
作者:朱彦廷 单位:广西现代职业技术学院计算机系