引入计算思维的《数据结构》教学改革研究

2015-02-23 06:06高贤强化希耀陈立平
现代计算机 2015年7期
关键词:数据结构算法思维

高贤强,化希耀,陈立平

(塔里木大学信息工程学院,阿拉尔 843300)

引入计算思维的《数据结构》教学改革研究

高贤强,化希耀,陈立平

(塔里木大学信息工程学院,阿拉尔 843300)

以计算思维的定义、特征和《数据结构》课程在教学过程中存在的主要问题为切入点,把计算思维应用于《数据结构》教学,从计算思维有助于重组程序的实现、《数据结构》中的算法思维隶属于计算思维、计算思维有助于《数据结构》课程灵活性的实现以及计算思维能够培养学生的学习兴趣四个方面进行分析,对引入计算思维的《数据结构》教学改革予以研究。

计算思维;数据结构;教学改革

0 引言

《数据结构》课程是计算机程序设计类课程的基础,是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础,也是计算机专业的核心课程[1]。该课程不仅是计算机软件编程课程中的重要分支,对于我国培养高水平的程序设计和开发人员也是不可或缺的。计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。近年来,计算思维受到越来越多的重视,如何在《数据结构》课程教学中引入计算思维是一个值得思考的问题。

1 计算思维的内涵

1.1 计算思维的定义

有关计算思维的定义是随着计算方式的变化而不断变化的,计算思维并不是现代新生事物,从古至今,计算思维一直存在,从算盘到计算器,再到现代广为普及的计算机,计算思维的内容在变化的同时,其内涵也在不断丰富。目前来看,被大家广为认可的计算思维定义是:运用计算机科学的基础概念,对系统进行设计以及对人类行为进行科学的揭示等一系列隶属于思维世界的活动[3]。

1.2 计算思维的特征

计算思维可以分为几种不同的思维方式,主要有抽象、递归与保护、纠错与冗余、恢复。通过启发推理的方式,对情况不确定的事物进行规划、设计与思考,其具有根本技能性、概念性、工程思维的外延性、人性化、范围全面性五个方面的主要特征[4]。

2 《数据结构》课程存在的主要问题

2.1 课程内容较为抽象复杂

《数据结构》中的主要学习内容包括线性结构、树形结构、图状结构,其教材内容主要为描述性知识,对抽象事物进行概念性的描述必然使得其缺乏生动,不容易被学生学习与掌握。

2.2 先导课程不够扎实

《数据结构》课程的学习必须有一定的先导课程做基础,例如《算法分析与设计》课程以及《C语言程序设计》课程,学生先导课程的知识掌握程度直接影响到《数据结构》的学习能力,在高校实际的教学环节中,学校对于《C语言程序设计》课程的重视程度并不高,在两者课程的设置上,一般都是间隔一个学期到两个学期,由于《C语言程序设计》课程内容本身就属于抽象理论内容,需要的实践性较强,学生在学习《数据结构》时,其《C语言程序设计》的基础知识已经淡忘,对于其中相关的变量、控制语句以及数据类型等知识基本已经消失殆尽,所以在进行算法编程时会遇到很多的困难,难以将《数据结构》中的基本算法、基本存储结构,转化为可执行的C源代码,这就使得《数据结构》教学的课堂效果很不理想。

2.3 课程实践环节薄弱

《数据结构》课程的教学要求之一就是学生能够具有复杂程序的设计技能,实践对于《数据结构》课程环节的重要性远远高于理论知识的传授。对于涉及到的具体问题,此课程的学习标准是要求学生能够使用相应的算法以及数据结构独立解决一定程度的问题。这就要求课程中的实践课时必须有所保障,完成上机实验就是必须的过程。目前众多高校开设的《数据结构》课程的上机时间较少,正常来讲,学生需要每周6个课时的上机时间,但是在实际中,大多学生的上机时间只有不到2个课时,课时上的缺失使得学生的实践环节较为薄弱,学生的实践能力没有得到很好的锻炼,《数据结构》课程也就大大失去了其真实的作用,成为了只能纸上谈兵的一门课程[5]。

3 计算思维应用于《数据结构》教学的分析

3.1 计算思维有助于重组程序的实现

在《数据结构》课程中,对于同一个问题通常需要采用不同的方法来完成相应的算法,在对这些算法进行思维选择的时候,需要较好的计算思维能力。举例来说,对问题进行分解是有多种可能结果的,分解的方法和结果因为计算思维的不同其表现也会有所不同,分解的过程希望每一个被分解的模块都能够进行重新组合,而如何能够使得被分解的模块得到最大可能的重组,计算思维是决定性的因素,在对算法进行设计或者优化的过程中,需要利用到递归、并发、抽象与分解以及启发式推理等计算思维方法[6]。

3.2 《数据结构》中的算法思维隶属于计算思维

在《数据结构》课程中,当出现一个未知问题时,首先需要能够从问题中抽象出数据对象,进而分析数据对象中各个元素之间的相互关系,例如逻辑关系等,随后确定这种相互关系用怎样的存储结构才能够得以实现。整个问题的求解过程,可以看成是建立模型的过程,抽象建模。计算思维的计算能力相较于《数据结构》课程中的算法来说,可能更加的宽泛,因此《数据结构》中计算思维的运用是计算思维中的一小部分[7]。

3.3 计算思维有助于《数据结构》课堂灵活性的实现

计算思维具有概念化的特点,《数据结构》中程序化程度较大,程序化的教学其灵活性必然较低,在使用计算机来进行解决具体问题时,将算法思想编写成能够解决问题的程序是可行的方法,在《数据结构》中运用概念化的计算思维,有助于《数据结构》灵活性的提高。

3.4 计算思维能够培养学生的学习兴趣

对《数据结构》的学习,最主要的是学生的学习兴趣,在教学过程中,要想学生能够对知识理解得更深刻,必须要求的主观条件是学生对《数据结构》具有较强的学习兴趣,但是作为一门理论性较强的课程,要想让学生对其产生兴趣不是一件容易的事,如何激发学生的求知欲,调动学生的积极性是需要探讨的问题,计算思维能够将课程内容简约化,课堂内容的简约化将直接提升学生在进行学习时的成就感,从而逐渐培养学生的学习兴趣。

4 结合计算思维的《数据结构》教学改革实例

4.1 递归方法的在《数据结构》中的应用

递归方法指的是将代码译成数据,再将数据译成代码的过程。将其放在《数据结构》中指的是对一个函数在定义时出现的直接调用或者间接调用的过程。二叉树的遍历是二叉树中最重要的运算之一,也是进行其他树状结构运算的基础。二叉树遍历是指沿着某条搜索线路,依次对每个结点做一次访问,访问的结点所做的操作主要依赖于具体的应用。由于二叉树定义的本身就包含着递归概念,因此将递归方法运用在《数据结构》中是理所当然的事情,递归算法对二叉树的遍历有前序遍历、中序遍历、后序遍历。以中序遍历为例,首先可以按照计算思维中的分解方法来将整个遍历的问题划分为若干个简单的子问题,将中序遍历分解为中序访问左子树、右子树、根结点三个子问题,然后对左子树、右子树再进行分解,一直这样分解下去,直到不能再分解为止,也就是子树为空为止。在分解的过程中,算法总是根据同样的理论进行分解,不断按照同样的逻辑顺序进行访问,导致这些较小的问题不断被反复提及,从而形成了使用递归方法求解。

4.2 抽象与分解方法在《数据结构》中的应用

在《数据结构》中含有很多种排序算法,如插入排序、冒泡排序、选择排序、快速排序等算法,这些算法在传统的教学中属于较为重要的难点知识,学生对其掌握能力普遍较差,主要是因为学生对各种排序算法没有形成良好的计算意识,通过计算思维,可以将抽象与分解的方法运用到算法的学习中,即将一个复杂的问题分解成若干个简单的子问题来处理与解决。

4.3 计算思维在《数据结构》教学模式及内容中的应用

《数据结构》课程的教学内容繁多,在以往的课堂中,教师以讲授理论知识为主,学生在课堂中独立思考的机会较少,由于学科知识内容缺乏生动且较为枯燥,学生的自主学习热情普遍不高,计算思维可以很好地弥补传统教学模式的不足,将计算思维渗透到《数据结构》的教学中,使得学生能够运用计算思维解决《数据结构》中的问题,使得问题能够得到最大化的解决,通过计算思维的运用,对教学内容进行合理的优化,在优化的同时,需要注意不同类型数据的存储方式、基本算法实际应用,训练学生的计算思维能力。在教学模式方面,通过渗透计算思维,启发式、参与式的教学新模式更加容易展开与实施,从而促进《数据结构》课堂中学生的积极性。

5 结语

《数据结构》在计算机专业中占有重要的地位,由于该课程算法多、概念多、知识点多,理论性较强,学生学习起来具有一定的难度。计算思维目前已经成为一种通识教育,被广大教育学者研究。由于计算机学科在培养学生计算思维方面具有独特的优越条件,计算思维在《数据结构》中的应用不仅可以提高学生的专业知识的应用水平,还能够提升学生的整体的思维素养,进一步提高了学生解决问题的能力,对于我国的人才培养大有裨益。

[1] 高贤强,化希耀.《数据结构》课程教学模式探索与研究[J].中国电力教育,2014(11):110~111

[2] 计算思维.百度百科.http://baike.baidu.com/link?url=8dxaFUoPyRYPkcYqou583Q2ZpHr8a9vjO8qPc6x5zZ7amou7h9H_25Ai32VfF-cei5M7zhzL5W2ldCQF96nk4Z_.

[3] 刘昕,石乐义,亓雪冬.面向计算思维的数据结构课程教学改革[J].计算机教育,2013(16):35~38

[4] 牟琴.基于计算思维的计算机基础课程教学与学习的模式研究与实践[D].成都:四川师范大学,2012

[5] 邓锐.数据结构课程教学的表象训练研究[D].长沙:湖南师范大学,2012

[6] 金萍,宗瑜.《数据结构》教学改革初探[J].皖西学院学报,2012,02(05):42~44

[7] 周玉林,赖鑫生.《数据结构》教改中的问题研究与探讨[J].上饶师范学院学报,2012,03(01):84~88

Research on the Teaching Reformation of Data Structure Course with Computational Thinking

GAO Xian-qiang,HUA Xi-yao,CHEN Li-ping
(College of Information Engineering,Tarim University,Alaer 843300)

Introduces the definition and features of computational thinking,lists themain problems that exist in the teaching process of Data Structure course.Analyses four aspects how computational thinking is leaded into the Data Structure course.The computational thinking helps achieve the reorganization proceedings,the algorithm thinking is part of the calculation thinking,computational thinking can achieve the flexibility and computational thinking curriculum to cultivate students'interest in the Data Structure course.Researches on the teaching reformation with computational thinking in the Data Structure course.

Computational Thinking;Data Structure;Teaching Reformation

1007-1423(2015)07-0016-04

10.3969/j.issn.1007-1423.2015.07.005

高贤强(1978-),男,山东成武人,研究生,讲师,从事领域为计算机应用方面的教学与科研工作

化希耀(1982-),男,甘肃景泰人,研究生,讲师,从事领域计算机图形图像方面的工作

2015-01-29

2015-02-15

塔里木大学高教课题项目(No.TDGJ1334)、塔里木大学高教课题项目(No.TDGJ1309)

陈立平(1976-),男,新疆阿拉尔人,博士,副教授,从事领域为农业信息化与计算机图形图像方面的工作

猜你喜欢
数据结构算法思维
思维跳跳糖
思维跳跳糖
思维跳跳糖
思维跳跳糖
数据结构线上线下混合教学模式探讨
为什么会有“数据结构”?
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
一种改进的整周模糊度去相关算法