以“计算思维”为导向的程序设计入门类课程改革探索

2016-12-24 10:19张钢冉娟朱鹏飞张宁
计算机教育 2016年8期
关键词:计算思维程序设计

张钢 冉娟 朱鹏飞 张宁

摘要:为了避免程序设计入门课程教学容易忽略的“思想”和“方法”问题,提出引入基于流程图可视化软件Raptor作为程序设计工具,详细阐述“Raptor流程图+算法设计”教学模式的优势,最后总结教学实践体会,说明教学效果。

关键词:Raptor;程序设计;计算思维

1 背景

数学思维强调的是数与形的逻辑关系、演算推理能力,计算思维则是强调问题求解的操作过程和机器实现。在信息技术快速发展和广泛应用的当今社会,计算思维已不知不觉地体现在社会生活各个方面,成为了现代社会不可缺少的基本技能。在教育部高等学校大学计算机课程教学指导委员会的推动下,通过各高校的教学改革实践以及各种论坛的广泛交流,目前已经形成了基本共识,即:大学计算机基础课程的核心价值就是培养学生的计算思维。要想以培养学生计算思维能力为核心,就要使计算思维如同逻辑思维一样,学生在这种思维指导下学习,不仅是掌握计算机科学知识,而且要让计算思维成为每个学生应具备的基本能力。既然是每个学生都必须掌握的思维能力,该如何培养学生具有这种思维方式?又该如何让学生学会用计算思维的方式思考问题和解决问题?这显然不是某门课程能独立做到的,它需要渗透到每一门课程中,把这种抽象的思维方式融入到学生的生活和今后工作中。

长久以来,各高校都将“C语言程序设计”作为新生一入学后必须掌握的一门程序语言设计,其目的是为了教会学生程序设计的“思想”和“方法”,能够运用其思想和方法来解决实际问题。但通过多年的教学实践发现:学生刚开始学习时,兴趣十足,愿意花费很多时间来研究与学习,但随着后续学习过程中语法的增多和算法设计的增大,学生不得不将课程学习的重心从程序设计方法转移到语法规则上,忽略程序设计的思想和方法,久而久之,学生面对这些烦琐的语法时就失去了对程序设计的学习兴趣,无形中在他们的大脑中就形成了程序设计课程难、学不会等印象,导致了C语言程序设计课程教学效果的下降。

这就必须改革教学内容和教学方法,试着探索在程序设计中抛开烦琐的语法规则,真正体现程序设计的“思想”和“方法”,实现学习程序设计的目的就是让学生学会解决问题,让计算思维成为学生应具备的基本能力。为此,我校率先在2014级开设了“Raptor可视化程序设计”课程,将Raptor作为程序设计工具,让学生从简单易懂的程序流程图人手,学习程序设计的“思想”和“方法”,将学生学习重心放到程序设计的本身上,强调对问题的求解与实现方法,这样不仅能激发学生的学习兴趣,还有利于学生思维方式和思维能力的培养。在此基础上,提出以“Raptor流程图+算法设计”为教学改革思路,从基本问题到综合问题不断逐步深入,通过利用“发现问题一分析问题一寻求多种解决方案一多种方案比较优化”的“任务驱动式问题求解”的训练方法,从而实现解决实际问题的教学模式。

根据以上思路,以“计算思维”为导向的程序设计课程教学目标应集中体现在以下方面:

(1)知识能力:没有烦琐语法的程序设计,课程强调程序设计的“思想”和“方法”,在知识能力目标上,要让学生首先掌握程序设计基本概念,然后是程序设计的思想、设计方法、调试方法。

(2)技术能力:学习程序设计的目的就是为了解决各种实际问题,能够将实际问题以抽象化和程序化的形式表示出来,在教学过程中不仅要注重对学生分析问题、抽象问题能力的培养,更要注重对问题求解与数学建模、算法优化等能力的培养。

(3)创新能力:突出计算思维能力的培养是程序设计教学的教育价值,因此应倡导算法思维的多样化,不仅能培养学生的实践能力,还能培养学生的创新能力。

2 基于流程图的可视化软件Raptor

Raptor是一种基于流程图的可视化编程工具,它具有以下特点:

(1)由各种相互连接的图形符号构成可执行的流程图,最大限度地减少了程序语言的语法理解。

(2)操作简单,学生只需要通过拖拽操作就可将不同图形符号放置到所需要的位置上,工具软件就可以自动将这些不同图形符号连接在一起,形成一个完整的流程图。

(3)简单易懂,由于流程图与自然的思维过程相近,能够比较简单地让学生掌握和理解程序的设计与算法。

Raptor除了具有流程图特色外,还具有其他诸多重要特点,例如,计算操作的原子化和算法的执行步骤统计等,为算法设计、算法优化、算法复杂性分析提供了有力的实验或验证手段。

3 “Raptor流程图+算法设计”教学模式

融入计算思维的程序设计课程的教学内容要以“程序设计”为中心,从基本问题到综合问题逐步深入,通过利用“发现问题一分析问题一寻求多种解决方案一多种方案比较优化”的“任务驱动式问题求解”的训练方法,来实现实际问题的解决,从而达到提升学生计算思维能力的目的。具体实施包括以下几个方面。

3.1 课程教学内容循序渐进,便于思维训练连贯性

课堂教学内容的选择应从新生对程序认知能力实际出发,选取更多趣味性和贴近生活的案例,由基本问题到综合问题逐步深入,让学生能够循序渐进掌握程序设计方法,也便于思维训练的连贯性。表1为“猜数游戏”任务案例。

3.2 强化课程实践环节,提升学习兴趣

根据《大学计算机基础课程教学基本要求》所提出要加强实践教学,注重能力培养,提升学生的计算思维能力。在教学过程中,根据学生对编程不同的认知能力和层次水平,将该课程的实践内容分为基础题、中级题和高级选作题三类,让学生根据自己层次能力来完成题目。基础题目一般包括鸡兔同笼问题、判断明年是否是闰年、20以内累加和、创建数组等;中等题目一般包括水仙花数、100以内的奇偶数之和、百万富翁换钱、出售金鱼等;高级选作题目一般包括打印等腰三角形、抓交通肇事犯、字母出现频率的统计等。除此之外,恰当的趣味程序设计内容也提升了学生对程序设计学习兴趣和对知识点的掌握。

3.3 思维多样化。提升计算思维能力

算法设计实践旨在训练学生抽象思维能力,在程序设计课程的教学活动中,教师应尊重每位学生在思维能力和心理特征上存在的个体差异,倡导多样化的算法思维,鼓励学生对问题能够“一题多解”,通过分析找出不同解法的优缺点,并根据其优缺点完善自我的程序,从而激发学生的思维活动,提升学生的计算思维能力。

3.4 课程教学方法的创新

程序设计强调理论联系实际,如何从培养计算思维能力的角度,把课堂讲授、上机实践、课后辅导3个环节有机地结合起来,需要对教学方法不断总结和创新,主要包括:

(1)引入讨论教学法。将学生作为教学主体,师生共享。鼓励学生发散思维,引导学生思考和分析不同算法的优缺点,进而对程序算法进行简化和优化。如:在数组中查找数据(见图1和图2),大多数学生采用二重循环的算法实现,引导学生思考如何改为一重循环,然后对两种算法为何执行的算法效率不同进行比较与分析。这样不仅能调动学生对程序设计课程的学习兴趣,并且可以启发学生自主思考,从而为培养学生计算思维能力打下基础。

(2)案例分析教学法。以教师为主,学生分享为辅。教学过程中通过多种案例分析对一个知识点举一反三,让学生不仅掌握知识点,也学会灵活应用。

(3)兴趣分组教学法。通过学生自愿组合的方式,将学生分成若干小组,每次布置作业后,随机抽出小组成员对程序作业进行讲解,小组间互为评分、提问,不仅能够充分调动学生动手实践能力,并且也能锻炼团队内的协作精神。

4 教学实践体会

在2014级和2015级开设的“Raptor可视化程序设计”课程实践,不但取得了良好的教学效果,而且也得到了学生的认可。据学生问卷调查显示:90%的学生认为Raptor这种简单明了的程序设计方式不仅容易让学生理解和接受,而且通过对学生学习思考能力的培养和对程序设计学习热情的引导,能够让学生对学习程序设计产生强烈的学习动力和学习兴趣。在克服对程序设计的恐惧感的同时,培养了学生严谨认真的思维逻辑能力,增强了学生之间的交流与沟通、共同探讨解题思路和方法、团结协作的精神。

在当今信息技术快速发展的时代,Raptor作为一种简单易懂的可视化编程软件,可以使用流程图的方式来模拟程序的设计,体现利用计算机来求解问题的过程和方法,它不仅增强学生学习程序设计的兴趣,而且通过对问题的思考、讨论、交流,出示解决问题的流程图并运行结果,使程序设计中原本抽象的教学过程变得更加清晰,让学生亲历知识的产生和形成的过程。应当在教授计算机技术的同时,加强思维教育意识,让学生增强运用计算思维的能力,使计算思维成为当代大学生的基本技能。

猜你喜欢
计算思维程序设计
基于OBE的Java程序设计个性化教学研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究