您好, 访客   登录/注册

计算思维与《数据结构》课程教学改革实践

来源:用户上传      作者:

  摘要:文章结合教学实际,对《数据结构》课程教学中遇到的问题进行了深入分析,并从如何利用计算思维更好地优化和调整教学的角度对课程的教学计划、教学模式和实践教学改革提出了一些思考和建议。
  关键词:计算机思维;数据结构;实践教学
  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)10-0152-02
  1 计算思维
  2006年3月,美国卡内基・梅隆大学的周以真教授在美国计算机权威杂志ACM上发表并定义了计算思维(Computational Thinking)。周教授指出,计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。[1]计算思维的提出,引起了美国教育界以及科学界的广泛关注,直接促成了“大学计算教育振兴的途径”计划, 以及更为具体的以“计算思维为核心的课程改革”。
  计算思维的重要作用同样引起了国内学者和计算机教育专家的关注,国防科技大学的朱亚宗教授站在人文历史的基础之上,将计算思维归类为三大科学思维(实验思维、理论思维、计算思维)之一。[2] 2010年,“九校联盟(C9)计算机基础课程研讨会”上,发布了《九校联盟(C9)计算机基础教学发展战略联合声明》,确定了以计算思维为核心的计算机基础课程的教学改革。随后,一些计算机教育者开始在“计算机导论”、“程序设计”、“离散数学”等课程的教学中广泛探讨计算思维的应用和实践。
  2 《数据结构》课程教学中存在的问题
  2.1先导课程的基础不够扎实
  《C/C++语言程序设计》、《离散数学》等课程是《数据结构》学习的先导课程,对程序设计基础的掌握程度会直接影响学生对《数据结构》理论知识的学习和实验实践训练。目前计算机专业的教学计划中通常会把《C/C++语言程序设计》安排在大学第一学期,与《数据结构》课程开设距离1-2个学期,这造成了学生在学习《数据结构》时对《C/C++语言程序设计》的前导知识已经淡忘模糊,指针、结构体问题甚至会出现知识空白;同时,《C/C++语言程序设计》也是实践性较强的课程,前期学习往往实验训练不足,学生动手能力普遍较差,这些情况对《数据结构》课程的实践教学带来很大困难。
  2.2课程知识理论性抽象性强
  《数据结构》课程主要讨论现实世界中数据的各种逻辑结构,在计算机中的存储结构以及进行各种非数值运算的算法。目的是使学生掌握数据组织、存储和处理的常用方法以及算法设计的基本方法。《数据结构》是许多后续专业课程的基础,课程本身涉及的概念多、内容广,理论性抽象性比较强,学生在学习理解上普遍存在一定的困难。
  2.3课程实践环节薄弱
  实践是《数据结构》课程的重要环节,培养学生设计开发复杂高效程序的技能是课程的教学要求之一。具体内容包括:掌握数据组织、存储和处理的常用方法;对经典算法进行编码调试;具备编写较大型程序的能力。实际教学中,课时不足尤其是实验课时不足,造成了课程的实践环节较为薄弱,学生在课程学习后往往反映:“课堂内容能够掌握,但上机编程时困难重重无从下手”。
  3 计算思维与数据结构
  周以真教授将计算思维的特征总结为:概念化,不是程序化;根本的,不是刻板的技能;是人的,不是计算机的思维方式;是数学和工程思维的互补与融合;是思想,不是人造物;面向所有人,所有地方。[3]同时,周教授也阐述了几种具体的计算思维方法:通过约简、嵌入、转化、仿真,把困难的问题阐释成知道问题怎样解决;利用递归思维、并行处理,把代码译成数据,又把数据译成代码;利用抽象和分解来控制庞杂的任务或巨大复杂系统;基于关注分离的方法(SoC 方法);按照预防、保护及通过冗余、容错、纠错的方式,从最坏情况进行系统的恢复;利用启发式推理寻求解答;利用海量数据来加快计算等。这些阐述不仅扩散了计算思维的原理,也为我们提供了将来的发展和培养方向。
  在国内,桂林电子科技大学董荣胜教授以“思想与方法”替代“基础概念”更改了周以真教授的定义。董教授指出,“计算思维”是从学科思维层面直接讨论学科的根本问题与学科的思维方式,而“计算机方法论”则是从方法论的角度讨论学科的根本问题和学科形态,二者的研究互补性很强,相互促进。
  计算思维的核心之一是“抽象”,要求在多个层次上抽象进行思维,进而实现问题求解,这个过程具体到一门课程,最适合的内容就是“数据结构和算法描述”。《数据结构》是计算机专业非常重要的一门专业基础课,主要研究数据之间的逻辑结构、存储结构和对数据的各种基本操作。在《数据结构》的学习中,我们经历这样一种过程:应用数据抽象,建立数据对象模型;应用问题抽象,建立问题的数学模型;应用计算机,实现问题求解的算法。这与计算思维的本质特征“抽象”和“自动化”是相契合的,所以在《数据结构》课程中贯穿计算思维的思想,构建一个基于计算思维的《数据结构》教学体系是可行的,也符合董荣胜教授提出的计算思维与计算机方法论相互补充相互促进。[4]
  4 结合计算思维训练的《数据结构》教学改革实例
  在实际教学中我们发现,大多计算机专业的学生在完成了一门或若干门课程的学习后获得的是零散的概念,对学科知识难以做到系统的理解,甚至直到毕业仍无法建立起利用计算机求解问题的思路。针对这个问题我们曾对部分大三、大四年级学生做过调查,在问到“影响你专业课学习的主要原因是什么”时,82.5%的学生选择了“自己对计算机学科的核心问题,学科涉及的数学方法、系统方法的认识和掌握”,其他学生选择了“自己的动手能力”。计算思维的提出正是要求我们在教学中重视学科所蕴含的思想和方法,为计算机专业课的教学改革提供了思路。
  4.1围绕计算思维的教学理念,修订教学计划
  数据结构是计算机专业理论性和实践性并重的专业基础课,教学计划中包含了理论体系和实践体系两部分。理论课程体系要注意用新的理论、技术更新核心知识单元和知识点,体现计算思维的思想和方法。如:二叉树的遍历操作中的递归思想,排序算法中的抽象和分解思想等。在教学模式方面也要渗透计算思维,具体到授课中,一要注重讲解知识的背景,以问题贯穿教学过程,通过问题将理论知识和应用联系起来;二要突出思维培养,通过引导学生探讨知识产生的过程,特别是知识的关联,领会创新的途径和本质。
转载注明来源:https://www.xzbu.com/8/view-7424315.htm