电子信息工程专业数据结构实验教学改革研究
2015-05-06邱奕敏武汉科技大学信息科学与工程学院武汉430081
邱奕敏(武汉科技大学信息科学与工程学院,武汉 430081)
电子信息工程专业数据结构实验教学改革研究
邱奕敏
(武汉科技大学信息科学与工程学院,武汉430081)
数据结构是电子信息技术领域的一门基础课程,实践在数据结构的教学中起着重要的作用,可以帮助学生理解抽象的概念,增加趣味性,甚至可以用来解决日常生活中遇到的常见问题,同时练习和巩固了常用的编程语言。
数据结构;电子信息;实验教学
0 引言
随着计算机和电子信息科学的快速发展,电子信息科学与工程专业被用以培养大量的电子信息人才。《高等学校电子信息科学与工程类本科指导性专业规范(试行)》是由教育部编制的电子信息工程专业管理规定,文中指出:“电子信息工程专业教育内容和知识体系由通识教育、专业教育和综合教育三大部分组成。”“计算机基础是理工科类各专业通识教育知识单元,包含计算机文化、算法语言和程序设计等内容[1]。”这说明在教学实践方法,电子信息专业也需要掌握计算机专业的基础学科内容。数据结构是计算机专业的核心课程之一,也是电信专业学术需要掌握的一门重要基础课。但是由于两种专业的培养目标和课程体系不同,因此电信专业数据结构课程在理论及实践教学的侧重点也不同。
1 数据结构的基本概念和特性
1968年美国唐纳德•克努特教授开创了数据结构的最初体系,他阐述了数据的逻辑和存储结构及其操作。数据结构作为一门核心课程,介于数学、计算机硬件和软件之间,其内容是一般程序设计的基础,也是对编译程序、操作系统、数据库系统等系统程序设计和实现的重要基础。
数据结构从广义上描述,包括逻辑结构和物理结构。狭义上则专指逻辑结构,即元素间的逻辑关系,包括集合型、线性结构、树型和图型。数据结构课程是围绕上述几种数据类型进行的,除了这些基本的操作,还构建了插入,删除,查找,取元素,取长度等。此外,加入了较为复杂的算法,即查找和排序。
对于大多数的数据结构,都需要了解插入数据项、查找数据项、删除数据项和访问数据项,用来进行后续的显示或其他操作。因此,电子信息专业数据结构教学具有以下特点:
1.1概念多,对比性强,易记忆
每种数据结构都包含了类型定义和结构特点,也都有建立、插入、删除、查找等基本操作。因此,在新章节的学习中可以结合前面章节的内容,学生就很容易掌握数据结构的特点和整体概念。
1.2算法多样,特点不同
虽然各种数据结构都有相同的操作,但其存储结构不同,所以方法也不同。例如,在线性表中删除结点,该结点是前、后关系,所以删除时只需要考虑结点的前驱与后继;但是,在二叉树中删除结点,则需要考虑删除的结点所在位置,对于叶子结点或是左右子树,应考虑删除后的不同信息修改问题。
1.3形式抽象,难以实际应用
现实生活中抽象出来的数据元素作为数据结构的研究对象,只是对单纯的数据进行操作,没有考虑数据本身的实际意义,加上表现形式不同,更加抽象难以理解。
2 电子信息工程专业数据结构实验教学特点
数据结构是电子信息工程学科的重要基础课程,研究的主要内容是各种基本而又典型的数据结构、算法思想及其实际应用,以培养学生对数据结构特性的分析与研究能力,使学生理解各种数据结构的特点、存储、运算方法以及基本应用;培养学生选用合适的数据结构,运用C语言编写应用程序和初步评价算法程序的能力。学生们需要利用实验课来实践所学理论进而深入理解理论知识并探索和运用知识,用科学的思维和严谨的科学态度[2-4]来进行今后的学习,因此数据结构实验课程的合理安排非常重要。
数据结构在电子信息工程的课程中有着承上启下的重要作用。其先修课程有计算机基础和数字电路与数字逻辑,数据结构课程是数据库、计算机组成原理等核心课程的基础,还是计算机网络等课程应该掌握的前提学科。理解数据结构在学科系统中的位置,合理安排理论和实践教学,能帮助学生加深对基础课程的理解,培养学生具有良好的工程思维,还能使学生为未来核心课程的学习奠定良好的基础。
综上所述,数据结构课程具有概念较多、内容抽象、理论和逻辑性强、程序复杂等突出特点。教学实践中发现,学生中普遍存在概念不清、无法准确理解的问题,上实验课时常常不能通过正确编写程序来理解课程内容。因此,有必要根据数据结构实验教学特点进行实验教学改革。
3 数据结构实验教学改革措施
实验教学是理论教学的延续和扩展,是培养学生兴趣、解决实际问题的重要手段。课程中需要学生具有一定的编程能力用以加深对算法的理解,因此学生对于C语言的掌握也至关重要。本文在笔者多年实验教学经验基础上,以激发学生对数据结构课程的学习兴趣和加深理解为主线,提出了电子信息专业数据结构实验教学的措施。
(1)数据结构中树、图、查找、排序等章节的概念较多,很多都需要通过理解记忆,才能更好地理解算法的含义和数据结构,因此可以利用一些简单的小例子来帮助学生记忆。例如,学习完链表后,可以将一个班上所有同学的信息用链表的形式用数据结构的概念来定
义,将男生和女生信息分成两个链表来保存,在链表尾部插入新来的同学的信息等。通过这些类似的小例子,都可以帮助电信专业的学生们理解数据结构,了解算法设计对程序的影响。
(2)由于大多数电信专业学生程序语言和编程能力较弱,对问题没有清晰的算法思想,也无法将其转为完整的代码正确的表达出来。同时课本上的例证用的都是伪C代码,学生很难理解这种伪代码的描述语句,编写出C程序的难度就更大了。因此教师在实践教学中应该注重对于程序语言的培养,对于课本上的类C语言描述需要更透彻的讲解,对于一些默认采用的代码也需要多提示。
例如在链表学习中,课本对于单链表结点类型的定义为:
typedefstructLNode
{
ElemTypedata;
structLNode*next;
}LinkList,*LNode;
其中LNode是节点指针,用于单链表的链接操作(指向下一个节点)。LinkList是定义的结构体的名称,用于表示整个链表(其中包含两个方面,数据域和指针域,当链表中只有一个节点时,指的就是整个节点)。这里的*LNode和LinkList都是指向链表,但一个是用名字表示,另一个是指针表示。而这里的ElemType可以表示任意类型,通常编写程序时,会在结构体的前面加上类似typedefElemTypeint;的语句,用以说明此程序中的ElemType被定义成int类型。
这样类似的编程中需要注意的小细节,都需要在实验教学中告诉学生们,方便学生们对编程语言的阅读、分析和理解。同时,平时应该多鼓励学生编写程序,阅读程序,解决实际小问题,提高学生的积极性。
(3)根据学生掌握知识的程度不同,教师在实验教学中应该采用由简到难的方法来帮助学生克服学习中的困难。例如,学习树这个数据结构时,由于用到了递归的概念,因此先从递归的含义着手,结合前面学到的线性表的概念,从利用树的孩子表示法开始,过度到孩子兄弟表示法,学习树转换成二叉树的过程和不同的程序编写方法,然后通过阅读例子,最后编写程序,在阅读中理解,在实践中进步。
(4)同时学生也需要通过自身努力来提高兴趣和学习效果。因此,学生要进行课前预习和课后复习,熟悉各种数据结构的表示方法,将数据结构的概念应用到实际生活中来解决问题,多看、多编写程序。
4 结语
数据结构是电子信息技术领域的一门基础课程,实践在数据结构的教学中起着重要的作用,可以帮助学生理解抽象的概念,增加趣味性,甚至可以用来解决日常生活中遇到的常见问题,同时练习和巩固了常用的编程语言。由于数据结构被应用到神经网络和数据库等多个领域,学好数据结构有利于后续其他专业知识的学习。因此,数据结构在电信专业的本科实践教学中具有举足轻重的研究意义。
[1]教育部高等学校电子信息科学与工程类专业教学指导分委员会.高等学校电子信息科学与工程类本科指导性专业规范(试行) [S].北京:高等教育出版社,2010:1-66.
[2]汪沁.基于“数据结构”实验的探讨和研究[J].中国教育信息化,2007(04):17-19.
[3]徐大华0程序设计语言教学方法探讨[J].高等理科教育,2007(01):36-38.
[4]袁晓峰.“算法与数据结构”实验教学的改革与实践[J].中国电力教育,2011(29):136-137.
武汉科技大学2014年度青年科技骨干培育计划项目,项目编号:2014xz011
邱奕敏(1981-),女,湖北武汉人,博士,研究方向为知识工程,图像处理。