admin 管理员组文章数量: 1086019
2024年4月19日发(作者:setinterval读法)
信息技术课
tougao4@
从1至100的累加
看计算思维的教学实现
王荣良 华东师范大学开放教育学院
编程学习是进入计算机专业领
域的入门课程。大学一年级计算机
专业的学生都会学习一门程序设计
语言的课程,他们在学会一种计算
机高级语言的同时,也大致理解了
计算解决问题的一般过程。我国基
础教育也开设了类似的程序设计课
程,该课程从早期的BASIC语言、
LOGO语言,到后来的Pascal语言、
VB、VC,直到现在流行的Scratch、
Pathon,已经有30多年的历史了。
在这30多年中,有关中小学生开展
计算机编程学习教育价值的争论一
直就没有停息过。当前,计算思维
教育的兴起给中小学生学习编程提
供了新的价值取向。显然,计算思
维作为计算机科学的学科思维,主
要是在计算机专业的知识与技能学
习过程中渗透的。因此,编程学习也
应该是计算思维教育的有效途径。
但这并不等于说,学习编程就一定
能培养计算思维。
在程序设计“循环结构”
教学中,有一个经典题例,就是
的求和。如果
在高中阶段学习该知识点,学生们
都已经知道了高斯公式,并且还会
38
中国信息技术教育
质疑这一算法为何不用高斯公式
而要用笨拙的循环,那么,是不是
可以说,用循环就是体现计算机解
决问题的思路,用循环就是体现计
算思维呢?教师不妨站在计算机科
学基础概念的角度,对计算机进行
的求和操作进
行细致的分析。
第一,这是编程学习中的一个
典型例子,但这个典型例子引用的
初衷并不是从计算思维教育的角
度出发的。其典型之处在于为讲解
循环结构提供方便,非常直观地提
供了循环结构的基本要素,即循环
体和循环条件。例子本身很容易理
解,是否正确实现也很容易判断。
因此,该例子的教学功能是学习一
个典型累加求和的算法,同时也帮
助学生理解循环结构。仅就这点而
言,这个例子对计算机执行循环的
过程的技术细节理解有帮助,但不
能算是计算思维的典型例子。
第二,关于循环结构实施
求和的价值
判断问题。评价一种计算的优劣,
时间开销和空间开销是两个重要
指标。对于已知计算量的运算,如
本例中的99次求和运算,是可以用
顺序结构来完成的。而站在计算开
销的角度来考虑,用顺序结构来解
决,时间开销是小的,但程序代码
所占的存储容量较大。那么,为什
么要用循环结构来实现呢?一方
面,是因为很多应用是不能用顺序
结构来简单代替的;另一方面,是因
为不便于人的思维和表达。要让计
算机为人类做事,就需要让计算机
知道做什么,这就需要简约、明确
地告诉计算机,这种表达方式是为
人服务的,也是人的思维。这种形
式化表达是计算思维的一部分,这
也从一个侧面说明计算思维是人的
思维,而不是计算机的。
第三,在实际应用中,如果已
知高斯公式,那么应该用高斯公式
来计算,还是用这种求和的方法来
计算呢?答案是肯定的,那就是用
高斯公式来计算。因为用高斯公式
来计算,就不需要用累加的方法来
实现,降低了计算的复杂度,这也
是计算学科追求的目标。这一点在
教学过程中应该向学生交代清楚,
不能让他们产生这样的错误理解:
不用高斯公式,而采用求和的笨办
“1+2+3+……+100”
“1+2+3+……+100”
“1+2+3+……+100”
法,是为了满足计算机的需求,计
算机总是用最原始的方法来解决问
题的。事实上,如果一个计算问题
有现成的解析公式,那么计算机肯
定用现成公式。用高斯公式来表达
“1+2+3+……+100”的求和,是一
种建模的过程。这是在计算公式层
面上的建模,而建模也是计算思维
的一部分。
第四,同样的问题,如果学生并
不知道高斯公式,那么教师教学过
程的开展可能有两条途径:①采用
累加求和的方式用循环结构实现;
②先推导出高斯公式,然后用高斯
解析式,直接用赋值语句编程。用
累加方法还是用公式计算,取决于
人的需要,或者说哪种方式更能为
人解决问题提供便捷。这两种教学
的方式,体现了计算思维不同的侧
重点:①在于循环结构的形式化表
达;②对有待解决问题的抽象和数
学建模的过程。当然,有一点还是
需要注意的,就是在教学过程中推
导高斯公式所花费的开销。如果需
要花费相对比较多的时间和精力去
推导高斯公式,那么整个解决求和
问题的教学过程就成了数学课,而
不是程序设计课。
第五,有一些例子很难用数学
解析式来表达答案,但可以用循环
结构来实现。例如,上海高中信息
科技教材中有关“循环结构”的典
型例子:一张单据上一个5位数字
组成的编号,其千位数和百位数处
已变得模糊不清,只知道这个5位数
是57或67的倍数,求这个满足条件
的5位数。这个问题可以通过两重循
环枚举算法来解决。但对于另外一
个形式的问题——求解一元二次方
程,如果已知存在整数解和解的范
围,那么可以用循环的方法来解决;
如果学生已经学习了一元二次方
程的求解公式,那么应该直接用公
式,使用解析法来求解,因为这种
方法更直接,效率更高。更进一步,
针对“鸡兔同笼”的问题,对小学生
而言,可以用枚举的方法来解决,
这是一个典型的发挥计算机特长
弥补人的智力的解决问题的方法,
在培养学生应用计算机解决问题的
能力的同时,也反映出利用计算机
解决问题这一思想,即让计算机用
构造的方法通过简单重复计算来解
决人类复杂的智力问题;反之,如
果让学生先学习推导反映“鸡兔同
笼”问题的方程式,然后用解析法
由计算机来实现,那么,这主要就
是考验学生的奥数技能了。
综上所述,用循环的方法实现
的累加求和,
是一个用于编程学习的典型例子,
但不能算是计算机实际应用的典型
例子,因为在实际程序实现中,一般
只会在已有循环结构实现其他功能
的情况下用这种方法,很少会专门
编写循环语句只为单一累加求和。
其实,更为典型的应用是计数器,
即i=i+1的实现,在循环体中计算循
环次数,这是一个将人解决问题的
方法用计算机来实现的实例。
tougao4@
信息技术课
从计算思维教育的角度出发,
其关键在于能对需要解决的问题
进行抽象,形成计算机能够理解的
形式化表达,并且让计算机自动地
去计算。至于是用循环结构累加实
现,还是用高斯公式来编程序,则
取决于完成这一计算的工作基础以
及价值判断,这两种实现方法都能
体现计算思维。
在计算思维成为热点的当下,
在大规模开展计算思维教育的时
刻,教师需要对计算思维的本质和
细节仔细研究,而不是简单地把编
程教育理解成计算思维教育。周以
真教授提出的“计算思维是运用计
算机科学的基础概念进行问题求
解、系统设计,以及人类行为理解
等涵盖计算机科学之广度的一系列
思维活动”不是一句空洞的话,而
是基于对计算机科学基础知识和
基本理论的理解。对中小学生而
言,学习Word、Excel等应用软件
的使用,只是体验了计算机技术给
人们生活、学习带来的便捷,而学
习计算机编程,则是为理解计算
机学科这个神秘世界打开了一扇
小门。教师若要把计算思维有效
地传达给学生,让学生在学习计
算机学科知识的前提下接受计算思
维教育,就要对计算机学科知识有
一个清晰的认识,对计算过程有一
个明确的判断,对计算思维有全面
而深刻的理解。
MAY 2017 NO.09
39
“1+2+3+……+100”
版权声明:本文标题:从1至100的累加看计算思维的教学实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713464502a635988.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论