您好, 访客   登录/注册

以计算思维能力培养为导向的程序设计教学研究

来源:用户上传      作者:

  [摘要]针对计算思维培养的重要性和计算机教学在该方面教学的不足,本文在分析了计算思维的特点之后,探讨了在任务驱动的程序设计教学中融入计算思维的基本概念和方法。实施的教学案例表明该教学方法能促进学生专业知识的学习和计算思维能力的培养。
  [关键词]计算思维 程序设计 任务驱动法
  
  一、引言
  自从周以真教授2006 年发表了题为“计算思维” 的论文以来,计算思维引起了强烈的反响和重视,立即成为国内外计算机教育届进行计算机教育改革的焦点[1,2,3,4]。在计算机教学中引入应用计算思维及其推广正逐步展开,一些教育者正探索改革计算机教学模式,尝试在教学过程中推进计算思维能力的培养[5,6]。由于计算思维本身是一个抽象的概念,如何理解计算思维的本质和内涵,如何确定计算思维的内容和体系,以及如何着手培养学生的计算思维等,还需要不断的探索。
  二、计算思维
  计算思维[1]就是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。进一步定义为:通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的方法;是一种递归思维,是一种并行处理,是一种把代码译成数据又能译成代码,是一种多维分析推广的类型检查方法;是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是基于关注分离的方法;是一种选择合适、容储、纠错的方式,并从最坏情况下的规划`学习和调度的思维方法;是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折衷的思维方法。
  随着信息技术的飞速发展和深远的影响,作为信息技术基础的计算机科学和教育受到越来越多的重视,在计算机教育领域如何培养计算思维能力是关键。如何培养“计算思维”?计算机教育界正在摸索不同的方法,例如,有些研究者在专业课程中引入计算思维的培养;在计算机基础的教学中,比如计算机导论的课程进行改革,从教学内容和方法上进行改革,培养学生的计算思维[4]。
  目前形成的共识是计算思维的培养应该贯穿在大学教育的全过程。计算思维的培养不是一门课程的教学能解决的问题,需要在在各计算机相关课程中进行计算思维的培养,在教授专业知识的过程中,加强对计算思维的原理和方法进行提炼,有意识的从思维方法的角度反复锻炼和培养学生,使学生潜移默化的理解计算思维,并应用计算思维解决问题。本文研究在程序设计课程教学中融入计算思维能力教育,使学生在学习编程技能的同时接受理解计算思维的相关内容以锻炼计算思维能力。
  三、基于计算思维的以任务驱动程序设计课程教学
  程序设计是理工科和计算机类专业重要的基础,是大量计算机类课程的先修课程,该课程的内容不仅包含程序设计的专业知识,还大量包含和体现了计算思维的基础概念、思维模式和解决问题的方法。因此在程序设计教学中融入计算思维的内容,对于培养学生对于计算机科学的理解和兴趣至关重要,不仅能为学生的编程学习及将来所从事的软、硬件开发和应用研究打下坚实的基础,养成良好的编程习惯,同时也能锻炼学生的计算思维和养成用计算思维的方法思考解决问题的习惯。
  由于任务驱动教学法的良好教学效果,本文探索在程序设计教学中融入计算思维的内容的同时采用任务驱动教学方法来安排教学内容和组织教学。任务驱动教学法是建构主义认知理论的教学应用。该方法主要特点是在设计教学计划时,把教学内容目标编排在具体的任务中,以任务的完成为主线在组织教学活动;以具体的任务来吸引并激发学生的学习动机,在教师的引导下,进行任务的分析,明确需要解决的问题和目标,确定需要的知识;然后在教师的指导帮助下,对学习资源(来自教材、自己收集或教师提供等)选择、加工,强调自主探索和协作的学习模式,找到完成任务的方法。这是一个主动学习、教室引导的教学方法,有利于培养学生独立学习、分析和创新的能力,显然这一点和培养学生的计算思维能力和习惯是一致的,而且通过有意识在教学过程中加强这方面的练习更有利于学生分析解决问题的能力。
  在任务驱动程序设计课程教学中融入计算思维内容是必要的也是可行的。可以依据任务驱动教学方法的原则和过程,根据不同的教学单元和主题,在相应的教学任务的设计中精心编排适当的计算思维的概念和方法,作为新的学习任务;在教学活动中,在以往的教学活动中,有意识的引导学生提炼计算思维相关的概念和方法,并应用计算思维的方法进行问题的分析、思考和求解。
  根据任务驱动教学方法的过程,以“循环结构”的章节为例子。典型的计算思维包括一系列广泛的计算机科学的思维方法:递归、抽象和分解、保护、冗余、容错、纠错和恢复,利用启发式推理来寻求解答,在不确定情况下的规划、学习和调度等。就循环结构而言,在教学和应用的内容中,通常会涉及到计算思维方法中的递归思维。因此在第一个环节设计教学任务和目标,除了关于循环控制的语法知识以外,还要加入递归思维概念和方法。也就是说,在这个环节的教学活动中,以一个具体的问题或情景,引起学生的兴趣;通过引导学生分析这个问题,思考、搜寻和讨论解决方法,在这个过程中,要有意识的引导学生对问题进行适当的抽象,采用递归的思路来考虑问题的解决方法。在接下来的学生自主学习环节,要求并协助学生自己尝试解决问题,以培养自主学习的能力,同时也得到独立锻炼递归思维解决问题的方法。在接下来的交流讨论和总结等环节不仅考察和巩固循环结构的相关语法知识、使用方法和环境,还要在思维层次讨论和总结递归方法的特点、用法,强化学生对递归这一典型的计算思维的理解和运用能力。
  总结和分析教学方法的实施过程和效果可以看到,该方法继续保持了任务驱动教学方法的优点,学生学习主动性好,同时加入计算思维的培养很好的弥补和加强了以往教学中存在的学生掌握了语法,但是分析解决问题的能力不强的缺陷,启激发了学生学习的热情和成就感以及对程序设计的学习兴趣,更重要的是锻炼和培养了学生计算思维能力,显著增强了问题分析和解决的能力。
  四、总结
  计算思维是计算科学的核心,是现代计算机教育中学生能力培养的关键,直接关系到学生思维水平的发展,思维教学对学生现在以及将来具有非常重要的影响。在本文的程序设计教学中,运用计算思维的递归方法分析和解决循环结构教学任务,不仅对于学生学习循环控制的语法有帮助,而且学会了递归方法分析解决类似问题的能力。因此教师应注重和加强对学生计算思维能力的培养,促进计算思维能力的提高。让专业知识的学习和思维的培养锻炼
  紧密地、互补地联系在一起。计算思维发展对让学生的学习不仅仅局限于专业知识,更重要的是让学生成为问题的解决者和方法的创新者。
  [参考文献]
  [1]周以真.计算思维[J].中国计算机学会通讯,2007(11).
  [2]王飞跃.从计算思维到计算文化[J].中国计算机学会通讯,2007 (11).
  [3]美国国家科学基金CDI计划官方网站[EB/OL].http://www.nsf.gov/crssprgm/cdi/.
  [4]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1).
  [5]何明昕.关注点分离在计算思维和软件工程中的方法论意义[J].计算机科学,2009(4).
  [6]廖伟志,李文敬,上汝凉.计算思维在离散数学课课程学中的应用[J]. 计算机科学,2008(11).
  (作者单位:贵州大学职业技术学院 贵州贵阳)

转载注明来源:https://www.xzbu.com/9/view-9285405.htm