论文部分内容阅读
摘要:“数据结构”是计算机学科最重要的学科基础课程之一,在教学实践活动的基础上,讨论当前“数据结构”课程教学中存在的问题,并从教学目标、教学内容、教学方法和教学手段等方面着手,提出提高“数据结构”课程教学质量的若干建议。
关键词:数据结构;教学实践;教学方法
作者简介:黄巍(1975-),男,湖北武汉人,武汉工程大学计算机科学与工程学院,讲师,工学博士,主要研究方向:模式识别、图像处理、计算机视觉。(湖北 武汉 430073)
“数据结构”是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间关系和操作等的学科,其主要教学内容包括线性表、栈、队列、串、数组、广义表、树、图等常用数据结构和在这些数据结构上的操作,以及排序和查找等算法。一般说来,“数据结构”在第三学期开设,其先导课程主要是程序设计基础课程(目前一般为“C语言程序设计”),“离散数学”课程将有助于“数据结构”课程中部分概念和方法的理解,但“离散数学”课程不是必需的先导课程。一方面,“数据结构”课程着重培养学生分析研究计算机加工的数据结构的特性,帮助他们选择合适的逻辑结构、存储结构及算法以处理应用数据;另一方面,对于具有初步程序设计基础的学生而言,“数据结构”课程也有助于提高他们设计复杂程序的能力。
“数据结构”课程在计算机学科中具有如此重要的地位,如何提高“数据结构”课程的教学质量成为急需解决的关键性问题。本文立足于教学实践,分析“数据结构”课程教学中师生双方存在的一些问题,并从教学目标、教学内容、教学方法和教学手段等方面讨论“数据结构”教学过程中的一些体会,其目标在于提高教学质量。
一、“数据结构”课程教学现状分析
1.学生基础差异较大,教学目标难以确定
学生基础差异主要来自于目标学历层次差异、地区差异和先导课程学习情况差异。
(1)目标学历层次差异,武汉工程大学(以下简称“我校”)的学生分为本科、专升本和专科三个层次,在入校时这些学生的基础各不相同,总的来看,本科学生的基础好于专升本学生的基础,专升本学生的基础好于专科学生的基础。
(2)地区差异,由于我校面向全国招生,各省、市、自治区和直辖市间的教育发展程度存在较大差异,导致即使在同一目标学历层次的学生中基础差异依然存在。
(3)先导课程学习情况差异,“数据结构”课程教学依赖于作为先导课程的程序设计基础课程,我校“数据结构”课程教材中的操作和算法采用类C语言描述,而我校程序设计基础课程采用《C语言程序设计》教材。由于学生在一年级时课程较多,并且高中阶段和大学阶段的学习方法差别较大,学生适应能力不同,程序设计基础课程掌握程度各不相同。
由于这些差异的存在,任课教师很难设计出满足全部学生的教学目标,往往造成“有的学生不够吃,有的学生吃不饱”的现象。
2.课程信息量大,教学内容难于取舍
“数据结构”课程包含大量的教学内容,在讨论线性表、栈、队列、串、数组、广义表、树、图等常用数据结构的逻辑结构以及逻辑操作的基础上,讨论上述数据结构的顺序实现方法和链式实现方法,以及在不同实现方法上逻辑操作的实现方法,除此以外,查找算法、内部排序算法、外部排序算法、动态内存分配算法以及各种算法的复杂度分析和性能对比也是“数据结构”课程的基本教学内容。而目前大部分学校“数据结构”课程理论教学学时数为48~64学时,实验教学学时数为16~24个学时,低于《中国计算机科学与技术学科教程2002》建议的理论教学学时数。要在规定的学时内将上述教学内容讲好、讲透存在一定的难度,如何取舍教学内容值得商榷。
3.任课教师工程经验不足,教学方法缺乏直观性
认知过程是一个从感性到理性、又从理性到感性的过程,因此要准确把握“数据结构”课程的概念和方法需要大量工程实践经验。当前高校教师主要从事理论研究,大部分是从一个校门毕业,直接进另一个校门教书,即使部分教师在研究生阶段从事过一些工程实践,但通常这些实践经验仍然很有限,导致部分教师对课程内容实质的把握有欠缺,不能结合工程实践讲解相关的概念和方法,不能带给学生感性认识,课程教学缺乏直观性。目前社会培训机构蒸蒸日上,学生普遍反映培训机构的课程更加精彩,从一个侧面印证了工程经验对“数据结构”课程教学具有非常重要的作用。
4.教学手段单一,多媒体设备利用不足
目前“数据结构”课程教学过程中,普遍采用理论教学和实验教学相结合的方式,但是在理论教学中仍然以讲授法为主。在大多数课堂教学中,即使采用了多媒体教学设备,教师也仅仅将这些设备作为黑板的替代品,除了减少教师的板书时间以外,在展示复杂算法的执行过程方面改进不大。学生在课程结束后,感觉似乎听懂了,但实际上对概念没有实质性地掌握,对算法的原理和精髓也了解得并不充分。
二、改革“数据结构”课程教学方法
1.正视学生基础差异,合理设计教学大纲
“因材施教”是教育学的一个基本原理,在教学中应该根据不同学生的认知水平,学习能力以及自身素质,选择适合每个学生特点的学习方法来有针对性地教学,发挥学生的长处,弥补学生的不足,激发学生学习的兴趣,树立学生学习的信心,从而促进学生全面发展。目前大部分学校“高等数学”、“英语”、“物理”、“大学计算机基础”、“程序设计基础”等公共基础课程已经实现了分级教学,从教学评估结果来看,在存在基础差异的学生中开展分级教学是有益的。
目前,“数据结构”课程不仅是计算机学科各专业的基础学位课程,部分学校在相关理工类学科中,比如自动化、电子信息技术、甚至机械等学科的部分专业中都已开设“数据结构”课程。因此,有必要首先在计算机学院开展“数据结构”课程的分级教学,并在适当的时候全面展开。
2.合理取舍教学内容,有机组织课程整体框架
“数据结构”课程所涉及的内容非常丰富,在当前压缩课程学时数的大环境下,合理取舍教学内容非常重要,应该力争在有限的教学时间内,传授最核心的概念和最本质的方法。在教授常用数据结构及其实现、查找算法、内部排序算法等最核心部分的前提下,根据各专业教学大纲,安排合适的拓展内容给学生在课余自学。
由于“数据结构”课程内容比较杂,一些概念看起来非常相像,比如“数据结构”课程中的数据结构、逻辑结构、存储结构、抽象数据类型等概念学生本来就不容易辨析,更何况课程还需要涉及到与上述概念有联系的C结构体、C++类等概念,学生很难把握这些概念之间的差别。
为了解决这些问题,在“数据结构”课程中,必须为学生建立课程的整体框架,比如,在绪论部分的教学中,在讲解完逻辑结构和存储结构以后,就应该马上联系课本的组织方式,明确告诉学生所有章节都是首先讲解一个常用数据结构的逻辑结构,然后讲逻辑结构在计算机中可能的实现方法,即存储结构;又比如,当讲到抽象数据类型的时候,必须指出抽象数据类型与具体C语言中的结构、特别是和C++语言中的类的联系和区别。
3.优化教师队伍,改革教学方法
教师队伍建设是高校的生存和发展之本,也是课程改革的重要内容。虽然目前高校中越来越强调教学的中心地位,但是受到考核和职称评聘的影响,高校教师普遍重研究而轻教学,另外,由于教师本身缺乏工程实践经验,对一些实践性较强的课程,比如“程序设计基础”、“数据结构”、“软件工程”等,教师有些力不从心。为了提高这些课程的教学质量,必须加强教师工程实践经验的积累。常用方法有如下两种:其一是与企业合作,将年轻教师派遣到企业中,参与企业生产实践,经过2~3年的磨合,培养自有教师的实践经验;二是直接聘任企业中有实践经验的技术人员担任兼职教师,吸纳社会资源。前一种方法,目前笔者所在学校已经采用,从反馈的情况来看,既积累了教师的实践经验,又做到了同生产实践结合、服务社会;后一种方法在我校的一些新兴的专业(比如软件工程专业)已被普遍接受。
4.整合教学手段,培养学生综合能力
板书是一种传统的教学手段,板书方法可以展示教师解决问题的策略,因而板书不能完全被多媒体教学方式所替代。但是多媒体教学方式也有传统板书教学方式所不具有的优势:其一,通过多媒体教学方式,可以节省教学时间;其二,多媒体教学方式可以用动画等技术手段展示系统的动态变化过程。在“数据结构”课程教学中,可以大量使用动画片段来展示操作和算法的执行过程,用视觉刺激的方式向学生生动有趣地传达概念的内涵和算法精髓。
网络教学方式可以使学生不受时间、空间的限制随时学习,因而它具有传统课堂教学方法无法比拟的优点。在“数据结构”课程教学中,可以将教学材料,特别是课堂教学中不能展开的部分,放到网络上供学有余力的学生参考。还可以通过网络开放虚拟实验平台,使学生用最少的代码完成实验教学任务,提高实验教学效率,优化实验教学过程,提高学生学习热情。
三、总结
本文立足于教学实践,分析了“数据结构”课程教学现状,并从教学目标、教学内容、教学方法和教育内容等方面探讨了改革该课程的方法。目的是提高“数据结构”课程的教学质量,希望能为教学改革贡献力量。
参考文献:
[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2007.
[2]周海岩,陈宏明,殷路.“数据结构”课程教学的思考[J].教育理论与实践,2010,(6):62-63.
[3]张继新,周德祥.“数据结构”课程教学中存在的问题及对策[J].教育研究实验,2010,(2):153-155.
[4]杨捷,霍党泽.“数据结构”课程双语教学的研究与实践[J].北京大学学报(哲学社会科学版),2007,(5):161-163.
[5]王剑,等.高职数据结构课程趣味教学的实践[J].职教论坛,2010,(17): 31-32.
[6]方莉.高职院校“C程序设计”与“数据结构”课程整合的探索与思考[J].职业时空,2007,(23):92.
[7]杨红宾.数据结构课程改革探讨[J].教育与职业,2009,(32):131.
[8]将秀英.谈“数据结构”课程的学习[J].中国成人教育,2003,(2):79-80.
[9]李华群,曾惠芳.提升独立学院“算法与数据结构”课程教学质量的探讨[J].教育与职业,2008,(33):134-135.
(责任编辑:沈清)
关键词:数据结构;教学实践;教学方法
作者简介:黄巍(1975-),男,湖北武汉人,武汉工程大学计算机科学与工程学院,讲师,工学博士,主要研究方向:模式识别、图像处理、计算机视觉。(湖北 武汉 430073)
“数据结构”是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间关系和操作等的学科,其主要教学内容包括线性表、栈、队列、串、数组、广义表、树、图等常用数据结构和在这些数据结构上的操作,以及排序和查找等算法。一般说来,“数据结构”在第三学期开设,其先导课程主要是程序设计基础课程(目前一般为“C语言程序设计”),“离散数学”课程将有助于“数据结构”课程中部分概念和方法的理解,但“离散数学”课程不是必需的先导课程。一方面,“数据结构”课程着重培养学生分析研究计算机加工的数据结构的特性,帮助他们选择合适的逻辑结构、存储结构及算法以处理应用数据;另一方面,对于具有初步程序设计基础的学生而言,“数据结构”课程也有助于提高他们设计复杂程序的能力。
“数据结构”课程在计算机学科中具有如此重要的地位,如何提高“数据结构”课程的教学质量成为急需解决的关键性问题。本文立足于教学实践,分析“数据结构”课程教学中师生双方存在的一些问题,并从教学目标、教学内容、教学方法和教学手段等方面讨论“数据结构”教学过程中的一些体会,其目标在于提高教学质量。
一、“数据结构”课程教学现状分析
1.学生基础差异较大,教学目标难以确定
学生基础差异主要来自于目标学历层次差异、地区差异和先导课程学习情况差异。
(1)目标学历层次差异,武汉工程大学(以下简称“我校”)的学生分为本科、专升本和专科三个层次,在入校时这些学生的基础各不相同,总的来看,本科学生的基础好于专升本学生的基础,专升本学生的基础好于专科学生的基础。
(2)地区差异,由于我校面向全国招生,各省、市、自治区和直辖市间的教育发展程度存在较大差异,导致即使在同一目标学历层次的学生中基础差异依然存在。
(3)先导课程学习情况差异,“数据结构”课程教学依赖于作为先导课程的程序设计基础课程,我校“数据结构”课程教材中的操作和算法采用类C语言描述,而我校程序设计基础课程采用《C语言程序设计》教材。由于学生在一年级时课程较多,并且高中阶段和大学阶段的学习方法差别较大,学生适应能力不同,程序设计基础课程掌握程度各不相同。
由于这些差异的存在,任课教师很难设计出满足全部学生的教学目标,往往造成“有的学生不够吃,有的学生吃不饱”的现象。
2.课程信息量大,教学内容难于取舍
“数据结构”课程包含大量的教学内容,在讨论线性表、栈、队列、串、数组、广义表、树、图等常用数据结构的逻辑结构以及逻辑操作的基础上,讨论上述数据结构的顺序实现方法和链式实现方法,以及在不同实现方法上逻辑操作的实现方法,除此以外,查找算法、内部排序算法、外部排序算法、动态内存分配算法以及各种算法的复杂度分析和性能对比也是“数据结构”课程的基本教学内容。而目前大部分学校“数据结构”课程理论教学学时数为48~64学时,实验教学学时数为16~24个学时,低于《中国计算机科学与技术学科教程2002》建议的理论教学学时数。要在规定的学时内将上述教学内容讲好、讲透存在一定的难度,如何取舍教学内容值得商榷。
3.任课教师工程经验不足,教学方法缺乏直观性
认知过程是一个从感性到理性、又从理性到感性的过程,因此要准确把握“数据结构”课程的概念和方法需要大量工程实践经验。当前高校教师主要从事理论研究,大部分是从一个校门毕业,直接进另一个校门教书,即使部分教师在研究生阶段从事过一些工程实践,但通常这些实践经验仍然很有限,导致部分教师对课程内容实质的把握有欠缺,不能结合工程实践讲解相关的概念和方法,不能带给学生感性认识,课程教学缺乏直观性。目前社会培训机构蒸蒸日上,学生普遍反映培训机构的课程更加精彩,从一个侧面印证了工程经验对“数据结构”课程教学具有非常重要的作用。
4.教学手段单一,多媒体设备利用不足
目前“数据结构”课程教学过程中,普遍采用理论教学和实验教学相结合的方式,但是在理论教学中仍然以讲授法为主。在大多数课堂教学中,即使采用了多媒体教学设备,教师也仅仅将这些设备作为黑板的替代品,除了减少教师的板书时间以外,在展示复杂算法的执行过程方面改进不大。学生在课程结束后,感觉似乎听懂了,但实际上对概念没有实质性地掌握,对算法的原理和精髓也了解得并不充分。
二、改革“数据结构”课程教学方法
1.正视学生基础差异,合理设计教学大纲
“因材施教”是教育学的一个基本原理,在教学中应该根据不同学生的认知水平,学习能力以及自身素质,选择适合每个学生特点的学习方法来有针对性地教学,发挥学生的长处,弥补学生的不足,激发学生学习的兴趣,树立学生学习的信心,从而促进学生全面发展。目前大部分学校“高等数学”、“英语”、“物理”、“大学计算机基础”、“程序设计基础”等公共基础课程已经实现了分级教学,从教学评估结果来看,在存在基础差异的学生中开展分级教学是有益的。
目前,“数据结构”课程不仅是计算机学科各专业的基础学位课程,部分学校在相关理工类学科中,比如自动化、电子信息技术、甚至机械等学科的部分专业中都已开设“数据结构”课程。因此,有必要首先在计算机学院开展“数据结构”课程的分级教学,并在适当的时候全面展开。
2.合理取舍教学内容,有机组织课程整体框架
“数据结构”课程所涉及的内容非常丰富,在当前压缩课程学时数的大环境下,合理取舍教学内容非常重要,应该力争在有限的教学时间内,传授最核心的概念和最本质的方法。在教授常用数据结构及其实现、查找算法、内部排序算法等最核心部分的前提下,根据各专业教学大纲,安排合适的拓展内容给学生在课余自学。
由于“数据结构”课程内容比较杂,一些概念看起来非常相像,比如“数据结构”课程中的数据结构、逻辑结构、存储结构、抽象数据类型等概念学生本来就不容易辨析,更何况课程还需要涉及到与上述概念有联系的C结构体、C++类等概念,学生很难把握这些概念之间的差别。
为了解决这些问题,在“数据结构”课程中,必须为学生建立课程的整体框架,比如,在绪论部分的教学中,在讲解完逻辑结构和存储结构以后,就应该马上联系课本的组织方式,明确告诉学生所有章节都是首先讲解一个常用数据结构的逻辑结构,然后讲逻辑结构在计算机中可能的实现方法,即存储结构;又比如,当讲到抽象数据类型的时候,必须指出抽象数据类型与具体C语言中的结构、特别是和C++语言中的类的联系和区别。
3.优化教师队伍,改革教学方法
教师队伍建设是高校的生存和发展之本,也是课程改革的重要内容。虽然目前高校中越来越强调教学的中心地位,但是受到考核和职称评聘的影响,高校教师普遍重研究而轻教学,另外,由于教师本身缺乏工程实践经验,对一些实践性较强的课程,比如“程序设计基础”、“数据结构”、“软件工程”等,教师有些力不从心。为了提高这些课程的教学质量,必须加强教师工程实践经验的积累。常用方法有如下两种:其一是与企业合作,将年轻教师派遣到企业中,参与企业生产实践,经过2~3年的磨合,培养自有教师的实践经验;二是直接聘任企业中有实践经验的技术人员担任兼职教师,吸纳社会资源。前一种方法,目前笔者所在学校已经采用,从反馈的情况来看,既积累了教师的实践经验,又做到了同生产实践结合、服务社会;后一种方法在我校的一些新兴的专业(比如软件工程专业)已被普遍接受。
4.整合教学手段,培养学生综合能力
板书是一种传统的教学手段,板书方法可以展示教师解决问题的策略,因而板书不能完全被多媒体教学方式所替代。但是多媒体教学方式也有传统板书教学方式所不具有的优势:其一,通过多媒体教学方式,可以节省教学时间;其二,多媒体教学方式可以用动画等技术手段展示系统的动态变化过程。在“数据结构”课程教学中,可以大量使用动画片段来展示操作和算法的执行过程,用视觉刺激的方式向学生生动有趣地传达概念的内涵和算法精髓。
网络教学方式可以使学生不受时间、空间的限制随时学习,因而它具有传统课堂教学方法无法比拟的优点。在“数据结构”课程教学中,可以将教学材料,特别是课堂教学中不能展开的部分,放到网络上供学有余力的学生参考。还可以通过网络开放虚拟实验平台,使学生用最少的代码完成实验教学任务,提高实验教学效率,优化实验教学过程,提高学生学习热情。
三、总结
本文立足于教学实践,分析了“数据结构”课程教学现状,并从教学目标、教学内容、教学方法和教育内容等方面探讨了改革该课程的方法。目的是提高“数据结构”课程的教学质量,希望能为教学改革贡献力量。
参考文献:
[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2007.
[2]周海岩,陈宏明,殷路.“数据结构”课程教学的思考[J].教育理论与实践,2010,(6):62-63.
[3]张继新,周德祥.“数据结构”课程教学中存在的问题及对策[J].教育研究实验,2010,(2):153-155.
[4]杨捷,霍党泽.“数据结构”课程双语教学的研究与实践[J].北京大学学报(哲学社会科学版),2007,(5):161-163.
[5]王剑,等.高职数据结构课程趣味教学的实践[J].职教论坛,2010,(17): 31-32.
[6]方莉.高职院校“C程序设计”与“数据结构”课程整合的探索与思考[J].职业时空,2007,(23):92.
[7]杨红宾.数据结构课程改革探讨[J].教育与职业,2009,(32):131.
[8]将秀英.谈“数据结构”课程的学习[J].中国成人教育,2003,(2):79-80.
[9]李华群,曾惠芳.提升独立学院“算法与数据结构”课程教学质量的探讨[J].教育与职业,2008,(33):134-135.
(责任编辑:沈清)