APP下载

浅谈高职“数据结构”课程的有效教学

2018-01-23承蓓

中国管理信息化 2018年1期
关键词:数据结构有效教学高职

承蓓

[摘 要] “数据结构”是五年制高职计算机专业学生必修的重要专业基础课,在教学过程中,有的学生由于前导课程C语言学习的不扎实,导致许多学生认为数据结构听起来像“天书”,数据结构学了没有用,文章就如何有效地进行数据结构的教学进行了探讨。

[关键词] 高职;数据结构;有效教学

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 01. 076

[中图分类号] G632 [文献标识码] A [文章编号] 1673 - 0194(2018)01- 0184- 03

0 前 言

“数据结构”是我校五年制高职计算机专业学生必修的重要专业基础课,目前基于各种语言的“数据结构”教材的版本很多,有C++版的、C语言版的、Java版本的等,由于我校高职学生在学习“数据结构”之前学习的前导语言课程是C语言,所以我校采用的教材是C语言版本。在教学过程中,从学生的学习效果以及和学生的沟通过程中,发现许多学生听不懂,认为学了也没用,更不用说感兴趣了。本文试着对如何来进行“数据结构”的有效教学进行探讨。

1 数据结构的重要性

数据结构是计算机专业学生必修的重要专业基础课,该课程主要研究数据的逻辑结构、存储结构和对数据的各种操作运算,而操作运算主要就是涉及算法的问题。

1.1 学好数据结构是参加各类计算机专业考试的必备条件

在许多不同层次、不同水平的考试中,数据结构是必考的。计算机软件考试的考纲、研究生博士生入学考试、甚至一些软件公司的面试题中都涉及到数据结构的内容。

1.2 学好数据结构为计算机专业的后续课程打下良好的基础

计算机网络、操作系统、数据库等课程中都会使用数据结构的相关知识。比如计算机网络中的路由器在源和目的之间要寻找出最短路径,在数据结构的图中有相应的算法,操作系统中的目录结构使用的是一种树形结构,CPU进程管理中用到了队列。

1.3 学好数据结构能提高编程能力

程序设计语言是工具,数据结构和算法是灵魂,学习数据结构不仅是学习队列、二叉树、排序等数据结构及相应的算法,更重要的是要学习一种思想:如何把现实问题转化为计算机语言的表示。这是一种非常重要的逻辑思维能力的锻炼,也是程序员入门的条件。总之,如果认真学好“数据结构”这门课,其实会潜移默化地影响学习者的逻辑思维。

2 “数据结构”教学过程中存在的问题

2.1 学生在学过程中面临的问题

2.1.1 数据结构抽象听不懂

数据结构由于比较抽象,尤其在一些算法的理解上,很多同学都觉得有困难,另外,由于学生在前序课程的学习过程中,基础没有打扎实,导致在后续过程中的学习也是困难重重。

2.1.2 数据结构学了没用

许多学生觉得听不懂,部分听得懂的学生学过数据结构后,也觉得用处不大, 还不如学习C、Java等语言来的值,觉得学习这门课就是在浪费时间,因此在学习过程中存在目标不明确、动力不足的现象。

2.2 教师在教过程中面临的问题

2.2.1 教学内容无法深入

由于学生前序课程的学习基础薄弱,加上课程本身的特点,比较抽象,难以理解,导致教学无法深入,除了讲解一些简单的数据结构的基本知识外,在相关的算法以及算法分析上只能简略讲解。

2.2.2 教学过程学生响应度不高

由于学习内容的枯燥,所以学生根本不感兴趣,很多同学也听不懂,在教学过程中,学生的学习是很被动的,响应度不高。

正因为在教学过程中,存在了以上的一些问题,导致这门课程的存在,似乎主要是为考试服务,学生在真正学习的过程中,并没有什么收获。因此,笔者在实践中不断思考,发现可以通过一些途径来提高教学的有效性。

3 有效教学的含义

所谓“有效”,主要是指通过教师在一段时间的教学后,学生所获得的具体进步或发展。教学有没有效益,并不是指教师有没有教完内容或教得认不认真,而是指学生有没有学到什么或学生学得好不好。如果学生不想学或者学了没有收获,即使教师教得再辛苦也是无效教学。同样如果学生学得很辛苦,也没有得到应有的发展,也是无效或低效教学。因此,学生有无进步或发展是衡量有效教学的唯一指标。

笔者认为衡量教学是否有效,不仅是看学生学习的结果,也看学习的过程,比如学习态度上是否有进步,注意力是否比以前集中,学习的参与度是否是提高了,每堂课的学习目的是否都达到了。

4 实现数据结构有效教学的途径

4.1 实现C语言与数据结构的有效衔接,夯实学习基础

4.1.1 教学安排的有效衔接

如果在上课安排上,数据结构的教学和C语言程序设计的教学是同一个老师,对老师来讲,相应内容的教学能够由浅入深,而且也能比较了解学生对前导课程的学习情况,在讲解时能把握好教学的侧重点,另外对学生来讲,能了解教师的教学风格,在学习数据结构上也能较好地适应。

4.1.2 课程内容的有效衔接

C语言程序设计的课程教学的安排时间虽然在“数据结构”的前面,但是在教学过程中,由于课时的限制,内容上往往讲解不到指针、结构体等内容,导致学习数据结构的先导内容没有学到,是脱节的。另外,许多学生在开始学习二维数组时就觉得有点吃力,所以为了能给学习数据结构打下扎实的基础,可以采取如下措施:①增加C语言学习课时,保证学习内容不缺失;②加强C语言实践操作以及测试巩固,夯实学习基础,保证前导课程的学习效果;③由于数據结构的学习和C语言的学习不在一学期安排,学生往往对已学内容有所遗忘,因此在学习数据结构这门课程时,可以安排先将C语言中的数组、函数、指针、结构体等频繁用到的内容预先复习巩固一下,然后再开始数据结构新课内容的学习。endprint

在学校C语言程序设计是该门课的先修课程。这两门课程的一些知识点是紧密相关联的,在教学内容上有延续衔接的关系。尤其是C语言程序设计中的函数、结构体、指针,在数据结构中各种数据结构的定义、算法的实现过程中是经常需要用到的。

比如数据结构中线性表的单链表的结点定义是这样的:

typedef struct node{

ElemType data;

struct node*next;

}LNode;

在对于这个结点定义的理解中,涉及C语言中结构体的定义,typedef 的使用,指针的定义,学生如果对C语言中这些知识没有掌握,对于该结点的定义也无法理解。

数据结构中的很多算法的实现最终是用C语言的函数来实现的,为了验证和理解这些算法,常常通过用C语言编写程序后实现这些算法的途径,在实践过程中加深对数据结构和相应算法的理解。当然数据结构并不就是编写程序,更重要的是要学习一种思想:如何把现实问题通过抽象转化为计算机语言的表示。

4.2 厘清教学思路,明确学习目标

学习数据结构,主要是在理解已有数据结构的基础上,知道了数据如何组织,如何存储,以及在不同存储结构下进行运算或操作,为以后如何才能把现实世界中的问题,抽象成计算机能够表示的问题,然后利用计算机求解打下基础。为以后如何更好地组织数据,更好地设计出高效率的算法打下基础。

数据结构主要研究的内容有三方面:数据的逻辑结构、数据的存储结构以及对数据的操作运算(算法)。这不仅是数据结构研究的主要内容,也是讲解各种数据结构时的线索。

明确了以上的学习思路后,学生在学习过程中,就能知道每种数据结构,分别都是从这三方面来学习的。在学习过程中就能做到心中有数,思路清晰。

4.3 激发学生的学习兴趣,加强学习动力

数据结构的教学内容还是有点枯燥的,又是比较费脑筋的,在教学实践過程中,我试着在课堂导入过程中,尽量选取一些学生感兴趣的东西入手,在教学过程中,也结合多媒体手段进行教学,发现学生比原来纯粹利用黑板粉笔进行的传统教学注意力更集中些。

例如:在学习线性表时,我借助课件采用类比的手段,把一组同学比作线性表,通过一组同学在讲台上表演,如何在一组中某个位置增加一位同学,如何从一组中让一位同学出列,整个过程由同学自己思考,自己表演,自己总结。让学生在体验中,理解顺序表中元素的增加与删除。

在学习遍历二叉树时,又设计一张景点地图,这张地图的实质就是一棵二叉树,要求学生自己设计一定的路线,每个景点只玩一次,并且每个景点必须玩到。学生在这种情景中学习,兴趣也十分浓厚。

4.4 加强理论与实践的结合,提高学习效果

数据结构涉及许多的理论知识,这部分内容,我采用的是设计相关问题和习题,让学生自己去书上寻找答案,根据学生答题反馈来诊断学生的学习情况,然后教师进行总结和讲解。

另外,数据结构是提高编程能力的必由之路,所以在学习过程中,能将理论与实践相互结合,不但能加深对理论的学习还能提高编程实践能力。以前,刚刚学习C语言时,学生只能编写几行的代码,通过学习数据结构,在处理一些稍微复杂的问题时,可以逐渐编写几十行甚至上百行的代码,在学生学习过程中,也是一种激励。

例如,在讲解线性表的顺序结构时,为了加深学生对顺序结构的理解。我设置了如下实验。

【实验题目】顺序表的就地逆置

【实验目的】

知识:理解线性表的特点和顺序结构的特点

掌握线性表顺序结构的定义方法

技能:学会编写程序实现顺序表逆置

情感:通过教师引导,学会分析问题;通过小组学习,培养学生学会合作探究。

【实验内容】

顺序表的就地逆置就是利用原表的存储空间将线性表(a1,a2,…,an)逆置为(an,an-1,…,a1),并且此处要求只使用一个元素的辅助空间。

【实验分析】

1.空表或长度为1的表,不做任何处理。

2.表长大于或等于2时,做如下处理。设两个指针i和j,分别指向顺序表的第1个元素和尾元素。若i

【程序框架】

1.头文件包含

2.顺序表的定义

3.各种函数的声明

4.创建线性表函数

5.线性表逆置函数

6.线性表输出函数

7.主函数

【代码编写】

学生完成,教师辅导

通过实践,学生对顺序结构是如何定义的,就非常清楚了。从而通过实践来指导理论知识,让学生在动手过程中进行了学习,比讲解纯粹的理论知识效果好。

4.5 积极利用学习工具,引导学生拓宽学习途径

随着技术的进步,手机已经成为生活中不可缺少的工具,移动学习也称为一种流行的学习方式,这种学习方式也可以应用到数据结构教学上,让学生利用手机去补充学习。在课堂上有些概念学生还不是很理解,课后可以通过与老师交流进行答疑;课堂上也可以适当布置一些拓展学习的内容,让学生根据自己的需要,通过手机去进一步学习。

5 结 语

以上是笔者个人一些粗浅的想法,课堂教学的有效性是教师不断追求的目标,在以后的教学实践中,仍将不断探索思考。

主要参考文献

[1]陈雁.数据结构[M].北京:高等教育出版社,2010.

[2]邱劲,王平,徐展.《数据结构》课程教学改革与实践探索[J].西南师范大学学报:自然科学版,2013,38(1):139-142.

[3]宋秋前.有效教学的涵义和特征[J].教育发展研究,2007(1a):39-42.

[4]岳欣云,董宏建.有效教学的价值取向及其启示[J].首都师范大学学报:社会科学版,2014(2):152-156.

[5]蔡宝来,杨伊.基于移动学习的课堂有效教学策略研究[J].教育科学研究,2015(9):42-47.

猜你喜欢

数据结构有效教学高职
高职应用文写作教学改革与创新
浅谈高中英语有效教学策略
小学数学课堂有效教学策略
新理念下小学英语课堂教学有效性分析
加快中职会计教学改革提高教学有效性研究
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
高职人才培养模式创新探讨
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨