论文部分内容阅读
摘要:“数据结构”是计算机相关专业一门重要的专业基础课程,由于该课程的理论性及抽象性较强,如果采用传统的教学方法,很难调动起学生的学习兴趣,教学效果不是很理想。该文分析了“数据结构”课程教学的现状,存在的问题及原因,并提出了把抽象的理论知识生活化、形象化,以及把复杂的实验操作逐步分解化的教学思想及教学方法。实践证明:改进的教学方法增强了学生学习的兴趣,取得了良好的教学效果。
关键词:抽象性;生活化;形象化;分解化
中图分类号:G64 文献标识码:A 文章编号:1009-3044(2016)06-0152-02
1 数据结构概述
数据结构课程主要讨论数据的逻辑结构、存储结构、及对应存储结构下的操作实现。“数据结构”课程的教学目标,是使学生掌握组织数据、存储数据以及处理数据的能力,掌握软件设计的基本方法。从而为后续课程的学习或从事软件开发工作打下坚实基础。
2 数据结构课程教学中普遍存在的问题
“数据结构”课程理论性较强,且使用抽象数据类型描述,理解较困难。传统的“数据结构”教学过程中,普遍存在以下主要问题。
1)先修课程“C语言程序设计”等知识储备不足,“数据结构”课程中需要频繁使用函数、指针、结构体等知识,而这些知识是在“C语言”课程后半部分讲授,时间短,且有难度,掌握不扎实。[1]
2)通常在讲解第一章“绪论”时比较吝惜时间,一带而过,故学生对学习“数据结构”课程的意义不明确,多数同学仅为了考试而学,导致学习的主观能动性较差,学习效果不理想。
3)大多数“数据结构”教材中对数据结构算法的描述多数是采用伪代码形式或者代码片段形式,缺少完整的算法描述,对C语言基础本来就比较薄弱的学生来说,理解难度较大,自己很难编写出完整的算法,严重打击学生的学习自信心,对“数据结构”课程逐渐失去了学习的兴趣。
4)数据结构理论性较强,如果只是照本宣科地讲解某种数据结构,不能联系生活中的实际例子,故理解较困难,导致该课程枯燥、难懂。
5)实验课时不足。“数据结构”课程是一门实践性很强的学科。传统的“数据结构”课程的教学中,只注重理论讲解,实验操作课时不足,导致所学知识仅是停留在纸上谈兵的层面,理论和实践脱节,不能把所学知识灵活应用于程序开发中。
6)实验题目设计的较大、较难,又缺乏提示,没有分步细化,使学生望而却步,很难独立完成一个完整算法。久而久之,对该门课程的学习失去信心。
7)考核方式不合理,通常总评成绩中,过多注重理论成绩,实验和平时成绩比重较小。
3 改进方法
针对传统教学中出现的以上问题,本文作者在长期的“数据结构”教学过程中,提出了以下改进方法。
1)在讲解“数据结构”课程前对C语言中的函数、指针、结构体等知识点作简单回顾和复习。为后续学习做铺垫。
2)充分重视绪论课的作用,在绪论课上要讲解清楚以下问题:
数据结构的含义,什么是数据,什么是结构。
数据结构主要研究哪几个方面。主要研究数据的逻辑结构、存储结构、和操作实现。
学习“数据结构”课程的意义。既然一些头文件中有常见数据结构的各种库函数,所以包含该头文件后,就可以直接调用对应操作函数,从这个角度来说,只需掌握各种数据结构对应库函数的头文件及调用格式即可。那么,为什么还要学习“数据结构”这门课中介绍的各种常见数据结构的具体操作实现呢等疑问。
④数据类型、抽象数据类型的意义。可以让学生把抽象数据类型理解为通用的数据类型,即可以替换成任何具体的一种数据类型。
⑤“数据结构”课程的学习目标:通过对常见数据结构的学习,使学生能够根据程序需要选择合适的数据结构,掌握组织数据、存储数据以及处理数据的能力,掌握软件设计的基本方法。从而为后续课程的学习或从事软件开发工作打下坚实基础。
⑥“数据结构”课程的学习方法:够用的理论 足量的实践。学习每种数据结构时,应清楚该数据结构的应用场景,算法的时间复杂度分析。
3)授课时采用了朱站立编著的《数据结构——使用C语言(第4版)》,该教材主要优点是每一种具体数据类型的所有操作均有完整C语言代码,且注释清晰,讲解透彻,非常适合初学者或基础一般的学生。
4)在讲解各种具体数据结构时,多联系生活中的实际例子,使抽象的数据结构生活化、形象化,让学生更好地理解每种数据结构的实际应用场景。
如在讲解链表时,可把链表看成一列火车,头结点对应火车头,链接各车厢的链子对应指向下一个结点的指针等;在讲队列时,可以想象成在食堂排队打饭的情景,后来的同学要排在队尾,即队列只能在队尾插入,队头的同学接受完服务后离开,即队列只能在队头删除;可以把堆栈比喻成一个书箱,先放入的书籍在下面,后放的在上面,且只能从书箱的上口处放入、取出書籍,即对应堆栈只能从一端(栈顶)插入或删除数据元素,且满足后进先出的特点。树型结构可以对应家谱图或一个单位的组织结构图。图形数据结构可以对应于城市交通路线图等等。通过这些形象化、生活化的比喻帮助学生更容易地理解抽象的数据结构。
5)充分重视“数据结构”课程的实验教学环节,增加实验课时,且提高实验操作的考核比重。
6)实验内容选择要具有典型性,能充分恰到好处得说明该某种数据结构的典型应用场景。且不宜太难,对于较复杂的实验题目,可提示细化为若干步,让一些掌握不太好的学生,可以独立完成较简单的几步,不至于对一个较大的题目无从下手。
例如:在使用循环单链表实现约瑟夫环问题时,可以把该题目细化为以下步骤[2]:
定义结点结构体。
创建含n个数据元素结点的单向循环链表。
删除链表中某结点的操作,删除报数为m的结点,并输出删除的结点。
... ...
7)科学合理的考核方式。
考核是教学过程中非常重要的环节,是教与学的指挥棒。既是体现教学的导向及侧重点,又是激励学生的重要方式[3]。
本文提出的考核方案,既注重理论知识的考察,又充分重视该课程的实验操作能力的考察。具体方案如下:
理论成绩占40%;实验成绩占40%,平时成绩占20%,充分体现对实验操作的重视度。
4 总结
“数据结构”课程是计算机相关专业很重要的一门基础课程,本文分析了传统教学中存在的一些问题及根源,并提出了对应的改进方案,实践证明,采用本文中提出的一系列改进的教学方法,激发了学生的学习的兴趣,提高了“数据结构”课程的教学质量,取得了良好的教学效果。
参考文献:
[1]韩桂华.《数据结构》学习方法探析[J].软件导刊,2013(12):22-23.
[2]刘娜,路莹,姚春龙,等.“数据结构”课程教学方法改革与探讨[J].中国电力教育,2014(2):112-114.
[3]孙海洋,陈珍.高校《新型软件开发综合实训》课程建设的探讨[J].电脑知识与技术,2015(11):132-134.
关键词:抽象性;生活化;形象化;分解化
中图分类号:G64 文献标识码:A 文章编号:1009-3044(2016)06-0152-02
1 数据结构概述
数据结构课程主要讨论数据的逻辑结构、存储结构、及对应存储结构下的操作实现。“数据结构”课程的教学目标,是使学生掌握组织数据、存储数据以及处理数据的能力,掌握软件设计的基本方法。从而为后续课程的学习或从事软件开发工作打下坚实基础。
2 数据结构课程教学中普遍存在的问题
“数据结构”课程理论性较强,且使用抽象数据类型描述,理解较困难。传统的“数据结构”教学过程中,普遍存在以下主要问题。
1)先修课程“C语言程序设计”等知识储备不足,“数据结构”课程中需要频繁使用函数、指针、结构体等知识,而这些知识是在“C语言”课程后半部分讲授,时间短,且有难度,掌握不扎实。[1]
2)通常在讲解第一章“绪论”时比较吝惜时间,一带而过,故学生对学习“数据结构”课程的意义不明确,多数同学仅为了考试而学,导致学习的主观能动性较差,学习效果不理想。
3)大多数“数据结构”教材中对数据结构算法的描述多数是采用伪代码形式或者代码片段形式,缺少完整的算法描述,对C语言基础本来就比较薄弱的学生来说,理解难度较大,自己很难编写出完整的算法,严重打击学生的学习自信心,对“数据结构”课程逐渐失去了学习的兴趣。
4)数据结构理论性较强,如果只是照本宣科地讲解某种数据结构,不能联系生活中的实际例子,故理解较困难,导致该课程枯燥、难懂。
5)实验课时不足。“数据结构”课程是一门实践性很强的学科。传统的“数据结构”课程的教学中,只注重理论讲解,实验操作课时不足,导致所学知识仅是停留在纸上谈兵的层面,理论和实践脱节,不能把所学知识灵活应用于程序开发中。
6)实验题目设计的较大、较难,又缺乏提示,没有分步细化,使学生望而却步,很难独立完成一个完整算法。久而久之,对该门课程的学习失去信心。
7)考核方式不合理,通常总评成绩中,过多注重理论成绩,实验和平时成绩比重较小。
3 改进方法
针对传统教学中出现的以上问题,本文作者在长期的“数据结构”教学过程中,提出了以下改进方法。
1)在讲解“数据结构”课程前对C语言中的函数、指针、结构体等知识点作简单回顾和复习。为后续学习做铺垫。
2)充分重视绪论课的作用,在绪论课上要讲解清楚以下问题:
数据结构的含义,什么是数据,什么是结构。
数据结构主要研究哪几个方面。主要研究数据的逻辑结构、存储结构、和操作实现。
学习“数据结构”课程的意义。既然一些头文件中有常见数据结构的各种库函数,所以包含该头文件后,就可以直接调用对应操作函数,从这个角度来说,只需掌握各种数据结构对应库函数的头文件及调用格式即可。那么,为什么还要学习“数据结构”这门课中介绍的各种常见数据结构的具体操作实现呢等疑问。
④数据类型、抽象数据类型的意义。可以让学生把抽象数据类型理解为通用的数据类型,即可以替换成任何具体的一种数据类型。
⑤“数据结构”课程的学习目标:通过对常见数据结构的学习,使学生能够根据程序需要选择合适的数据结构,掌握组织数据、存储数据以及处理数据的能力,掌握软件设计的基本方法。从而为后续课程的学习或从事软件开发工作打下坚实基础。
⑥“数据结构”课程的学习方法:够用的理论 足量的实践。学习每种数据结构时,应清楚该数据结构的应用场景,算法的时间复杂度分析。
3)授课时采用了朱站立编著的《数据结构——使用C语言(第4版)》,该教材主要优点是每一种具体数据类型的所有操作均有完整C语言代码,且注释清晰,讲解透彻,非常适合初学者或基础一般的学生。
4)在讲解各种具体数据结构时,多联系生活中的实际例子,使抽象的数据结构生活化、形象化,让学生更好地理解每种数据结构的实际应用场景。
如在讲解链表时,可把链表看成一列火车,头结点对应火车头,链接各车厢的链子对应指向下一个结点的指针等;在讲队列时,可以想象成在食堂排队打饭的情景,后来的同学要排在队尾,即队列只能在队尾插入,队头的同学接受完服务后离开,即队列只能在队头删除;可以把堆栈比喻成一个书箱,先放入的书籍在下面,后放的在上面,且只能从书箱的上口处放入、取出書籍,即对应堆栈只能从一端(栈顶)插入或删除数据元素,且满足后进先出的特点。树型结构可以对应家谱图或一个单位的组织结构图。图形数据结构可以对应于城市交通路线图等等。通过这些形象化、生活化的比喻帮助学生更容易地理解抽象的数据结构。
5)充分重视“数据结构”课程的实验教学环节,增加实验课时,且提高实验操作的考核比重。
6)实验内容选择要具有典型性,能充分恰到好处得说明该某种数据结构的典型应用场景。且不宜太难,对于较复杂的实验题目,可提示细化为若干步,让一些掌握不太好的学生,可以独立完成较简单的几步,不至于对一个较大的题目无从下手。
例如:在使用循环单链表实现约瑟夫环问题时,可以把该题目细化为以下步骤[2]:
定义结点结构体。
创建含n个数据元素结点的单向循环链表。
删除链表中某结点的操作,删除报数为m的结点,并输出删除的结点。
... ...
7)科学合理的考核方式。
考核是教学过程中非常重要的环节,是教与学的指挥棒。既是体现教学的导向及侧重点,又是激励学生的重要方式[3]。
本文提出的考核方案,既注重理论知识的考察,又充分重视该课程的实验操作能力的考察。具体方案如下:
理论成绩占40%;实验成绩占40%,平时成绩占20%,充分体现对实验操作的重视度。
4 总结
“数据结构”课程是计算机相关专业很重要的一门基础课程,本文分析了传统教学中存在的一些问题及根源,并提出了对应的改进方案,实践证明,采用本文中提出的一系列改进的教学方法,激发了学生的学习的兴趣,提高了“数据结构”课程的教学质量,取得了良好的教学效果。
参考文献:
[1]韩桂华.《数据结构》学习方法探析[J].软件导刊,2013(12):22-23.
[2]刘娜,路莹,姚春龙,等.“数据结构”课程教学方法改革与探讨[J].中国电力教育,2014(2):112-114.
[3]孙海洋,陈珍.高校《新型软件开发综合实训》课程建设的探讨[J].电脑知识与技术,2015(11):132-134.