《新课程研究》
一 引言
数据结构是研究计算机科学和工程的基础,数据结构课程是计算机科学与技术及与计算机相关的专业的核心课程之一,是一门必修专业基础课程。
通过本课程的学习,在知识方面,使得学生从数据逻辑结构、存储结构和基本运算算法设计三个层面掌握基本的数据组织和数据处理方法,能够从问题出发设计面向数据结构的求解算法,并能够对算法进行时间复杂度与空间复杂度分析。在能力方面,培养学生的算法设计能力、计算机思维能力以及形式化思维方法。通过上机实验,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法设计及其实现等方面加深理解,同时在程序设计的方法、技能及风格等方面受到比较系统的训练。
数据结构课程在整个计算机专业课程体系中位置十分关键,前置课程包括计算机导论、高级语言程序设计(C 语言)、离散数学等,后续课程包括面向对象程序设计,操作系统,数据库管理系统等,本课程起到承上启下作用,其重要地位不言而喻。因此,结合本校办学特色与专业培养方向,我们对数据结构课程教学做出了一些探索与改革。
二 教学现状与问题
(一) 前置课程难度大,基础差
数据结构的描述和算法的实现,都要立足于某一门程序设计语言[1],常用包括C,C++,JAVA 等语言。应用范围广泛,它既有高级语言的特点,又具有汇编语言的特点;它可以作为系统设计语言,编写工作系统应用程序,因此本学院数据结构讲授主要采用C 语言。学生经过大一学习之后,由于接受能力、学生差异等,普遍对于指针、结构体、递归等概念理解不透彻,编程能力不强,导致后续数据结构课程中算法难以理解与实现。
(二) 教学内容难度大、复杂
课程内容抽象,学生接受比较困难。例如课程中线性表、树、图等结构,由于生活与学习中不常见或者未接触过,因此,对于学生的抽象概念理解能力、算法实现能力体提出了较高的要求。
(三) 教学内容与实际脱节,理论与实践结合度不够
数据结构源自于实际问题与实践,又应用于实际。学生经过数据结构课程相关概念学习后,往往难以应用于实践中,遇到实际问题时,不知道运用那种数据结构、算法来解决问题。例如顺序表与链表,在没有充分理解两者的概念、掌握对应物理与逻辑结构以及优缺点,则难以在实际应用中正确选取。
(四) 学生缺乏学习兴趣,对课程重要性认识不足
课程难度大,学生基础差,教学内容抽象,学生难以对本门课程产生强烈的学习兴趣,甚至由于本课程期末不及格率高居不下,少部分底子较差学生对数据结构课程产生畏难心理,使得本来就不怎么多的兴趣降到最低点,会越学越难,越难越不想学,进入了恶性循环。
三 教学改革研究与实践
针对教学中存在的问题与实际情况分析,为了提高本课程的教学效果,可以从以下几方面来进行教学改革和探索。
(一) 提高课程重要性认识,梳理教学内容
学院近几年进行了人才培养方案修订,通过对珠三角用人单位、知名企业调研,得出结论,一致认同数据结构课程的重要地位以及应用,对于学生毕业后的发展,有着重要的影响。根据调研反馈意见,结合本校办学特色,对本课程内容进行梳理、调整。通过梳理课程前置以及后续课程,精简内容并降低难度,整理教学内容结构与体系。
另一方面,增加实验教学节课时数,培养方案规定数据结构课程课时数为64,按16 个教学周计算,每周4 个课时,其中40 课时用作知识点讲解,另外16 课时用作学生上机实践,同时引入《专业技能训练——数据结构应用》课程,安排在学期17 或者18 周,共计32 课时,集中进行案例项目教学。
(二) C 语言课程补强
如前文所说,C 语言作为数据结构课程的前置课程,学生对其的掌握程度直接影响着数据结构课程的教学效果。因此,在数据结构课程正式开始讲授之前,可利用2-4课时进行重要知识点补强,尤其是指针的理解与运用[6]。
(三) 模块化教学
根据课程的教学目标,把课程的教学内容进行知识单元的结构划分,把课程的所有内容划分为几个层次[2]。本课程知识结构可分为三大块:线性结构、非线性结构、排序和查找。线性结构包括线性表、栈、队列、串、数组。其中,线性表是最基本、最简单的一种线性结构,是最基础的内容。非线性结构:树、图。排序和查找:以线性结构和非线性结构为基础,目的是为了方便查找。学生学习每一种数据结构时,可根据以下顺序进行:逻辑结构→基本运算定义→存储结构→基本运算实现(算法复杂度分析)→应用实例。这种模块化的理念可以有效的突出重点,提高可理解性,同时易于扩展,利于学生专业素质的提高和培养。
上一篇:《建筑材料》课程混合式教学实践研究
下一篇:没有了