论文部分内容阅读
[摘要]根据多年从事数据结构课程教学的实践,详细整理讨论了数据结构课程教学实践中常见的若干个问题,并提出了提高教学效果的解决方法。
[关键词]数据结构 课程教学 教学效果 教学方法
数据结构是计算机及相关专业的一门专业基础课,计算机科学各个领域及有关应用软件都要用到各种数据结构。在计算机课程体系中,数据结构启到承上启下的作用,是操作系统、软件工程等课程的基础。数据结构作为计算机专业的核心基础课程之一,是学生学习的一门重点课程,也是难点课程。作者根据多年从事数据结构课程教学实践,对该课程教学实践中遇到若干问题进行整理并提出一些解决思路。
一、数据结构课程教学中的常见问题
1、学生缺乏学习兴趣
作者所在学校是一所公安院校,其法学专业是一门文理兼招的专业,是省内、也是校内的热门专业,有相当部分计算机科学与技术专业的学生是从法学专业调配过来的。计算机科学与技术专业成为这部分学生的非志愿专业,是学生非本人的真心或兴趣选择,对计算机科学与技术专业没有兴趣,也就没有了学习的动力。这在很大程度上也影响着这部分学生学习数据结构的效果。
2、学生对课程目的及意义认识不够深刻
在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。目前,有许多非计算机专业和非计算机相关专业的人士也在从事着一些中小型计算机软件或是一些简单的网站、网页设计工作,这些相关人士在其经历的许多项目中,数据结构确实用得很少,他们所使用的一些好的通用的算法,都是直接从网上找到的。因此,很多人认为,只要掌握几种开发工具就可以成为编程高手。网上也有许多数据结构课程无用武之地的言论。这些都在一定程度上对相当部分不明就里的学生产生了误导。因而,学生对学习数据结构的重要性及其学习的目的认识不够,不能真正理解各种数据结构的特点及其各种操作的算法思想。
3、学生先行课程基础不扎实
目前,所有数据结构教程都是基于某一种语言编写的,有C/C++语言、类C语言、类Pascal语言等等。其中以C语言或C++语言最多,这就要求学生要对C或C++等程序设计语言有较好的基础,因为数据结构的算法思想的最终实现必须要有一定的C或C++等程序设计语言基础。作者所在学校的计算机科学与技术专业中C语言程序设计课程与数据结构课程的开设时间上间隔了一个学期,这就更增加了数据结构课程教学和学生学习的难度,使得数据结构课程实验教学效果不尽人意,有的学生甚至连C语言程序的结构都没能弄清楚。实验教学中,通常呈1:1:1的状态,即,三分之一的学生能够独立或只需教师少量指导就能完成实验,三分之一的学生需要教师给予较多的指导才能完成实验;剩下的三分之一的学生需要教师做全程指导才能完成实验,这部分学生往往对算法思想的体验很有限。
4、课程本身较抽象
数据结构课程所涉及的一些算法思想本身较抽象,不经过教师的讲解,学生通过自学掌握难度较大。有些算法思想即便在课堂中学习理解了,但在实验环节中由于语言基础等其他因素的影响,常使得一些学生望而生畏。而对于具体问题的部分差异就更难把握,常使得学生在一种算法思想的实现中,教师讲解能理解也能实现,但问题稍有变通便出现一定的困难。
二、提高数据结构课程效果的措施
1、培养学生的学习兴趣
兴趣是最好的老师,有了兴趣就有了学习、探索的动力。学生对某一学科有兴趣,就会持续地专心致志地钻研它,从而提高学习效果。从对学习的促进来说,兴趣可以成为学习的原因;从由于学习产生新的兴趣和提高原有兴趣来看,兴趣又是在学习活动中产生的,可以作为学习的结果。所以,在教学中要注重学生学习兴趣的培养。可以从以下两个方面入手:一是,在教学过程中,教师可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果。比如,在排序这部分的教学内容中,随机抽取10个左右的学生,以各学生的身高进行排序,让所有学生在游戏中参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。二是,在课堂教学中实时地引入IT行业中有关数据结构的信息,或是针对教学内容列举一些具体的实例说明数据结构在程序设计及现实生活中的应用,激发学生对数据结构的求知欲,培养其学习兴趣。
2、淡化语言,强调算法思想
数据结构课程的教学目标是使学生掌握各种数据结构的逻辑结构、存储结构及其所涉及的各种操作的算法,以及常用的非数值计算方法,如查找、排序等,使学生掌握各种数据结构的特点和算法思想,并能结合具体情况,运用各种数据结构和算法解决实际问题。其中,算法思想的把握又是数据结构中的重中之重,是数据结构的重要组成部分。鉴于所有数据结构教程都是基于某一种语言编写的,而学生对先行的程序设计语言掌握情况又不尽人意。故,我们在教学中,对每个算法,都采用自然语言表示法、伪代码表示法、流程图表示法之一来重点描述、讲解,然后再给出具体的程序代码,并在代码中作完整注释。布置作业、实验题目时,要求学生首先在作业、实验程序中,先用伪代码等表示法将算法描述、注释出来,然后再给出具体的程序代码,考核时亦重点考核算法,使学生充分发挥其想象空间,不一味地将注意力集中在程序的语句、过程和函数上,而重点关注算法,学生也不会因程序设计语言不扎实而影响对算法的理解和掌握。
3、改进教学方法
任何一门课程的教学,最忌讳的就是对学科背景、现状及发展不作引证就直接讲授具体教学内容。数据结构这门课程的教学实践尤其忌讳一来就讲授什么是数据结构等具体知识。部分学生,甚至部分正在从事与软件开发相关工作的人士,对数据结构课程的目的及意义认识不够深刻。所以,数据结构的第一堂课程非常重要,在第一堂课中,必需对数据结构在软件项目中的作用作一些论述及引证,务必使学生认识到数据结构非常重要,是专业开发人员的必备知识之一。
虽然我们提倡在教学过程中淡化语言,强调算法思想,但针对学生对先行的C程序设计语言掌握不好的情况,在讲授线性表等章节的教学内容之前,教师必须对C程序设计语言做一定的复习,特别是要重点复习C语言程序的结构、指针、函数、数组、结构体与共用体部分的内容。具体到各个章节中的教学过程中,教师要对涉及的相关程序设计语言知识进行具体复习,以提高实验教学效果。
在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在数据结构课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。
此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种数据结构的比较,使学生总览全局,对各种数据结构之间的差异和联系有宏观的把握,促进对各种数据结构知识的理解和掌握。
[参考文献]
[1]杨晓光.数据结构实例教程[M].北京:清华大学出版社,北京交通大学出版社,2008.12
[2]周海岩,陈宏明,殷路.《数据结构》课程教学的思考.教育理论与实践[J],2010,第30卷第6期
[3]张继新,周德祥.《数据结构》课程教学中存在的问题及对策.教育研究与实验[J],2010,第2期
[4]汪桂兰,魏振钢,仇利克等.浅析“数据结构”教学改革.实验室研究与探索[J],2007,第26卷第12期.
[5]陶影,张斌.数据结构实验教学因重视算法设计与分析能力的培养.实验室研究与探索[J],2008,第27卷第12期.
(作者单位:云南警官学院信息网络安全学院 云南昆明市)
[关键词]数据结构 课程教学 教学效果 教学方法
数据结构是计算机及相关专业的一门专业基础课,计算机科学各个领域及有关应用软件都要用到各种数据结构。在计算机课程体系中,数据结构启到承上启下的作用,是操作系统、软件工程等课程的基础。数据结构作为计算机专业的核心基础课程之一,是学生学习的一门重点课程,也是难点课程。作者根据多年从事数据结构课程教学实践,对该课程教学实践中遇到若干问题进行整理并提出一些解决思路。
一、数据结构课程教学中的常见问题
1、学生缺乏学习兴趣
作者所在学校是一所公安院校,其法学专业是一门文理兼招的专业,是省内、也是校内的热门专业,有相当部分计算机科学与技术专业的学生是从法学专业调配过来的。计算机科学与技术专业成为这部分学生的非志愿专业,是学生非本人的真心或兴趣选择,对计算机科学与技术专业没有兴趣,也就没有了学习的动力。这在很大程度上也影响着这部分学生学习数据结构的效果。
2、学生对课程目的及意义认识不够深刻
在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。目前,有许多非计算机专业和非计算机相关专业的人士也在从事着一些中小型计算机软件或是一些简单的网站、网页设计工作,这些相关人士在其经历的许多项目中,数据结构确实用得很少,他们所使用的一些好的通用的算法,都是直接从网上找到的。因此,很多人认为,只要掌握几种开发工具就可以成为编程高手。网上也有许多数据结构课程无用武之地的言论。这些都在一定程度上对相当部分不明就里的学生产生了误导。因而,学生对学习数据结构的重要性及其学习的目的认识不够,不能真正理解各种数据结构的特点及其各种操作的算法思想。
3、学生先行课程基础不扎实
目前,所有数据结构教程都是基于某一种语言编写的,有C/C++语言、类C语言、类Pascal语言等等。其中以C语言或C++语言最多,这就要求学生要对C或C++等程序设计语言有较好的基础,因为数据结构的算法思想的最终实现必须要有一定的C或C++等程序设计语言基础。作者所在学校的计算机科学与技术专业中C语言程序设计课程与数据结构课程的开设时间上间隔了一个学期,这就更增加了数据结构课程教学和学生学习的难度,使得数据结构课程实验教学效果不尽人意,有的学生甚至连C语言程序的结构都没能弄清楚。实验教学中,通常呈1:1:1的状态,即,三分之一的学生能够独立或只需教师少量指导就能完成实验,三分之一的学生需要教师给予较多的指导才能完成实验;剩下的三分之一的学生需要教师做全程指导才能完成实验,这部分学生往往对算法思想的体验很有限。
4、课程本身较抽象
数据结构课程所涉及的一些算法思想本身较抽象,不经过教师的讲解,学生通过自学掌握难度较大。有些算法思想即便在课堂中学习理解了,但在实验环节中由于语言基础等其他因素的影响,常使得一些学生望而生畏。而对于具体问题的部分差异就更难把握,常使得学生在一种算法思想的实现中,教师讲解能理解也能实现,但问题稍有变通便出现一定的困难。
二、提高数据结构课程效果的措施
1、培养学生的学习兴趣
兴趣是最好的老师,有了兴趣就有了学习、探索的动力。学生对某一学科有兴趣,就会持续地专心致志地钻研它,从而提高学习效果。从对学习的促进来说,兴趣可以成为学习的原因;从由于学习产生新的兴趣和提高原有兴趣来看,兴趣又是在学习活动中产生的,可以作为学习的结果。所以,在教学中要注重学生学习兴趣的培养。可以从以下两个方面入手:一是,在教学过程中,教师可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果。比如,在排序这部分的教学内容中,随机抽取10个左右的学生,以各学生的身高进行排序,让所有学生在游戏中参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。二是,在课堂教学中实时地引入IT行业中有关数据结构的信息,或是针对教学内容列举一些具体的实例说明数据结构在程序设计及现实生活中的应用,激发学生对数据结构的求知欲,培养其学习兴趣。
2、淡化语言,强调算法思想
数据结构课程的教学目标是使学生掌握各种数据结构的逻辑结构、存储结构及其所涉及的各种操作的算法,以及常用的非数值计算方法,如查找、排序等,使学生掌握各种数据结构的特点和算法思想,并能结合具体情况,运用各种数据结构和算法解决实际问题。其中,算法思想的把握又是数据结构中的重中之重,是数据结构的重要组成部分。鉴于所有数据结构教程都是基于某一种语言编写的,而学生对先行的程序设计语言掌握情况又不尽人意。故,我们在教学中,对每个算法,都采用自然语言表示法、伪代码表示法、流程图表示法之一来重点描述、讲解,然后再给出具体的程序代码,并在代码中作完整注释。布置作业、实验题目时,要求学生首先在作业、实验程序中,先用伪代码等表示法将算法描述、注释出来,然后再给出具体的程序代码,考核时亦重点考核算法,使学生充分发挥其想象空间,不一味地将注意力集中在程序的语句、过程和函数上,而重点关注算法,学生也不会因程序设计语言不扎实而影响对算法的理解和掌握。
3、改进教学方法
任何一门课程的教学,最忌讳的就是对学科背景、现状及发展不作引证就直接讲授具体教学内容。数据结构这门课程的教学实践尤其忌讳一来就讲授什么是数据结构等具体知识。部分学生,甚至部分正在从事与软件开发相关工作的人士,对数据结构课程的目的及意义认识不够深刻。所以,数据结构的第一堂课程非常重要,在第一堂课中,必需对数据结构在软件项目中的作用作一些论述及引证,务必使学生认识到数据结构非常重要,是专业开发人员的必备知识之一。
虽然我们提倡在教学过程中淡化语言,强调算法思想,但针对学生对先行的C程序设计语言掌握不好的情况,在讲授线性表等章节的教学内容之前,教师必须对C程序设计语言做一定的复习,特别是要重点复习C语言程序的结构、指针、函数、数组、结构体与共用体部分的内容。具体到各个章节中的教学过程中,教师要对涉及的相关程序设计语言知识进行具体复习,以提高实验教学效果。
在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在数据结构课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。
此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种数据结构的比较,使学生总览全局,对各种数据结构之间的差异和联系有宏观的把握,促进对各种数据结构知识的理解和掌握。
[参考文献]
[1]杨晓光.数据结构实例教程[M].北京:清华大学出版社,北京交通大学出版社,2008.12
[2]周海岩,陈宏明,殷路.《数据结构》课程教学的思考.教育理论与实践[J],2010,第30卷第6期
[3]张继新,周德祥.《数据结构》课程教学中存在的问题及对策.教育研究与实验[J],2010,第2期
[4]汪桂兰,魏振钢,仇利克等.浅析“数据结构”教学改革.实验室研究与探索[J],2007,第26卷第12期.
[5]陶影,张斌.数据结构实验教学因重视算法设计与分析能力的培养.实验室研究与探索[J],2008,第27卷第12期.
(作者单位:云南警官学院信息网络安全学院 云南昆明市)