图表示的内容 3-6,由于缺少工具,学生手工 RAPTOR 编制的程序可以转换成多种常见的高级绘制的流程图无法被验证,教师批改作业的工作 语言(C、JAVA、C 等),甚至可以生成独立量虽然很大,但实际上无法对算法设计的正确性 的可执行程序。
使得学生只要编制一次 RAPTOR形成有力支持,在后续的程序设计内容教学中, 程序,就可以自动生成其他高级语言的程序,为一般教师也无法利用流程图对所有程序例题求解 学生根据不同运行环境使用不同程序设计语言打思路进行表达。
下基础,并且学生可以在不同版本的程序语言环 引入 RAPTOR 后,这种状况可以得到根本性 境中,对程序进行测试和效率分析。
的改善,基础流程图算法和程序设计完全统一到 从另外一个侧面来看,这类基于流程图的可该环境中,这对所有的新生来说,流程图、程序 视化程序设计环境的引入,可能会对目前大部分设计、算法设计和算法分析的一体化将会形成一 高校开设的程序设计基础课程造成冲击,并迫使种全新的体验。
所以在计算思维技能 1 训练中, 这类传统的计算机基础课程的教学内容向更高的RAPTOR 成为算法思维的重要实践工具。
层面转化。
3 对大学计算基础教学中程序设计内容 4 对大学计算基础教学中算法复杂性分的影响 析内容的影响 目前的大学计算机基础教材大部分采用某 在新的大学计算机基础课程中,效率作为计 4 6种 高 级 程 序 设 计 语 言(如
VB6 、
VB2008 或 算机科学的核心概念之一,是需要向非计算机专 5C 作为程序设计入门的教学平台,但是,这些 业学生介绍的重要内容 1。
而在已经出版的此类平台普遍存在语法结构复杂、程序构架平台基 教材中,只有有关计算复杂性的一般性介绍 5-6,础庞大、对操作系统存在依赖性、作为入门的 或 结 合 例 题 进 行 定 性 分 析 4, 鲜 见 有 定 量 分程序设计门槛较高、平台技术进化过快导致的 析程序或算法容易老化、无法作为通用的算法测 和估算,更没有实验和验证的教学环节或内容。
试平台等问题。
RAPTOR 的引入大大减轻了学生学习程序语法学 而 RAPTOR 真正做到了程序设计语言语法 习的负担,教师可以把更多的时间放在算法设计、集合的最小化和原子化 所有表达式执行的次数 算法效率分析和算法优化的教学上。
统计。
例如,RAPTOR 的数据类型只有两种—— 在 RAPTOR 程 序 设 计 环 境 中, 设 计 有 入 门 (Novice)、中级(Intermediate)和面向对象 Object 计 算 机 教 育 58 Computer Education 2012 Oriented 三种模式(Mode),分别支持初期程序(不支持带参数的用户自定义过程)、中级程序(支持带参数的用户自定义过程,可以据此设计递 归算法的程序)和面向统一建模语言(UML)的 对象程序设计,因此,目前大学计算机基础教科 书中的大部分程序和算法设计概念可以通过它来 实现。
而且,RAPTOR 的原子化操作统计可在程 序结束时自动计算所有操作步骤的统计数据,这 为讲解算法复杂性估算提供了实际计算案例的运 行结果对比。
例 如, 在 有 关 算 法 的 课 程 作 业 中, 笔 者 要 求学生自选题目进行算法设计,其中有同学递 交了一个有关 1 000 之内完全数的算法,设计的 算法可以得出正确的结果,但需要运算上百万 次(1 014 070 symbols evaluated)。
由 于 这 个 算 法具有非常明显的运算步骤显示性(图 1),笔 者将此作业的流程图作为典型算法案例,分析 其算法复杂度 O0.5N2,可估算的运算次数为 1 124 995.5, 这 与 使 用 流 程 图 进 行 估 算 的 结 图 1 使用 RAPTOR 实现的 1 000 内完全数算法(优化 果 前)的运算步骤 只有 10 的差距,而且产生误差的原因则很容 易找到 图 2)。
在此分析的基础上,再引入欧拉 Leonhard Euler 的完全数获得公式:如果 2p-1 为 质数,那么(2p-1)×2p-1 便是一个完全数。
依此 进行完全数算法的优化设计,在同样数据范围内, 只需要进行 252 次表达式运算,即可获得同样结 果,计算效率提高 4 000 余倍。
我们在对优化后的程序的复杂性进行分析 图 2 寻找估算误差的原因,图中第 6 步是一种不完全 时,往往需要更高层次的计算思维和计算工具。
执行运算 在运行使用欧拉完全数获得公式的算法后,算 法复杂性的估算会遇到更为复杂的情况,因为 求素数的计算复杂性不是一个单调增长的函数, 5 结语 这需要引入曲线拟合方面的工具来进行计算复 杂性的估算。
由于现代大学生在充满图形的文化环境下成 在 RAPTOR 引入后,这种算法复杂性估算、 长,基于流程图的可视化程序设计环境对学习大 验证和改善,可以成为训练学生思考计算效率的 重要方法 ,从而为学生的计算思维能力培养打 学计算机基础的学生具有很强的亲和力。
在国外 1 的计算机基础教学中,RAPTOR 工具应用训练实 下基础。
际上只用一次实验 9,在笔者的教学实验中,学第 14 期 教育与教学研究 59生也是在第一次实验课接触到以后,即有一部分 计算机基础教育中应用的时间并不久,我们可以学生开始用它来完成算法设计作业。
RAPTOR 在 期待有更多的应用成果问世。
参考文献:1 顾刚 姚普选 陈文革 等. 大学计算机基础M. 北京: 高等教育出版社 2008: 218-247.2 吴宁. 对“大学计算机基础”教学中部分问题的探讨J. 中国大学教学 20076: 43-45.3 顾刚 程向前 杨忠孝 等. 大学计算机基础M. 2版. 北京: 高等教育出版社 2011: 1-34 301-330.4 战德臣 孙大烈 等. 大学计算机M. 北京: 高等教育出版社 2009: 42-56 104-132.5 陆汉权. 计算机科学基础M. 北京: 电子工业出版社 2011: 119-143 214-220.6 吴宁 崔舒宁 程向前 等. 大学计算机基础M. 北京: 电子工业出版社 2011: 88-114 116-146 148-182.7 何钦铭 陆汉权 冯博琴. 计算机基础教学的核心任务是计算思维能力的培养《九校联盟C9计算机基础教学发展战略联合 声明》解读 J. 中国大学教学 20109: 7-9.8 陈国良 董荣胜. 计算思维与大学计算机基础教育J. 中国大学教学 20111: 7-11.9 Thomas J Cortina. An Introduction to Computer Science for Non-majors Using Principles of ComputationC. SIGCSE’07 March 7–10 2007.10 Carlisle Martin C Wilson Terry A Humphries Jeffrey W et al. RAPTOR: A Visual Programming Environment for Teaching Algorithmic Problem SolvingEB/OL. 2011-10-29. http:// http://www.usafa.edu/df/dfe/dfer/centers/accr/docs/carlisle2009a.pdf. (编辑:彭远红)(上接第55页)参考文献:1 喻征. 对近十年我国关于E-learning研究的思考J. 电化教育研究 20118: 58-62.2 谭明杰 邵培基. 基于E-learning 2.0 理念的远程学习管理系统构架设计J. 中国远程教育 20119: 66-70.3 中国高等院校信息系统学科课程体系课题组. 中国高等院校信息系统学科课程体系M. 北京: 清华大学出版社 2005:25-30.4 Downes S. E-learning 2.0J.eLearn Magazine 200510:1.5 Pavel Dráil Pitner Tomá. E-learning 2.0: Methodology Technology and SolutionsEB/OL. 2010-04-26.http://www..muni. cz/tomp/l2/e-learning2.0/icte/l2 _platform.pdf.6 何克抗. 从Blending Learning看教育技术理论的新发J. 国家教育行政学院学报 20059: 12-16.7 姜永常. 基于用户体验的知识构建:Web2.0环境下对知识构建原理的再认识J. 情报学报 2010 295: 872- 879.8 徐守萍 林伟君 温聪源. 基于信息整合的经管类实验教学共享平台J. 现代教育技术 2010 209: 146-148.9 赵前程. 经管类专业管理信息系统课程现状分析与实验内容设计J. 中国管理信息化 2009 1214: 128-129.10 IEEE. IEEE 1484 EB/OL.2012-04-26. http://www.ieeeltsc.org:8080/Plone.11 Advanced Distributed Learning. SCORM 2004 3rd edition EB/OL. 2012-04-26. http://www.adlnet.gov/capabilities/scorm/ scorm-2004-3rd.12 ElggEB/OL. 2012-04-26.http://elgg.org.13 黄映玲. 国内Moodle研究之内容分析J. 现代教育技术 2011 216: 50-53.14 PreziEB/OL. 2012-04-26.http://prezi.com/. (编辑:彭远红)