关于《数据结构》在成人教育中授课方式的变革思考及实验

http://img1.qikan.com.cn/qkimages/hbhs/hbhs201803/hbhs20180364-1-l.jpg
  [摘要]数据结构作为计算机专业的一门基础课程,对学生理解计算机这门学科有着基础性的作用。对以后的系统框架,程序编写等都有至关重要的作用。我认为提高这门课的教学质量,首先要转变观念。这个观念就是成教的学生学习的内容比较肤浅,不需要学习太多的内容。有这个先入为主的观念就不会有积极性去提高教学质量,不会深入研究这门课的如何才有更好的教学效果。不能否认成教的学生有自己的特点,有经验有想法,但时间不固定,这就需要我们成人教育的老师对这门课如何教,如何学有自己思路,不能完全照搬普通高校教材,仅仅进行简化。这篇文章就是我对者们如何在成人教育中如何教授的思考及实施。
  [关键词]主要矛盾;成人教育;数据结构;授课
  [中图分类号]G642
  [文献标识码]A
  [文章编号]1671-5918(2018)03-0143-03
  十九大报告中提出当前的社会主要矛盾已经发生改变,现在的主要矛盾为“由我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。”体现在教育领域就是由以前的想上学到上好学的变化,这就要求我们成教人必须提高自己,钻研自己的专业,提高自己授课能力为解决教育领域的主要矛盾贡献自己的力量。
  一、数据结构的前生今世
  数据结构指相互之間存在着一种或多种关系的数据元素的集合和该集合中数据元素的关系。在不同教材中,对数据结构也有不同的描述,Sartaj Sahni在《数据结构、算法与应用》中描述数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”Clifford A.Shaffer的《数据结构与算法分析》中定义为数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。”Robert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。而数据结构作为一个单独的学科是1968年由美国的Donald Ervin Knuth教授的《计算机程序设计艺术》的第一卷《基本算法》较系统地阐述了数据的逻辑结构和存储结构及其操作。总之,对数据结构的讲解中定义一半都是包含数据和数据之间的关系两部分。
  数据结构作为计算机专业的一门基础课程,对学生理解计算机这门学科有着基础性的作用。对以后的系统框架,程序编写等都有至关重要的作用。在成人教育中,报名计算机专业的同学一直不是很多,这就与我们这些课程的教学质量上不去有很大的关系。
  二、数据结构在国开教学的现状
  我认为提高这门课的教学质量,首先要转变观念。这个观念就是成教的学生学习的内容比较肤浅,不需要学习太多的内容。有这个先人为主的观念就不会有积极性去提高教学质量,不会深入研究这门课的如何才有更好的教学效果。实际上,成教读计算机的同学,特别是本科的同学既然要读这个专业,很多都是从事计算机这一行业的,特别是部分同学还从事了开发工作,有一定的实际开发经验,在实际学习中他们更想将学到的东西进行理论联系实践,这反而比普通教育的难度更高。反观普通高等教育中的计算机专业的同学基本是没有编程经验的。他们在学习的过程中对数据组合的,程序的设计,系统的效率思考并没有那么深刻。这是简单将这些概念存在脑海里,主要用于应付以后的考试。
  成教就不一样了,比如他的在实际开发的过程中调用过哈希函数,对实际项目运行过程中的数据存储是以哈希表的格式存储还是链表的格式存储,有直观的感受,会对不同的数据结构格式的使用造成对运行效率产生的影响有深刻的认识,对数据存储使用什么的结构就有自己的想法和问题。如果我们在教学过程深入思考这一点,这门课的教学难度就要比普通高等学校的教学高出一个层次。
  三、教学变革的思考及实践
  在教学中如何深入浅出的讲解这门课,就要将理论和实际相结合。这门课在前面讲述了队列,链表,树,图,哈希表等几种基本结构后,重点内容就是这个几种基本结构下的遍历,搜索,插入,删除等操作。重点和难点就是树,图,哈希表等几种结构的遍历操作,这个操作也是整个数据结构的基础。在理解了几种基础结构后,重点如何重点突出的理解这几种操作及应用了。
  这篇文章由于篇幅限制,重点讲了变革的第一次课的授课,也是最有代表性的一次课。
  数据结构中的常用的几种数据类型,我们选用用链表和哈希表来举例说明。选链表的原因是这个结构比较容易理解,操作起来也比较简单。选用哈希表是因为这个方法实际应用比较广,效率高,学生在学习过程中和实际工作容易结合,且算法比较成熟,各种变种比较多,可应用于很多环境中。
  排序通常被用作各种计算机科学类的人门问题,以展示一系列算法。我们在数据结构的选择冒泡排序来进行一次排序算法的演示,至于数据结构使用的采用的是单链表还是双链表或者顺序存储都是屏蔽了交换细节,不影响算法。
  教学设计安排:
  我在平时的上课实验中,把这门课的一节分了四个部分。
  (一)第一步(3分钟)引入新授内容
  同学们,我们学习计算机专业要做的就是对信息进行处理。信息在计算机中就是数据,如何操作数据,首先要知道数据是什么样子的。根据数据间的逻辑关系,把数据合理有效地存储到计算机中,并使用合理的算法对其进行相应的处理。这就是我们的这门课,数据结构。
  数据:是描述和量化客观事物和信息等的符号;数据元素是数据的基本单位;
  数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
  现在我们选用我们常用的数据类型,就是我们的学生档案信息来作为数据结构的描述,比如我们把学生的相关信息,学生学号作为一个数据项(也可以认为是一个数据元素),数据项是数据中不可分割的最小单位。我们也可以把多个数据项如(学号,姓名,年龄,性别,电话等)多个数据元素合成为一个数据元素,来统一处理。