信息技术中基于Raptor软件的算法探究
2018-10-10敖培
敖培
摘要:本文引入Raptor软件绘制算法流程图,以克服传统流程图无法直观体验算法运行实现效果的缺陷。通过枚举算法一课教学设计,详细介绍了基于Raptor软件提升学生算法思维能力的方法和过程,对于高中算法教学具有一定的借鉴意义。
关键词:算法思维;Raptor软件;信息技术教学
中图分类号:TN911.2 文献标识码:A 文章编号:1007-9416(2018)07-0132-02
1 基于Raptor软件的算法思维培养教学设计案例
Raptor是一种基于流程图的可视化程序设计工具。[1]将Raptor引入到上海高中《算法与程序设计》课程教学中能很好地解决由于算法不能运行,而造成学生对算法理解不深入的缺陷。这里以枚举算法一节教学设计为例,尝试利用Raptor软件,围绕“百钱买百鸡”的实际问题解决,按照文献[2]中给出的算法类问题求解七阶段,展开面向学生算法思维培养的教学。教学过程包括以下三个部分:
1.1 讲一讲
Step 1:分析问题。在此阶段要让学生明确哪些问题是算法类问题。对照枚举算法思想,引导学生分析出百鸡买百钱问题是属于枚举算法可以解决的算法类问题。
Step 2:数学建模。该阶段要使学生理解什么是数学建模和数学建模的重要性。对于百鸡买百钱问题,可以先让学生根据已有数学知识列出一个数学方程组:
Step 3:算法策略设计阶段。此阶段要让学生理解式(1)适合采用枚举法求解。可以引导学生观察式(1),分析枚举对象、每个枚举对象的范围和判定各枚举对象组合是否是问题解的判定条件。可能得出两种观察结论:
(1)确定3个枚举对象分别为三种鸡的数量,每个枚举对象的枚举范围为1≤i<20、1≤j<33、1≤k<100,判定条件为三种鸡的总数和买鸡用去的钱的总数。
(2)由于注意到三种鸡的和是固定的,只要枚举两种鸡,第三种鸡就可以根据约束条件求得。因此,确定2个枚举对象分别为两种鸡的数量,每个枚举对象的枚举范围为1≤i<20,1≤j<33,判定条件为买鸡用去的钱的总数。
以上两种结论可以有助于学生理解不同的算法策略对问题求解的影响。
Step 4:确定数据结构和算法设计。这一阶段主要让学生理解如何精确表达算法的策略。对于Step 3得出的两种观察结论,分别三重循环嵌套分支结构和双重循环嵌套分支结构实现。采用Raptor软件设计绘制流程图的过程中,可以让学生进一步理解算法的基本操作和控制结构。
Step 5:算法实现。此阶段要让学生认识到算法实现的实现步骤。可以利用Raptor软件将设计好的两种流程图转换成C++语言的源程序,让学生理解流程图与采用某种程序设计语言设计出的程序之间的关系,认识到算法需要转换成程序后才能使用计算机求解问题。
Step 6:算法的模拟与分析。在此阶段要让学生理解对程序进行测试的必要性。在Raptor中运行两种流程图,在主控台得到运行结果。从运行结果可以观察到两种算法的运行结果均相同,說明两种算法都是正确的。
Step 7:算法复杂性分析。在此阶段要让学生学会判断算法的优劣,进而优化算法。通过引导学生观察Raptor中的运算次数,第一种策略需运算289952次,远高于而第二种策略的3596次,显然在时间复杂性方面第二种策略要优于第一种策略。
1.2 理一理
在讲一讲的案例基础上,引导学生总结枚举算法的基本步骤,分析约束条件的筛选和枚举对象的选择对算法效率的影响。进而得出加强约束条件,缩小枚举范围,可以优化算法流程,提高算法效率的结论。
1.3 练一练
为了让学生更加深入的理解枚举算法,选取三个难度逐渐增加的问题作为练习,要求学生基于Raptor软件按照讲一讲中的步骤求解每个练习问题的解。
2 结语
将Raptor可视化程序设计工具引入高中信息技术课程算法教学中,便于将抽象的算法教学进行可视化呈现,直观性的教学能够让学生更深入的体验算法的性能及优缺点,在培养学生算法思维方面发挥了积极的作用。
参考文献
[1]张光建.使用Raptor培养学生程序设计思维[J].福建电脑,2015,(8):149-150.
[2]战德臣,聂兰顺,等著.大学计算机:计算思维导论[M].电子工业出版社,2013.