APP下载

数据结构课程的教学改革实践探索

2021-07-22吴超云

佳木斯职业学院学报 2021年7期
关键词:数据结构校企合作课程思政

吴超云

摘  要:自1968年Niklaus教授开创数据结构课程的体系以来,数据结构课程一直是计算机类专业的核心课程。为提高学生的培养质量,许多学者从教学模式、教学方法、实验教学、校企合作、课程思政等多方面探讨了数据结构课程的教学改革,并取得了丰富的研究成果[1]。基于此,本文从教学团队组建、实验教学、教材编写三方面探讨了数据结构课程的教学改革实践,以期提高学生的学习热情和实践能力。

关键词:数据结构;实验教学;校企合作;课程思政

中图分类号:TP301 文献标识码:A 文章编号:2095-9052(2021)07-0-02

2004年安庆师范大学(以下简称本校)信息与计算科学专业正式招生,之后数据结构课程一直是信息与计算科学专业的基础课程和核心课程。近几年的数据结构课程教学中,在教学团队组建、课程实验教学改革、教材编写等方面进行了多维度的教学探索与实践,积累了丰富的经验。

一、教学团队

本校数据结构课程是安徽省精品资源共享课程和校级精品课程,拥有部分课程视频资源,并且面向全社会开放。2018年获批校级数据结构课程教学團队,团队实力强大,成员6人,且均有博士学位,年龄结构和职称结构也合理,教授2人,副教授3人。教学团队成员已荣获省级教学成果二等奖和三等奖各一项。2015年获得省级振兴计划重大课题专项,2019年获批教育部产学合作协同育人项目,另外获批多项数据结构课程省级教研项目和校级教研项目,以及数据结构课程智慧课堂项目和数据结构课程思政示范课程项目等,数据结构课程教学团队发挥着重要作用。另外,在数据结构教学过程中团队教师共同备课,共同磨课,分析教学重点和难点,极大地提高了教师的教学质量,学生对各位教师的评价有较大提升。

二、课程实验教学改革

数据结构课程研究的主要内容是数据的组织形式和各种运算与操作的实现。数据组织形式有集合类型、线性类型、树类型和图类型,每种类型包含数据元素、数据关系和基本操作,这些数据类型与面向对象程序设计中类的概念相同。为让学生加深对类概念的理解,以及加强对面向对象设计的掌握,课程实验教学中采用C语言和面向对象程序设计语言两种语言来实现各种数据类型。在此数据定义为类中的变量,基本操作定义为类中的方法。例如:顺序表定义为一个类SeqList,每个数据元素定义为一个数据类型SeqDataType,在顺序表类中有两个受保护的变量,一是数组SeqData,用于存储所有的数据元素,二是整数变量Number,表示顺序表中数据元素的个数。顺序表的初始化和赋值操作可用构造方法实现,顺序表的判空操作、判满操作、插入操作、查找操作和删除操作等用公有方法实现。具体定义如下:

class SeqList{

protected:

SeqDataType * Data;

int Number;

public:

SeqList( SeqDataType, int ); //构造方法

~SeqList( ); //析构方法

boolean IsEmpty(  ); //判空操作

boolean IsFull(  ); //判满操作

boolean Insert( SeqDataType, int ); //插入操作,将元素插入某个位置

之后

boolean Search( SeqDataType ); //查找元素在表中的位置

boolean Delete( int ); //删除操作,删除顺序表中某个元素

void  Print(  ); //输出操作

…………

}

再如采用邻接矩阵表示的图类型,可定义类GraphM,每个顶点定义为一个数据类型VerType,在图类中有两个私有变量,第一个变量是一维数组,用于存储图中的顶点,第二个变量是二维数组Edge,用于存储邻接矩阵。图的初始化和赋值操作可用构造方法实现,顶点在图中的位置、顶点的第一个邻接点、插入顶点或边、删除顶点或边、取边上的权值等用公有方法实现。具体定义如下:

class GraphM{

private:

VerType * vertex;

Edge  * *  E;

public:

GraphM( VerType,  Edge ); //构造方法

~GraphM( ); //析构方法

int VertexPos( VerType ); //顶点在图中的位置

int FirstNeighbor( int ); //顶点的第一个邻接点

int InsertVertex( VerType); //插入顶点操作

int InsertEdge( int, int, Edge ); //插入边操作

int DeleteVertex( VerType ); //删除顶点与它相关联的边操作

int DeleteEdge( int, int ); //删除边操作

VerType getVertex( int ); //获取顶点的值

E  getWeight( int, int); //获取边的权值

void  Print(  ); //输出操作

…………

}

三、教材编写

信息与计算科学专业招生后的几年,主要采用清华大学严蔚敏教授编写的《数据结构》教材,这本教材中的算法采用伪代码实现,不易理解,对学生的要求相对较高。当前的大众化教育,学生水平和能力有一定程度的下降[2],如果教材难度相对较大,就不适合本校信息与计算科学专业和计算机类专业的学生学习。为提供适合本校学生学习的优质教材,笔者参与了本校教师主编的《数据结构与算法C语言版》以及《数据结构与算法C语言版习题精编与实驗指导》两本教材的编写,并于2015年1月在中国科学技术大学出版社出版[2]。教材共有九章,囊括了数据结构中的所有重点内容,如绪论、线性表、栈、队列、树、图、查找和排序等。在教材中每章都引入经典案例,以提高学生学习数据结构课程的兴趣。例如,线性表在通信录系统设计和实现上的应用,栈在二进制转换、汉诺塔问题、括号匹配算法和表达式求值问题上的应用,串在密码学和括号匹配问题上的应用,树在文件目录和族谱方面的应用,哈夫曼树在判断学生成绩和编码中的应用,图在通信网络、交通网络和工程进度管理等方面的应用,查找和排序在百度搜索、搜狗搜索等搜索引擎方面的应用。相对严蔚敏教授的数据结构教材,本校教材中算法采用C语言实现,算法注释也较多,每章设有不少例题和习题,使得教材更容易读懂。另外删除了难度较高的内容,略微降低教材内容的难度,例如,外部排序、文件组织、伸展树、红黑树等内容,适合当前本校学生的学习水平。2017年数据结构课程申请了省级规划教材质量工程项目,与阜阳师范大学的教师一起对2015版《数据结构与算法C语言版》教材进行修订和改编,《数据结构与算法(C语言版)》第2版属于普通高等学校“十三五”省级规划教材,于2020年2月在中国科学技术大学出版社出版。

四、结语

数据结构课程是信息与计算科学专业及相关专业的重要课程,主要通过组建教学团队、实验教学、教材编写的改革与实践,增强了师生间的感情和互动,提高了教师的教学水平,增加了学生的学习兴趣和热情,提升了学生的实践能力,达到了提高人才培养质量的目的。

参考文献:

[1]姚丽莎,余云.项目驱动教学在数据结构课程教学中的应用研究[J].赤峰学院学报:自然科学版,2017,33(3):33-35.

[2]任平红,陈矗,刘清秀.面向对象的数据结构的教学方法研究[J].电脑知识与技术,2015,11(33):95-96.

(责任编辑:张咏梅)

猜你喜欢

数据结构校企合作课程思政
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
课程思政下的民办高职院校师生关系构建
发挥专业特色 实施“课程思政”
课程思政下的民办高职院校师生关系构建
刍议职业教育校企合作的有效性
就业视域下卓越工程师校企合作培养模式探析
民办高职院校软件技术专业深度校企合作模式探索
对实训教学体系改革进行的思考与探索
数据结构与算法课程设计教学模式的探讨