时间:2024-06-19
余 婧
(天津市河东区职工大学,天津 300162)
高职数据结构课程案例教学模式研究
余 婧
(天津市河东区职工大学,天津 300162)
数据结构课程理论性较强,知识点抽象,传统教学模式达难以实现预期的教学效果。结合高职数据结构课程的教学现状,分析了数据结构课程实施案例教学需要考虑的因素,探究了实施案例教学具体过程。
数据结构;案例教学法;教学模式
数据结构是计算机专业及其相关专业的核心基础课程之一,同时,它也是算法分析与设计、软件工程、计算机图形学、编译技术等专业课的先行课程。数据结构课程的教学不仅要注重学生对理论的理解,锻炼学生抽象思维和建模能力,更要注重培养学生的实践操作能力,为后续课程的学习和计算机软件系统的开发打下坚实的理论基础和实践基础。本文分析了高职数据结构课程的教学现状,结合高职教学的特点,分析了案例教学模式的核心——案例的设计和选取,探究了案例教学模式的重点——案例教学的实施过程,突出学生的主体地位,充分发挥教师的主导作用,进而提高教学质量和学生自主学习的意识。
传统教学模式存在弊端。数据结构课程在传统教学模式中,主要以教师讲授为主,课程按照概念陈述、抽象数据类型定义、程序分析与实现的模式组织教学。传统教学模式较为系统全面地概括了知识点及其内在关系,但是对学生的抽象思维和建模能力有较高的要求。高职学生往往动手实践和直观具体的思维能力会更强,因此对数据结构课程,高职教师需要探寻一种较为直观理解的方式组织教学。
高职学生的知识基础不牢固。高职的教学以“理论够用”为教学原则,学生对基础理论知识的掌握程度无法与本科院校学生相比。数据结构课程需要学生具备C语言中的指针、结构体、递归等知识,能够了解内存模型的运行机制,对于高职学生来说,其先导课程C语言程序设计课程属于非重点或选学内容。因此,教师应结合数据结构课程中的抽象数据模型,选取与知识点相契合的案例。
数据结构课程的理论性强,知识点抽象。数据结构课程以数据的逻辑结构、存储结构及相关运算为框架。逻辑结构包括顺序表、树、图三种基本结构;存储结构主要分为顺序存储和链式存储;每一种逻辑结构可以有两种以上的存储结构,因此相关运算指建立在不同的逻辑结构和存储结构之上的查找和排序等内容。
案例教学模式是指教师根据特定的教学目的和教学内容,选取恰当的案例,突出学生的主体地位,充分发挥教师主导作用,促进学生积极思考、主动探究,以提高他们运用所学知识分析、解决问题能力的一种教学手段。案例教学模式更侧重学生的主体性、主动性、自主性的发挥,引导学生通过案例分析推导,在一个问题寻找多种解答的过程中,提高解决问题的能力,促进创造性思维的形成。案例教学模式的核心是案例的设计和选取。结合数据结构课程的特点及教学现状,案例的选择应考虑以下因素:
(一)趣味性与专业性。数据结构课程理论性较强,知识点抽象,选择有趣味性的案例使原本枯燥难懂的教学变得生动直观,激发学生的好奇心和求知欲。例如,地图染色问题:任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。地图染色过程实质上就是对图的深度优先遍历过程。在遍历过程中,为每一个访问到的区域选择一种可选的染色方案,同时更新其相邻的未处理的区块的染色可选方案;如果对一个区块进行方案选择的时候,发现没有可选方案,也就是该区块Color中的所有数组元素的值均为0,则表示之前的染色方案出现了问题,进行回溯还原,采用其他颜色进行染色后,继续遍历,直到最后一个结点完成选色。地图四色定理(Four color theorem)最先是由一位英国大学生古德里(Francis Guthrie)提出来的,且在1976年由美国数学家阿佩尔(K.Apple)与哈肯(W.Haken)加以证明。深度优先算法运用该案例讲解,充分考虑了趣味性与专业性的统一。
(二)典型性与全面性。选取的案例需具备以点带面的特点,既有个性又不失共性。例如,在二叉树遍历中,根据访问根节点的先后顺序,分为先序遍历、中序遍历、后序遍历三种。案例可设计为一个人从某个点出发,顺着二叉树的外轮廓进行一次旅行,途径每个二叉树的结点和分支。那么这个出发的点就是二叉树的根节点,顺着外轮廓旅行的全路线即为遍历的线路。先序遍历则是遇到根节点优先访问,再递归访问左子树,最后递归访问右子树;中序遍历则是先递归访问左子树,回溯到根结点后再访问根节点,最后递归访问右子树;后序遍历则是先递归访问左子树,再递归访问右子树,最后访问根节点。该案例中用一条旅行线路简化了二叉树遍历的复杂度,同时,清楚地解释了各种不同遍历之间的区别和实现方法,可谓是兼顾了典型性与全面性。
(三)真实性与研究性。选取贴近生活的真实案例,能够帮助学生接受和理解知识点及内在联系,激发学生的学习兴趣,带动课堂讨论。透过真实的案例揭示知识点或课程体系结构的本质,能够促进学生深入研究。例如,循环队列是线性表结构中重要知识点,同时也是教学难点。教学案例设计如下:视银行抽号系统和叫号系统分别为循环队列的入队操作和出队操作。抽号系统有1~N张号码牌,顾客进入银行后,按先后顺序分别从小到大领取号码牌即入队操作。叫号系统取出队头元素即出队操作,同时将号码牌返回抽号系统。当抽号系统发完所有号码牌时候为队满状态,此时最后一个取号的顾客与正在办理业务的客户的号码必然逻辑上相邻,即(N-1)与N相邻、N与1相邻,因此队满公式(Q.rear+1)%MAXSIZE=Q.front非常容易理解。同理,当银行没有顾客时候,抽号系统和叫号系统必然显示同一个号码,即队空公式Q.rear=Q.front。该案例选取了贴近生活的银行业务办理实例,有效地帮助学生理解循环队列中队头、队尾指针之间的关系,将单调的理论研究与真实生活案例很好地结合。
实际的教学过程中,案例的选取往往不能周全上述特性。教师根据实际的教学目标、课程内容及学生特点,选取合理的案例,达到提高教学质量及学生自主学习意识的目的即可。
(一)案例设计。案例教学模式的核心部分是案例的设计。数据结构课程中涉及的算法设计策略主要分为以下几类:递归(Recursion)、分治法(Divide and Conquer)、动态规划法(Dynamic Programming)、贪心法(Greedy Algorithm)等。经典的汉诺塔(Hanoi)问题、斐波那契数列运用了递归思想。二分查找法、插入排序、深度优先查找、广度优先查找、拓扑排序、二叉查找树都是典型的减治算法。查找和排序算法中的诸多算法采用了分治法,如快速排序算法、归并排序算法。求两点间的最短路径则是动态规划法。典型的贪心法,如哈夫曼编码算法、构造最小生成树Prim、Kruskal算法、求单源最短路径Dijkstra算法。教师结合教学内容和学生实际,选择合适的教学案例。案例既能充分体现教学内容的实际含义,也能激发学生深入思考,触类旁通。案例教学模式强调学生的主体地位,因此在预习环节,教师将事先编制好的教学案例和相关教材范围发给学生。
(二)案例讲解。案例的讲解可以在知识点呈现之前,可以在知识点呈现之后,也可以结合知识点同时呈现。案例合理有效的讲解,不但提高了学生对问题的理解,同时也提高了教学效率。例如,构造哈夫曼树的过程是贪心算法(Greedy Algorithm)思想的典型运用,由此产生的哈夫曼编码算法,出现频率高的字符编码较短,频率低的字符编码较长,使得总码长较短。磅秤称物可以作为贪心算法的现实案例,给一个未知重量的物体称重,有5kg、2kg、1kg、500g、100g的称码若干。假设该物品重8.7kg,在选择称码时依次选出了1个5kg、1个2kg、1个1kg、1个500g、2个100g,而不是将87个100g的称码一个一个堆加上秤。贪心算法中采用逐步构造最优解的方法,在每个阶段都作出一个看上去最优的策略,决策一旦作出就不可以再更改,此处策略为:重量最大优先,使付出的称码数量数量最少。
(三)案例讨论。学生对知识点有了初步了解之后,教师应及时组织学生进行课堂讨论。讨论形式可以分组进行,也可以由教师有针对性地提出问题供全体学生参与讨论。教师总结学生小组讨论或问题讨论的结果,做出形成性评价。教师需指出讨论中存在的问题及原因,引导学生优化方案。例如,已经掌握了二分查找法为减治算法,引导学生发现深度优先算法、广度优先算法、拓扑算法等也为减治算法,区别仅在于减治的规模不同。既达到了对旧知识点的温故知新,也为新知识点建立了理论基础,反复渗透。
(四)案例操作。编程实践操作是数据结构课程内化的重要环节。教师指导学生将案例模型与计算机编程结合。将理论转换为实践的过程,促进了学生独立思考的能力,加深了学生对知识的理解,同时,实践过程中也能发现一些尚未真正理解的部分,进而巩固所学知识。计算机软件通常是指程序和相关文档的集合。在面向过程的语言中,程序是指以特定数据结构实现相关算法的过程。因此,同样的算法,不同数据结构的程序其时间复杂度和空间复杂度均有所不同。特别是时间复杂度是判断程序设计效率高低的重要标准。通过计算机编程实践操作,比较不同数据结构下程序的效率,十分直观。另外,编程实践操作涉及到内存分配机制、指针知识,培养了学生的计算机式的思维方式,对数据结构中两种主要存储结构——顺序存储和链式存储理解更为透彻,提高学生对抽象知识的理解和解决实际问题的能力。
(五)案例总结。教师对学生的学习效果给出总结性评价,并对教学的全过程进行反思。实际教学过程会反应一些问题,如,案例需要改进的部分,课堂案例实施的具体过程与课前预设过程之间的差别,教学过程中创造性部分,教学艺术提高等。关于数据结构课程案例内容可以有如下总结。分治法与递归就像一对孪生兄弟,经常同时出现在同一算法中。分治法划分子问题相对独立且与原问题相同,子问题往往是原问题的较小模式。动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干子问题,但是子问题之间往往是不独立的。若用分治法来解决这些子问题不独立的问题,需要耗费指数级的时间,而动态规划法常常只有多项式量级的时间。贪心法广泛应用与解决最优化问题,但并不是从整体最优考虑,而是一种局部最优解。
数据结构课程理论性较强,知识点抽象,教师在教学过程中采用合适的教学案例,简化了抽象程度较高的理论知识,激发了学生的学习兴趣,进而提高教学效果。案例教学模式的核心是案例的设计和选取,但不是所有知识点都有与之完全契合的案例,这就要求教师善于观察、改进现有实例。案例教学模式的重点是案例教学的实施过程,在组织教学过程中,教师应突出学生的主体地位,通过案例引导学生积极主动思考,对现有案例进行创新,不断提高教学质量。
[1]易丽华.趣味教学在高职数据结构课程中的探索与实践[J].计算机时代,2013,(01).
[2]黄琴,唐素勤.非计算机专业数据结构教学的实践及创新[J].计算机教育,2011,(03).
[3]Sartaj Sahni.Data Structures,Algorithms,amd Applications in C++[M].北京:机械工业出版社,2009.
Research on Case Method for the Course “Data Structure” in Higher Vocational Schools
YU Jing
(TianjinHedongDistrictUniversityforStaffs,Tianjian, 300162)
Data structure is a theoretical course with abstract knowledge. Traditional teaching mode is difficult to achieve the expected effect. Combining with the teaching status of the course “data structure” in higher vocational schools, this paper analyzes the factors which should be considered for application of the case method in the teaching of “data structure”, and explores the specific process of implementation of the case method.
data structure; case method; teaching mode
2015-04-03
余婧(1987-),女,天津市河东区职工大学教师,硕士研究生,国家软件设计师,主要从事计算机专业课教学研究。
G712
A
1673-582X(2015)05-0117-03
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!