APP下载

计算思维和程序设计能力的培养

2011-12-31吴绍兵

计算机教育 2011年16期

  摘要:随着信息化技术的发展加快,如何提高计算机人才的程序设计和开发能力显得尤为重要。本文从算法的一题多解入手,探讨对学生计算思维能力的培养。这一方法对培养学生学习兴趣和提高其程序设计及编程实践能力起到了极大的促进作用。采用这个方法进行教学,能达到理想的教学效果。
  关键词:算法;程序设计;计算思维;能力培养
  
  1研究背景
  数据结构是计算机相关专业的一门重要的专业基础课,是计算机科学的核心课程,是计算机理论与技术的重要基石。它主要研究计算机加工对象的逻辑结构、在计算机中的表示形式以及实现各种基本操作的算法。它是学习操作系统、编译原理、数据库原理、软件工程等计算机专业核心课程的基础,掌握好这门课程的内容,是学习计算机其他相关课程的必备条件。学习数据结构可以培养学生的数据抽象能力、算法设计能力以及构造算法思维方法的能力。
  数据结构的学习过程,是算法构造性思维方法的训练过程,技能培养的重要程度不亚于知识传授。本门课程教学难点在于让学生理解、习惯算法构造思维方法。培养学生的数据抽象能力、算法设计能力以及创造性思维方法,才能使其举一反三、触类旁通,从而达到应用知识解决复杂问题的目的。通过数据结构的学习,培养和强化学生计算思维的能力。
  程序设计在计算机学科知识体系中处于核心地位,对计算机专业的学生来说不仅是职业技能的培养,也体现着创造性思维的信息素质培养过程。程序设计也是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,对计算机专业人才素质的培养至关重要[1]。如何培养学生的程序设计和计算思维能力,是我们在教学中思考的一个问题,我们将这一教学理念融入数据结构的教学中,取得了理想的效果。
  2数据结构教学面临的困境
  我们根据实际应用需要,对数据进行有效地组织、存储和处理,并设计出相应的高效率的算法,这是数据结构课程所要研究和解决的问题。由于数据结构具有抽象性和灵活性等特点,这给教学和学习带来一定的困难[2]。学生学习起来比较吃力,有学生反映,他们课上听懂了,但是一下来做作业,就会不知道如何下手。有部分学生感觉对学习数据结构缺乏兴趣,他们不知道数据结构能用在什么地方、到底有没有用。
  3培养学生计算思维能力的重要性
  很多专家、学者、教授针对学生学不好的问题进行了积极的讨论和研究。大部分人都认为,在如今的社会背景下,应该首先引导学生,培养学生的兴趣,从而培养他们分析问题、解决问题的能力。
  随着科学技术的飞速发展,计算机的发展进步也非常迅速,新的知识大约每两年就成长一倍,学生大一所学的新知识,到大三可能就已过时。那么,我们到底要给学生些什么呢?2010 年最迫切需要的十种工作,在2000年时可能根本还不存在。因此,我们面临的挑战是要教学生面对目前还不存在的工作,使用现在还没有发明的科技。不管我们的课程怎么设置,重点是要教会他们进入社会后能够解决没有想过,甚至没发生过的新问题。在这个概念下,关心到学生真正的需要,如何从“学什么”(内容)转到“如何学”(过程)[3]。不管环境、知识需求如何变化,有了良好的计算思维品质,就可以以不变应万变。关键是看有没有这个思维,对这个问题是如何思考,有没有想法,有没有解决问题的办法。所以,我们必须加强学生计算思维能力的培养。
  4算法与计算思维
  4.1算法
  算法是解决问题的方法,根据图灵奖得主D.E.Knuth的定义:一个算法就是一个有穷规则的集合,其中规则规定一个解决某一特定类型问题的操作序列。学生在学习程序设计课程时,将通过算法设计并由计算机语言实现来体验问题求解的思维训练。算法的操作时序性确保问题求解过程是按步骤进行的,这种执行规则非常简单机械。所以,教学过程中要使学生经历算法化过程并体验计算思维,它有利于培养学生的理性思维和形式逻辑能力。培养学生通过计算机编程,最终形成计算思维[4]。
  4.2计算思维
  4.2.1计算思维的概念
  计算思维一词由Jeannette M. Wing(周以真教授)于2006年提出[5],其定义是:运用计算机科学的基础概念去求解问题、设计系统和理解人类行为。它包括了涵盖计算机科学之广度的一系列思维活动。
  4.2.2计算思维能做什么
  计算思维是每个人的基本技能,不仅仅属于计算机科学家。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Read