冉娟
摘 要 目前,计算思维的培养已经成为当今国内外高校研究与应用的热点。本文引入了基于流程图可视化软件Raptor作为程序设计工具,程序设计的流程图、算法设计融为一体,探讨在程序设计入门课程中如何培养学生的计算思维能力。
关键词 Raptor 程序设计 计算思维
中图分类号:G642 文献标识码:A DOI:10.16400/j.cnki.kjdkx.2016.08.027
Abstract At present, the cultivation of computational thinking has become a hot spot in the research and application of universities and colleges. This paper introduces the flow chart based visualization software Raptor as a programming tool, programming flowchart and algorithm design integration to explore how to cultivate the computational thinking ability of students in the program design entry.
Key words Raptor; programming design; computational thinking
1 程序设计与计算思维
社会不断发展与进步,对大学生的实践和创新能力提出了更高的要求。在这种社会背景下,应该教什么,如何引导学生,如何培养学生发现问题、分析问题、解决问题,成为了我们当前面临问题。程序设计课程是一门实践性很强的课程,它体现了从问题到计算机求解的全过程。从计算机程序设计知识方面看,教会了学生语法规则和简单程序设计结构;从培养学生计算机能力方面看,教会学生编写程序和优化程序;从计算思维角度上看,教会学生计算机求解问题的方法。可以说,程序设计课程作为计算机基础课程的重要组成部分,是训练学生思维的最具有操作性的平台。
2 程序设计课程教学现状
让新生掌握一门程序设计课程是计算机基础课程教学的重要任务之一。长久以来,各高校都将C语言作为程序设计入门课程,但通过多年教学实践我们发现:由于课时限制和大一新生基础差异,70%以上的大一新生在学习程序设计过程中最棘手的问题是看到问题时,不知如何思考问题,不知如何入手,不知如何将思维转换成程序代码。这种现状造成了我们在教学过程中,教师教着累,学生学着累,看到稍微难一些的题目就无从下手,久而久之,对程序设计产生了“学而无趣”、“学而无用”的想法,学习效果下降,成绩不及格率偏高等一系列问题,无形中使得程序设计课程变成了“一锅夹生的饭”。究其原因,导致这种教学效果无疑是在计算机基础课程教学中还在沿袭计算机科学专业课程的内容与讲法,授课教师为了让学生在较短时间内理解和接受这些抽象、理论性较强的教学内容,自然就会将程序设计的教学重点偏向于“语言”的讲解,忽略了程序设计的“思想”和“方法”。这样教学方式自然让学生对程序设计学习的重点从程序设计思想和方法,转移到了语言的语法规则上,忽略了计算机求解问题的核心是程序算法设计。程序算法设计不仅是计算机问题求解的核心,更是程序设计的灵魂,教会学生计算机求解问题的方法,才是程序设计课程教学的关键与目标。针对这种教学现状和出现的问题,我校在程序设计入门课程上作了改革与探索,试着分别对2014级新生和2015级新生开设了“Raptor可视化程序设计”课程来代替入门C语言程序设计课程,将Raptor作为程序设计工具,引导学生从计算思维的角度来思考问题、解决问题,帮助学生掌握程序设计算法设计思想和方法。
3 计算思维视野下程序设计入门探索与实践
(1)Raptor有利于程序设计入门。RAPTOR是一种基于流程图的可视化编程开发环境,关于Raptor可视化计算软件的介绍目前已经在一些教材和文献资料中进行介绍,这里不再赘述。早在2003年,Raptor可视化编程软件就已经出现大学的课堂上。美国卡内基·梅隆大学Dr. Tom Cortina给非计算机专业学生讲授的“Principles Of Computation”课程中引入了Raptor作为教学实践工具,受到了学生好评。因为Raptor具有了设计程序简单、直观的特性,让学生能够在学习程序设计时不仅学会程序设计的“思想”和“方法”,而且让学生体会了利用计算机进行问题求解的过程与方法,从而影响了学生的思维方式和思维习惯。所以使用Raptor进行问题求解,可以使程序或算法思想变得更加清晰。
(2)RAPTOR有利于程序设计的算法设计教学。按照原有程序设计课程教学内容的安排,一般是先给学生讲解语法规则和程序结构,然后借助程序流程图来逐步渗透程序算法设计的思想。这种教学安排,初期学生还可以按照要求边绘制流程图边编写程序代码,但随着教学内容逐步加大,流程图在算法设计过程就逐步被放弃,学生看见题目就直接编写程序。在还没有形成很好的计算思维的时候,这样做的结果是:简单的题目还可以,稍微有一些难度的题目,学生就不知如何下手,为了继续能够做出题目,只能是“照猫画虎”。将Raptor作為程序设计工具,利用其流程图可以执行与验证的优点,可以将这种状况得到根本性的改善。例如在选择结构中以最简单的“求三个数中最大值问题”,鼓励学生寻求一题多解的方法。有的同学设计是采用顺序处理方案,有的采用决策树方案,有的采用通盘比较方案,还有的采用RAPTOR内置函数Max,算法设计方案各异。让学生分别对不同算法设计进行分析,不仅让学生体会计算机求解的过程,而且也让学生仔细思考在算法设计过程中如何找到一个简洁高效的算法。由此可见,对于大一新生来说,将流程图、算法设计、程序设计融为一体不仅是一种全新的体验,也是培养学生计算思维一个过程。
(3)RAPTOR有利于计算思维的培养。Raptor在克服了语言程序设计教学中存在的算法难理解、语法多等诸多问题后,更加侧重于算法的验证和实现,为程序和算法的初学者铺就了一条平缓的道路,也有利于培养学生的计算思维能力。因此,在计算机基础课程教学过程中从分析问题着手,经过对问题建立数学模型、算法设计等过程来让学生关注计算思维中关于问题抽象和问题分解能力的培养,提高学生解决实际问题的基本能力和计算思维能力。在新的计算机基础课程教学中,教师应该把更多的时间放在算法设计、算法效率分析和算法优化的教学上,这也是效率作为计算机科学的核心概念之一。在Raptor可视化程序设计教学内容设计上不仅要充分体现这一点,更要考虑到新生对程序设计的认知能力和理解能力。因此,教学内容设计从学生感兴趣的事物和案例出发,讲解程序设计中基本概念、基本程序结构、引导学生从计算思维的角度来思考问题、解决问题。比如讲解“递归算法设计”时,以往在C语言程序设计中都是很难理解,教师需要在PPT上进行演示,有的学生还是不能理解递归是如何一个调用过程?利用RAPTOR可以很直观观察到程序递归的过程,数据变量的变化,如图1所示求解两个数最大公约数问题时利用递归算法设计程序时执行过程(绿色部分为程序执行步骤,红色部分为数据变量传递的变化)。
通过这样演示,学生很容易理解递归算法调用过程,对学生更好利用递归算法解题奠定了基础。这种利用Raptor可视化程序独有的优点,不仅让学生对算法设计有了进一步理解,而且为培养计算思维能力打下基础,也让学生体会计算思维,能够将计算思维应用到实际中,更好地分析和解决问题。
4 结束语
在当今信息技术快速发展的时代,Raptor作为一种简单易懂的可视化编程软件,可以使用流程图的方式来模拟程序的设计,体现利用计算机来求解问题的过程和方法,在计算机基础课程教学中引入其作为教学实践工具,不仅增强了学生学习程序设计的兴趣,而且通过对问题的思考、讨论、交流,出示解决问题的流程图并运行结果,将程序设计中原本抽象的教学过程变得更加清晰,让学生亲历知识的产生和形成过程。
课题来源:2014年全国高等院校计算机基础教育研究会计算机基础教育教学改革课题“面向计算思维能力培养实践——以RAPTOR可视化程序设计为例”(编号:201503)
参考文献
[1] 何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养《九校联盟(C9)计算机基础教学发展战略联合声明》解读[J].中国大学教学,2010(9).
[2] 程向前.基于流程圖的可视化程序设计环境对大学计算机基础教学的影响[J].计算机教育,2012(14).
[3] 卢琼.基于流程图的程序设计工具 RAPTOR 对学生的计算思维能力的培养[J].计算机光盘软件与应用,2014.3.