应用型本科院校数据结构教学改革实践

    张新颜 卢向华

    摘要:数据结构是计算机及其相关专业的核心专业课,是整个专业知识体系的理论基石。数据结构课程既讲授软件设计中常用的逻辑结构、存储结构及相应算法等知识,又培养学生高效解决复杂问题的程序设计能力。在学校建设应用型本科“示范校”的背景下,针对数据结构课程的教学情况与问题,为适应社会对应用型人才需求,积极进行了教学方法与教学手段的改革,取得了良好的教学效果。

    关键词:数据结构;教学方法;教学改革;网络教学平台;实践教学

    中图分类号:G642? ? ? ? 文献标识码:A

    文章编号:1009-3044(2021)17-0176-03

    开放科学(资源服务)标识码(OSID):

    Practice of Data Structure Teaching Reform in Application Oriented Universities

    ZHANG Xin-yan, LU Xiang-hua

    (Luoyang Institute of Science and Technology, Luoyang 471023,China)

    Abstract: Data structure is the core professional course of computer and related majors, and the theoretical foundation of the whole professional knowledge system. The course of data structure should not only teach the common knowledge of logic structure, storage structure and corresponding algorithm in software design, but also cultivate students' programming ability to solve complex problems efficiently. Under the background of building application-oriented undergraduate "model school", aiming at the teaching situation and problems of data structure course, in order to meet the social demand for applied talents, the reform of teaching methods and teaching means has been carried out actively, and good teaching effect has been achieved.

    Key words: data structure; teaching method; teaching reform; network teaching platform; practice teaching

    1 引言

    數据结构是计算机理论体系的重要基石,是计算机及相关专业的核心课程[1]。本科院校数据结构课程通常开设在第二学年,前序课程是C语言程序设计或Java程序设计。数据结构课程对第一学年学习的软件技术进行总结与提高,为后续专业课程提供基础,它承上启下、贯通始终,是计算机科学与技术人才素质框架中的脊梁骨,对学生能力培养至关重要[1]。

    洛阳理工学院自2016年被确立为河南省示范性应用技术本科院校以来,积极探索创新人才培养模式,推动教学改革[2]。数据结构作为计算机学院的软件工程专业、计算机科学与技术专业、物联网专业、大数据专业的核心必修课程,积极开展教学改革探索,提高教学质量,为满足社会对具有专业能力、创新能力的软件人才需求做出贡献。

    2 数据结构教学中面临的问题

    2.1 课程特点

    2.1.1 课程内容多课时较少

    数据结构课程不仅讲授数据信息在计算机中的组织和表示方法,同时也训练学生高效地解决复杂问题程序设计的能力。课程系统地介绍了软件设计中常用的数据结构、存储结构及相应的算法,系统地介绍了常用的查找和排序技术,并对各种结构和技术进行分析比较,内容非常丰富[1]。随着学校为适应应用型本科大学的要求进行的计算机类专业的培养方案调整,数据结构课程的课时由原来的88学时压缩到72学时,包含16个实验学时。数据结构课程内容主要包括线性表、栈和队列、串、数组和广义表、树和二叉树、图、查找和排序,课程内容丰富。因此,要在有限的课时内将数据结构中的知识点讲授完并使学生理解掌握,同时具备相应的实践能力,需要进行有效的教学改革。

    2.1.2 课程内容抽象难懂

    数据结构是在学生有一定程序设计基础上讲授的,是对实际问题中的数据对象进行分析,将数据逻辑关系抽象化对应得到常见的数据结构。数据结构课程研究这些数据结构如何在计算机中存储表示,不仅要存储数据对象中数据元素自身的信息,还要将数据元素之间的逻辑关系映像到在计算机存储器中。在此基础之上研究不同数据结构关系在不同存储结构下的常见算法。数据的逻辑关系是抽象化的,计算机的存储结构也是看不见摸不到,算法步骤是用类C语言描述的,整体内容抽象,学生常因在学习中遇到困难而渐渐失去兴趣。

    2.1.3 课程实践性强

    计算机及其相关专业的课程通常都具有很强的实践性,数据结构也不例外。这门课程是对实际问题中的数据关系概括总结为几种类型的数据结构,每种数据结构有相应的存储方案和常见算法设计。要求学生能进行抽象化思维,能够根据实际问题对照所学知识合理地选择数据结构并设计算法。这不仅要求学生能够理解抽象化的数据关系模型,还要能将抽象化数据结构灵活运用转化为具体的数据类型并将算法实现为能运行的程序。学生必须经过大量的实践,在实践中体会构造性思维,提高软件设计水平[1]。

    2.2 学生情況

    2.2.1 程序设计基础一般

    数据结构的前序课程是C语言程序设计,学生对于C语言中基本数据类型、顺序、选择、循环结构、数组等知识点掌握相对较好,但是对数据结构中最常用到的函数、指针、结构体等较难的知识普遍掌握一般,多数学生能够了解或理解这些知识点,但不能熟练运用这些知识进行程序设计。这些知识在数据结构课程各章节内容几乎都有涉及,对于理解和掌握课程中各类数据结构及其算法至关重要。由于多数学生对这些必备知识掌握情况不好,在学习中无法深刻理解算法中的存储结构及算法思路,使得小问题渐渐变成大问题,久而久之,学生便失去兴趣。

    2.2.2 学生需求不同

    作为应用型本科院校,我校学生毕业后主要有两个方向,一个是从事跟专业相关的工作,一个是继续攻读研究生。随着近年来考研人数不断攀升,学生对课程的需求也变得多元化。因此,在课程教学中既要兼顾工作中数据结构课程知识的需要,也要注重课程的理论知识提升,满足学生考研的知识需求。

    3 课程教学改革措施

    针对数据结构课程的特点及学生情况,以耿国华主编的《数据结构—用C语言描述(第2版)》为教材,从教学方法、教学手段等方面提出了多种课程教学改革措施。

    3.1 明确学习目标 激发学生学习动力

    很多学生在学习一门课程时不知道课程知识的用处,学习时显得很盲目,也没有积极性。在课程第一节课,首先明确3个问题:什么数据结构?数据结构研究什么?学习数据结构有什么用?尤其是第三个问题,数据结构在软件开发中是理论基础,根据麦可思对近5年计算机专业毕业生的调查,数据结构是从事软件行业最重要的核心课程之一。另外,数据结构是计算机类研究生考试必考科目之一,是进一步学习研究的必备知识。通过帮助学生对未来发展进行规划,明确目标,激发学生学习数据结构的动力。

    3.2 做好课程衔接 调整课程内容

    数据结构课程内容从第2章线性表开始一直到最后一章排序,自始至终都涉及C语言程序设计课程中的数组、函数、指针等知识点,然而学生对这些对数据结构的必备知识准备不足。为此,在课程开课前的假期,要求学生预先复习数组、函数、指针、结构体等重点难点内容,并在开课前一周组织学生进行相关知识测验,一方面迫使学生为了通过测验进行复习,一方面通过测验了解学生对这些知识的掌握情况。课程初始阶段,有意识地将相关知识穿插到课程内容中讲解,使学生在学习之初弄懂抽象的知识内容,帮助学生树立学好数据结构的信心。

    数据结构课程学时少,内容多。为了更好地突出课程核心知识,对课程内容做了优化调整,把线性表、栈和队列、二叉树、图、查找和排序作为重点讲授,串一章内容相对简单,由学生自学,其他章节适当压缩课时,这样保证课程中的重点难点知识有充分的课时讲授。同时,在实际授课中,根据学生的掌握情况及时调整分配各知识点的课时,保证教学效果。

    3.3 教学方法改革

    数据结构课程各章节内容各有特点,单一的教学方法不利于知识的传授,针对数据结构课程不同章节知识的特点选择不同教学方法,激发学生学习兴趣,提高教学效果。

    3.3.1 案例教学法

    数据结构课程知识抽象枯燥,在讲授知识点时以具体案例为切入点,将抽象的知识用案例的形式表现出来,使学生对课程内容有感性的、具体的认识。采用案例教学法,使课程内容更贴近实际生活,学生没有畏难情绪。案例通常具有趣味性、启发性,能激发学生的兴趣[3],引导学生分析、探究、讨论,达到良好的教学效果。

    案例教学法在数据结构课程讲授中非常普遍地应用,例如在讲授第一章绪论中的算法分析,以数组逆置的两种算法为例,一种算法利用一个辅助数组实现逆置,另一种算法直接把原数组对称位置元素进行交换实现逆置,通过这个案例两种算法分析进行对比使学生迅速理解了算法的高效率和低存储量。又如在介绍3种常见逻辑结构:线性结构、树形结构、图状结构时,分别用学生成绩表、学校组织层次结构图和交通图做例子,学生理解了三种结构的一对一、一对多和多对多的特点。在对队列讲解时,以医院排队挂号为例,在链式结构进存储队列基础上,讲解利用队列的入队、出队算法实现病人挂号、医生叫号的功能实现。通过案例的讲解,学生轻松地掌握了相关知识点。

    总之,案例教学法是老师和学生喜闻乐见的教学形式,它贴近生活易于被学生接受,教师在讲授中能将复杂问题简单化、枯燥知识趣味化,通过案例教学法的运用,消除了学生的畏难情绪,帮助学生更好地理解和掌握课程知识点并将其灵活运用到实际问题中。

    3.3.2 启发式教学法

    启发式教学法通过在教学中适当设置问题,引导学生主动思考,从而提高学生的学习兴趣和主动性[3]。例如,二叉树的顺序存储是利用完全二叉树的性质用数组下标对应树中结点编号映像结点间的关系,对此提出两个问题:能否将一个顺序表视为一个完全二叉树呢?基于顺序表的查找和排序能否在树表中进行呢?启发学生反向思维得出结论。又如在讲完哈夫曼树及其应用一节内容后,让学生重新思考在C程序中曾经设计过的程序:给定一个百分制成绩判定属于哪个等级,若一个班学生的五种等级的成绩分布为:优、良、中、及格、不及格的人数比例分别是10%、30%、40%、15%、5%。提出问题:该程序能否进行优化?学生经过思考纷纷将成绩分布的比例作为权值构建成绩判定的哈夫曼树。通过启发式的教学引导学生将所学知识点现学现用,大大提高了学生的学习热情,培养了学生分析问题、解决问题的能力。

    3.4 利用网络平台

    随着互联网的发展和手机的普及,学校开通了学习通网络教学平台,课程积极建设相关资源,为学生提供了多元化、个性化的学习途径。基于学习通平台,课程初步完成了课件、课程视频、作业库等资源。利用学习通平台,学生可以在课下根据自身情况对课程内容进行预习和复习。由于课程内容多课时紧,部分基础较差的同学无法跟随课堂授课节奏,学习通上的教学视频可以反复观看,帮助这些学生及时消化课程内容。另外,在授课中适时利用学习通平台的手机端点名签到,开展课程内容讨论、提问抢答、随堂测验等活动,提高了课堂效率,增加了课堂互动环节,大大提高了学生的学习热情,教学效果良好。

    此外,学习通平台及时记录学生参与各种教学活动的情况,例如学生观看视频时长、出勤率、作业完成情况、随堂测验成绩、回答问题得分情况等。学生通过平台可以看到自己的各项教学活动中的表现和成绩,及时发现自身问题进行修正。教师通过平台可以查看班级各项统计数据,快速掌握学生学情,及时调整课程进度或内容,也可以查看学生个人具体学情,有针对性地进行辅导。

    3.5 加强实践教学

    作为河南省示范性应用技术本科院校,更注重学生实践能力的培养以满足社会对专业人才的需求[4]。数据结构是实践性很强的课程,技能培养的重要性不亚于知识的传授,学生不仅要理解授课内容,还应具有运用知识解决复杂问题的能力,形成良好的算法设计思想、方法技术与风格。因此,学习数据结构,仅从书本上学习是不够的,必须经过大量的实践,在实践中体会构造性思维方法,提升分析问题、解决问题的能力。

    数据结构课程设置了16个学时的实验课,实验内容根据应用型本科计算机专业的培养方案进行了优化调整。课程设置了6个验证性实验,涉及线性表、栈和队列、二叉树、图、查找的核心知识。课程设置1个设计性综合实验:宿舍管理系统,这个实验提供了4个学时,让学生综合运用所学知识来解决实际问题。数据结构课程设计实践环节对课程设计题目进行了调整,增加了仓库管理系统、运动会分数统计、飞机订票系统、校园导游问题、活期储蓄账目管理、教学计划编制问题、家谱管理系统等与生活更贴近的题目,让学生在解决实际问题的过程中强化程序抽象能力和数据抽象能力。

    4 总结

    在学校建设示范性应用技术本科院校、培养应用型、创新型人才的背景下,数据结构作为计算机类的专业核心课程,基于课程特点、学生情况,针对课程教学中的问题,积极地分析和研究,采用多种教学方法,实施了多种教学改革措施,加强了实践教学,提高了学生的学习兴趣、专业水平和创新能力,取得了良好的教学效果。

    参考文献:

    [1] 耿国华.数据结构——用C语言描述(第2版)[M].北京:高等教育出版社,2015.

    [2] 劉翠焕,张丽娟,张波,等.新工科背景下应用型本科院校数据结构教学改革研究[J].科技风,2020(29):38-39.

    [3] 刘娜,路莹,姚春龙,等.“数据结构”课程教学方法改革与探索[J].中国电力教育,2014(2):112-114.

    [4] 余莉.应用型本科院校“数据结构”课程建设的探索[J].教育教学论坛,2020(38):250-251.

    【通联编辑:王力】