论文部分内容阅读
摘要:《数据结构》是计算机专业的核心课程,通过对《数据结构》教学的研究与探讨,提出了一些可供参考的教学思路,在近年来的教学实践中,取得了较好的效果。
关键词:数据结构;教学模式;程序设计
中图分类号:G642文献标识码:A文章编号:1009-3044(2008)17-21498-02
1 课程概述
《数据结构》涉及数据在计算机中的表示、组织和处理, 以及相应结构上的算法设计和初步的算法性能分析技术。数据的表示是计算机科学的基础。在实际工程应用领域中,大多数计算机程序的实现目标与其说是完成运算,倒不如说是组织、存储和检索数据。从运行时间和存储空间两个方面分析,这些程序都必须合理地组织数据,以支持高效的信息处理过程。因此,《数据结构》在计算机科学中是一门综合性的专业基础课,也是一门核心课程。它不仅是一般程序设计的基础,而且也是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。这门课程对于培养学生利用计算机解决现实问题的能力,以及理解计算机的实质,都有极其重要的意义。因此,《数据结构》的教学就显得尤为重要。
2 《数据结构》在我校的教学现状
《数据结构》不仅作为我校计算机专业的必修课程,也是电子商务,信息管理与信息系统,信息与计算科学,电气等专业必修或选修课程。通过作者近几年对我校上述各专业的教学发现,很多学生反映课程难度比较大,课程内容比较抽象,不易掌握。因此,在新形势下,《数据结构》教学内容与方式必须进行相应的改革与更新,从而不断促进教学质量的提高。
3 课程教学学习过程中存在的问题
3.1 教学模式单一
在传统教学模式下,主要强调教师对课程的讲授作用,学生坐在讲台下面,目光注视讲台上的教师,教师的讲授是学生获取知识的主要途径。在这种教学模式下,学生只是被动地接受知识,对知识的掌握基本上是依靠记忆的方式,对所学内容的理解非常肤浅。学生很可能在课堂上表面上听懂了,但下课后或者关上书,学生可能又不知道自己到底学到了什么。《数据结构》课程内容较多,灵活性很强,内容也比较抽象,该门课程不仅仅要求学生掌握书本上的知识,而是需要培养学生分析问题,解决问题的能力。并且能够运用所学到的理论知识解决现实中的问题。因此,仅仅依靠传统的教学模式,显然很难取得较好的效果。
3.2 实践编程能力不强
算法是《数据结构》的重要组成部分,在教材中的每一小节都有多个算法,这些算法通常采用类C语言等某种高级语言的伪代码形式描述,学生首先需要在理解教材上伪代码描述的算法基础上,然后再将这些伪代码转换为计算机上能运行的程序。通过多个班级的教学实践证明,很多学生理解教材上的伪代码往往比较容易,但要将这些算法转换为能在计算机上运行的程序往往比较困难。
3.3 基础理论掌握不扎实
在《数据结构》的教学内容中,很多内容的掌握都需要数学的推导过程,例如对算法时间复杂度和空间复杂度的分析,数组,树,图等章节的很多内容都涉及到高等数学,线性代数,离散数学,概率论等的知识。部分学生对前述数学课程的内容不熟悉,因此,在学习《数据结构》的过程中很多涉及到数学推导的部分往往很难理解。
3.4 课程考核方式不太合理
课程的考核方式往往过分强调最终的卷面成绩,而造成学生对平时实验,平时作业等往往不够重视。使得一部分学生平时不认真学习,仅仅依靠考前突击几天的形式来应付考试,这样即便这部分学生能通过考试,但实际上并没有学到应该掌握的知识。
3.5 学生自我学习能力不强
很多学生的学习过程往往是一个被动的过程,过分依赖于教师,被动的完成教师布置的作业和实验,缺乏自主学习的能力,更谈不上和他人共同探讨,互相沟通了。这样的学习过程使得学生学习热情不高,自身能力很难得到提高。
4 课程教学方法的改进与探讨
数据结构的课程性质对学生的理论学习和实践动手能力都提出了很高的要求。因此,要使学生较好地掌握《数据结构》的知识,需要教师充分利用好课堂教学时间,不断改进教学方法,还需要学生在课后认真钻研,和教师充分互动,才能获得较好的效果。在此,结合作者近年来对多个班级《数据结构》的教学经验,针对以上提出的问题,进行以下探讨。
4.1 改进传统教学模式
以教师讲授为主,学生作为“听众”的传统教学模式显然很难获得较好的教学效果。在新形势下,教师应发挥自身的聪明才智,采取如讨论式、启发式,案例式等多种教学手段,充分发挥学生学习的主动性,改善教学效果。如在讲授一个比较复杂的算法时,在讲清楚教材上的算法后,让学生分析这个算法的优点和缺点,让学生思考还有没有更好的解决这个问题的算法,并且在课堂上尽量多抽一部分学生表述出自己的想法,最后教师给出相应的点评。通过这种启发式的教学方式,可以促使学生的思维活跃起来,学生不但可以充分表达出自己的想法,还可以从别人的想法中得到收获。在课堂上,教师通过与学生之间的互动,不但可以培养学生分析问题和解决问题的能力,而且也可以改善传统教学方式下比较枯燥的课堂气氛,增强学生的学习兴趣。
下课后,教师可以通过当面询问,电子邮件等方式尽量和学生多交流,了解学生对课程内容的掌握情况,使得教师对学生的学习情况做到心中有数,从而促使自身的教学更有针对性。
4.2 重视实验环节,加强学生实践编程能力
将《数据结构》教材上的伪代码转换成计算机上可以执行的程序是教学中的基本要求。通过近几年的教学发现,这一环节往往是很多学生感觉最困难的地方。很多学生对教材上的基础知识觉得都掌握了,但一旦要求上机完成程序设计时,经常不知道如何下手。究其原因,主要是由于学生对《数据结构》的先导课《高级语言程序设计》的所学的内容不精通或有所淡忘所致,学生在学习《数据结构》以前,已经系统学习了《高级语言程序设计》的主要内容,但由于学时数或时间跨度的原因,部分学生对《高级语言程序设计》中的较难的内容:如函数、指针、结构体等,没能很好掌握,但这些恰恰是《数据结构》实验中经常需要涉及的内容。因此,在实验课的前期阶段,首先应督促学生复习《高级语言程序设计》的相关内容。并针对教材上的某个算法,给出相应的实现程序,作为学生完成程序设计时的参考,学生首先通过这种模仿,比较的方式,就能对《数据结构》的程序设计开始知道该怎样入手。通过实验地不断进行,学生的实际编程能力也就慢慢得到提高了。
针对不同专业的学生计算机基础不同,能力和水平差别较大,因此,实验题目的安排可以分开层次,注意难易搭配。比如在安排某一章实验题目的时候,可以给出简单,中等,较难的难易程度不同的几个题目,供学生选做。学生可以根据自身的情况,选择较难或者较易的题目。通过这种方式,可以使每一位学生都能够上机编程,完成相应的题目,从而提高自己实际编程能力。
对于部分基础比较好,能力较强的学生,可以开设“数据结构”兴趣小组,对于兴趣小组的成员,可以安排难度更大的课程设计供其完成。小组成员通过互相沟通,共同探讨,可以达到共同提高的目的。通过这种方式,不但可以使优秀学生的编程能力得到进一步提高,而且培养了学生的团队协作精神,为以后的工作和学习打下了基础。
4.3 加强基础理论教学,培养学生研究能力
《数据结构》教学内容中有很多理论性较强的内容,如算法的复杂度分析,Hanoi塔问题,数组,树与等价问题,树的计数,图论等相应内容。这些内容很多都是后续课程,如《算法分析与设计》、《计算复杂性》、《图论》等的基础理论知识。因此,教师一定要重视《数据结构》中基础理论的教学,对比较复杂的理论知识认真加以讲解和推导,使得学生能够熟练掌握这些内容,为今后的进一步学习打下坚实的基础。针对这些理论知识,教师可以鼓励学生多看其他的参考书和学术论文,增强学生的自我学习能力。甚至可以鼓励比较优秀的学生写出学术论文发表,培养学生的科研素养,为今后的深造打下坚实的基础。
4.4 改革考核方式
改革以往过于强调最终卷面成绩的考核方式,加大平时实验,课后作业,半期考试等在最终成绩中的比重。使得平时不认真学习的学生很难通过考试,促使学生平时更加努力学习。在卷面考核时,除了进行教材上基础知识的考核外,还要有一些比较灵活的题目,这样可以培养学生分析问题,解决问题的能力,而不仅仅是对教材上一些知识的简单记忆。
5 结论
《数据结构》作为一门非常重要的专业基础课,其教学质量的好坏直接影响了计算机及其相关专业人才培养的素质。作者针对课程理论性,实践性均较强等特点,结合近几年来的教学实践,提出了一些可供参考的教学思路。这些思路在近年来的教学中加以应用,学生的各方面能力都得到了提高,取得了较好的效果。
参考文献:
[1] 夏英. 数据结构课程教学改革探析[J]. 重庆邮电大学学报(社会科学版),增刊,2007(6):171-172.
[2] 王力, 侯燕玲. 计算机专业《数据结构》考核方案设计与实践[J]. 中国成人教育,2007(12):161-162.
[3] 顾红生, 曲娟. 关于数据结构课堂教学模式的研究[J]. 辽宁广播电视大学学报,2007(4):44-45.
[4] 唐浩坤, 刘宴兵. “数据结构”课程教学改革与实践[J]. 重庆邮电大学学报(社会科学版),增刊,2007(6):168-170.
[5] 张丽, 崔斌, 刘宝旨, 宋国建. 中国科教创新导刊,2007(475):32.
[6] 严蔚敏, 吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,1997.
关键词:数据结构;教学模式;程序设计
中图分类号:G642文献标识码:A文章编号:1009-3044(2008)17-21498-02
1 课程概述
《数据结构》涉及数据在计算机中的表示、组织和处理, 以及相应结构上的算法设计和初步的算法性能分析技术。数据的表示是计算机科学的基础。在实际工程应用领域中,大多数计算机程序的实现目标与其说是完成运算,倒不如说是组织、存储和检索数据。从运行时间和存储空间两个方面分析,这些程序都必须合理地组织数据,以支持高效的信息处理过程。因此,《数据结构》在计算机科学中是一门综合性的专业基础课,也是一门核心课程。它不仅是一般程序设计的基础,而且也是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。这门课程对于培养学生利用计算机解决现实问题的能力,以及理解计算机的实质,都有极其重要的意义。因此,《数据结构》的教学就显得尤为重要。
2 《数据结构》在我校的教学现状
《数据结构》不仅作为我校计算机专业的必修课程,也是电子商务,信息管理与信息系统,信息与计算科学,电气等专业必修或选修课程。通过作者近几年对我校上述各专业的教学发现,很多学生反映课程难度比较大,课程内容比较抽象,不易掌握。因此,在新形势下,《数据结构》教学内容与方式必须进行相应的改革与更新,从而不断促进教学质量的提高。
3 课程教学学习过程中存在的问题
3.1 教学模式单一
在传统教学模式下,主要强调教师对课程的讲授作用,学生坐在讲台下面,目光注视讲台上的教师,教师的讲授是学生获取知识的主要途径。在这种教学模式下,学生只是被动地接受知识,对知识的掌握基本上是依靠记忆的方式,对所学内容的理解非常肤浅。学生很可能在课堂上表面上听懂了,但下课后或者关上书,学生可能又不知道自己到底学到了什么。《数据结构》课程内容较多,灵活性很强,内容也比较抽象,该门课程不仅仅要求学生掌握书本上的知识,而是需要培养学生分析问题,解决问题的能力。并且能够运用所学到的理论知识解决现实中的问题。因此,仅仅依靠传统的教学模式,显然很难取得较好的效果。
3.2 实践编程能力不强
算法是《数据结构》的重要组成部分,在教材中的每一小节都有多个算法,这些算法通常采用类C语言等某种高级语言的伪代码形式描述,学生首先需要在理解教材上伪代码描述的算法基础上,然后再将这些伪代码转换为计算机上能运行的程序。通过多个班级的教学实践证明,很多学生理解教材上的伪代码往往比较容易,但要将这些算法转换为能在计算机上运行的程序往往比较困难。
3.3 基础理论掌握不扎实
在《数据结构》的教学内容中,很多内容的掌握都需要数学的推导过程,例如对算法时间复杂度和空间复杂度的分析,数组,树,图等章节的很多内容都涉及到高等数学,线性代数,离散数学,概率论等的知识。部分学生对前述数学课程的内容不熟悉,因此,在学习《数据结构》的过程中很多涉及到数学推导的部分往往很难理解。
3.4 课程考核方式不太合理
课程的考核方式往往过分强调最终的卷面成绩,而造成学生对平时实验,平时作业等往往不够重视。使得一部分学生平时不认真学习,仅仅依靠考前突击几天的形式来应付考试,这样即便这部分学生能通过考试,但实际上并没有学到应该掌握的知识。
3.5 学生自我学习能力不强
很多学生的学习过程往往是一个被动的过程,过分依赖于教师,被动的完成教师布置的作业和实验,缺乏自主学习的能力,更谈不上和他人共同探讨,互相沟通了。这样的学习过程使得学生学习热情不高,自身能力很难得到提高。
4 课程教学方法的改进与探讨
数据结构的课程性质对学生的理论学习和实践动手能力都提出了很高的要求。因此,要使学生较好地掌握《数据结构》的知识,需要教师充分利用好课堂教学时间,不断改进教学方法,还需要学生在课后认真钻研,和教师充分互动,才能获得较好的效果。在此,结合作者近年来对多个班级《数据结构》的教学经验,针对以上提出的问题,进行以下探讨。
4.1 改进传统教学模式
以教师讲授为主,学生作为“听众”的传统教学模式显然很难获得较好的教学效果。在新形势下,教师应发挥自身的聪明才智,采取如讨论式、启发式,案例式等多种教学手段,充分发挥学生学习的主动性,改善教学效果。如在讲授一个比较复杂的算法时,在讲清楚教材上的算法后,让学生分析这个算法的优点和缺点,让学生思考还有没有更好的解决这个问题的算法,并且在课堂上尽量多抽一部分学生表述出自己的想法,最后教师给出相应的点评。通过这种启发式的教学方式,可以促使学生的思维活跃起来,学生不但可以充分表达出自己的想法,还可以从别人的想法中得到收获。在课堂上,教师通过与学生之间的互动,不但可以培养学生分析问题和解决问题的能力,而且也可以改善传统教学方式下比较枯燥的课堂气氛,增强学生的学习兴趣。
下课后,教师可以通过当面询问,电子邮件等方式尽量和学生多交流,了解学生对课程内容的掌握情况,使得教师对学生的学习情况做到心中有数,从而促使自身的教学更有针对性。
4.2 重视实验环节,加强学生实践编程能力
将《数据结构》教材上的伪代码转换成计算机上可以执行的程序是教学中的基本要求。通过近几年的教学发现,这一环节往往是很多学生感觉最困难的地方。很多学生对教材上的基础知识觉得都掌握了,但一旦要求上机完成程序设计时,经常不知道如何下手。究其原因,主要是由于学生对《数据结构》的先导课《高级语言程序设计》的所学的内容不精通或有所淡忘所致,学生在学习《数据结构》以前,已经系统学习了《高级语言程序设计》的主要内容,但由于学时数或时间跨度的原因,部分学生对《高级语言程序设计》中的较难的内容:如函数、指针、结构体等,没能很好掌握,但这些恰恰是《数据结构》实验中经常需要涉及的内容。因此,在实验课的前期阶段,首先应督促学生复习《高级语言程序设计》的相关内容。并针对教材上的某个算法,给出相应的实现程序,作为学生完成程序设计时的参考,学生首先通过这种模仿,比较的方式,就能对《数据结构》的程序设计开始知道该怎样入手。通过实验地不断进行,学生的实际编程能力也就慢慢得到提高了。
针对不同专业的学生计算机基础不同,能力和水平差别较大,因此,实验题目的安排可以分开层次,注意难易搭配。比如在安排某一章实验题目的时候,可以给出简单,中等,较难的难易程度不同的几个题目,供学生选做。学生可以根据自身的情况,选择较难或者较易的题目。通过这种方式,可以使每一位学生都能够上机编程,完成相应的题目,从而提高自己实际编程能力。
对于部分基础比较好,能力较强的学生,可以开设“数据结构”兴趣小组,对于兴趣小组的成员,可以安排难度更大的课程设计供其完成。小组成员通过互相沟通,共同探讨,可以达到共同提高的目的。通过这种方式,不但可以使优秀学生的编程能力得到进一步提高,而且培养了学生的团队协作精神,为以后的工作和学习打下了基础。
4.3 加强基础理论教学,培养学生研究能力
《数据结构》教学内容中有很多理论性较强的内容,如算法的复杂度分析,Hanoi塔问题,数组,树与等价问题,树的计数,图论等相应内容。这些内容很多都是后续课程,如《算法分析与设计》、《计算复杂性》、《图论》等的基础理论知识。因此,教师一定要重视《数据结构》中基础理论的教学,对比较复杂的理论知识认真加以讲解和推导,使得学生能够熟练掌握这些内容,为今后的进一步学习打下坚实的基础。针对这些理论知识,教师可以鼓励学生多看其他的参考书和学术论文,增强学生的自我学习能力。甚至可以鼓励比较优秀的学生写出学术论文发表,培养学生的科研素养,为今后的深造打下坚实的基础。
4.4 改革考核方式
改革以往过于强调最终卷面成绩的考核方式,加大平时实验,课后作业,半期考试等在最终成绩中的比重。使得平时不认真学习的学生很难通过考试,促使学生平时更加努力学习。在卷面考核时,除了进行教材上基础知识的考核外,还要有一些比较灵活的题目,这样可以培养学生分析问题,解决问题的能力,而不仅仅是对教材上一些知识的简单记忆。
5 结论
《数据结构》作为一门非常重要的专业基础课,其教学质量的好坏直接影响了计算机及其相关专业人才培养的素质。作者针对课程理论性,实践性均较强等特点,结合近几年来的教学实践,提出了一些可供参考的教学思路。这些思路在近年来的教学中加以应用,学生的各方面能力都得到了提高,取得了较好的效果。
参考文献:
[1] 夏英. 数据结构课程教学改革探析[J]. 重庆邮电大学学报(社会科学版),增刊,2007(6):171-172.
[2] 王力, 侯燕玲. 计算机专业《数据结构》考核方案设计与实践[J]. 中国成人教育,2007(12):161-162.
[3] 顾红生, 曲娟. 关于数据结构课堂教学模式的研究[J]. 辽宁广播电视大学学报,2007(4):44-45.
[4] 唐浩坤, 刘宴兵. “数据结构”课程教学改革与实践[J]. 重庆邮电大学学报(社会科学版),增刊,2007(6):168-170.
[5] 张丽, 崔斌, 刘宝旨, 宋国建. 中国科教创新导刊,2007(475):32.
[6] 严蔚敏, 吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,1997.