基于RAPTOR和计算思维的计算机科学导论课堂教学研究

2019-09-10 07:22郦丽沈应兄
电子商务 2019年1期
关键词:计算思维

郦丽 沈应兄

摘要:计算科学导论课程是培养计算机专业类学生计算思维的有效途径。目前多数高校采用静态流程图和伪代码的教学内容和教学方法,存在知识点古板,学生学习积极性差。本文结合计算思维和RAPTOR的特点,针对学生对流程图仿真方式的接受能力强,以RAPTOR作为学习工具,通过师生配合,学生主动参与解决问题,培养学生的计算思维能力。

关键词:计算思维;计算机科学导论;RAPTOR

引言

1972年,图灵奖得主Edsger Dijkstra曾说过:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也深刻地影响我们的思维能力。”在传统《计算机科学导论》的教学中,老师主要倾向于对一些计算机方面知识、算法方面的介绍,学生也未能认识到本课程在后续学习中的重要性。RAPTOR是仿真环境,能把静态的算法在学生没有大多编写代码能力的前提下,把每个算法真正的用来解决实际问题,让大一新生感受到编程的魅力。

1、计算思维与“计算机科学导论”课程的关系

1.1计算思维的概念

2006年3月美国卡内基·梅隆大学的计算机科学系主任周以真(Jeannette M.Wing)教授…在美国计算机权威期刊Communications of the ACM上对计算思维进行如下定义:计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。

1.2 RAPTOR

RAPTOR是the Rapid Algorithmic Prototyping Tool forOrdered Reasoning的缩写,中文名称是用于有序推理的快速算法原型工具。RAPTOR提供了一种可视化编程环境,为程序和算法设计的基础课程的教学提供实验环境。本文作者在长期的教学过程中发现,现在的大一新生从小学开设信息技术课程,经历了初中、高中的计算机方面知识的学习,大部分学生仍然不具备熟练的程序设计基础。另外《计算机科学导论》课程中涉及大量的算法问题,如:哥尼斯堡七桥问题、旅行商问题、汉诺塔问题等,这些都需要学生在理解问题的基础上,通过对程序代码的编写去验证算法,从而让学生获得算法训练,为后续程序类课程的学习奠定基础。原本《计算机科学导论》课程中,我们大多使用静态流程图的方式,给学生讲解各类算法问题,或者有些高校使用伪代码进行基础算法训练,这样的实训都是静态的,学生无法真实体验到编程带来的乐趣。将RAPTOR引入大一新生的计算机科学导论课程,使用流程图仿真方式进行简单的程序设计,学生们表现出很大的兴趣和高涨的热情。

RAPTOR的特点:

编程语言简单。RAPTOR仿真环境中一共只有6种语言,(1)赋值语句,是指给一个变量赋值,变量在使用前不需要申明变量的类型等,如给变量×赋值为3,则可以写作x=3;(2)输入语句,是指从键盘给一个变量输入值,以实现人机交互的过程,主要有输入提示和输入变量两部分组成,如从键盘给变量x输入一个值,可以直接设置输入提示为“input a numbertox:”,或者输入提示也可以忽略不写,输入变量直接写×即可;(3)输出语句,是指从计算机中仿真运行的结果显示在屏幕上;(4)选择语句,是指根据条件真假选择不同的执行分支。(5)循环语句,是指根据条件真假循环执行循环体语句。(6)调用,是指调用函数和子程序。

运算功能强大。RAPTOR仿真环境中一共有1 8种运算符,有算术运算符,如+,一,*,/等,有关系运算符,如>=,>,<,<=等,有逻辑运算符,如与、或、非等。

数据类型丰富。RAPTOR仿真环境中有数值型、字符串、字符、一维、二维数组,满足大部分算法需要的数据结构。

结构化控制语句。

2、基于RAPTOR的计算机科学导论课堂教学和学习模型

2.1计算机科学导论课堂的教学目标

1985年,ACM和IEEE-CS开始对“计算作为一门学科”的存在性证明,报告认为:“计算机科学导论”课程应该要培养大学生面向学科的思维能力,让学生能够领悟学科的力量以及从事本学科工作的价值所在。报告希望该课程能类似于数学那样严密的方式将学生引入计算学科各个富有挑战性的领域中。

2.2基于RAPTOR的计算机科学导论课堂教学模型

传统的教学模式:导人课程的理论知识,分析讲解问题的实现过程。基础知识抽象难于理解,学生只能被动地接受,很少能主动参与整个教学过程,无法体验解决问题的思维过程。例如:递归是计算机科学的一种重要的解决问题的方法。递归是指一种(或多种)简单的基线条件定义的一类对象或方法,并规定其他所有情况都能被还原为基线条件。递归的魅力在于用有限的语句未定义对象的无限集合。估计这样的理论导人后,学生都已经完全蒙圈,老师到底要讲什么?递归能解决什么实际问题?如何去解决呢?我认为大多数学生在计算机科学导论课程中,只是算法知识的普及,计算思维的培养,并非高深的学术研究,我们的教学应该尽量避免抽象理论,让学生主动参与问题的解决过程中,从而培养学生使用计算思维解决实际问题的能力,如图1所示,我们给出了基于RAPTOR的《计算机科学导论》课程学习模型。

2.3 RAPTOR对于计算思维能力的培养案例

递归算法的典型案例——汉诺塔问题(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子(假设三根柱子分别标号为:x,y,z),在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。主要的学习过程图2所示。

首先,教师创设情境,提出问题。学生利用手机“汉诺塔”小游戏,积极参与到解决问题的过程中,分别记录下移动1个、2个、3个……圆盘的过程,随着移动的圆盘数目增加,学生会发现解决问题的过程越来越复杂,直到大部分学生都无法完成圆盘的移动。

其次,老师辅导学生,抽象描述问题。当盘子数目比较多的时候,问题比较复杂,我们先从简单的情况开始分析。(1)如果移动1个盘子,只需要一步,直接把盘子从x移动到z即可。(2)如果移动2个盘子,我们需要移动三步:x上的小盘子移动到y;x上的大盘子移动到z;y上的小盘子移动到z。如果N比较大时,我们考虑能否将复杂的移动过程转化为简单的移动过程,即:要把x上最大的圆盘移动到z,必须先把N-l个圆盘移动从x移到y上。按照这样的思路,我们抽象描述出移动N个圆盘的移动依次为:把x上N-l个圆盘移动到y上;把x上最大的圆盘移动到z上;把y上N-l个圆盘移动到z上。其中N-l个盘子的移动过程又可以按照同样的方法解决,这样的移动过程就是递归的过程,直到最后只剩下一个圆盘,就是N=l时递归程序中的“基线条件”为真,按照移动一个圆盘从x到z的方法移动。

然后,学生使用RAPTOR软件,绘制main和move子程序流程圖,如图3,图4所示。

最后,RAPTOR仿真运行,运行结果如图5所示。学生交流讨论,完善思维方法,完成设计报告。

至此,根据基于RAPTOR的《计算机科学导论》课程学习模型我们完成了。

3、评价与总结

在《计算机科学导论》课程中对学生的计算思维能力进行培训,目前处于探索阶段,2017年第一学期在我校300名大一新生中进行实验性教学,效果非常好,学生们积极参与到教学活动中来,经过两个月的仿真训练,有半数学生主要跟上课老师提出要学习写代码,并利用中国慕课网提前学习C语言程序设计,其中有一名同学通过自学以优秀的成绩通过了国家计算机二级C语言。本文递归算法——汉诺塔问题,利用RAPTOR仿真环境,培养学生利用计算思维能力独立学习、独立解决实际问题,对后续课程的学生做好了一定的铺垫作用。

参考文献:

[1]WING J M. Communications of the ACM.2006(3):33-35.

[2]战德臣,聂兰顺计算思维与大学计算机课程改革的基本思路.中 国大学教学.2013年第2期

[3]林旺,孙洪涛.基于软件应用的计算思维能力培养教学设计.中国 电化教育.2014(11):12 2-126

猜你喜欢
计算思维
高中信息技术课堂中计算思维能力培养问题的探讨
公安专业学生计算思维能力培养对策初探
基于计算思维的多媒体技术及应用课程教学模式研究
信管专业计算机科学概论课程的教学改革实践
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养