何广林 周明凤
编程思维是计算机科学中解决问题的思维方式,并不是编写程序的技巧。具有编程思维的人可以清楚且具体地描述问题并将问题的解决方案表达为信息处理的过程,这个理解问题、寻找路径的思维过程,可以将复杂的大问题分解为更易于执行和更好理解的小问题。
我国数学教学课程标准中提出的数学思维能力主要是指:会观察、实验、比较、猜想、分析、综合、抽象和概括;会用归纳、演绎和类比进行推理;会合乎逻辑地、准确地阐述自己的思想和观点;能运用数学概念、思想和方法,辨明数学关系,形成良好的思维品质。
国家将编程教学纳入小学课堂,不仅仅是在三维设计、人工智能等信息学科纷纷走进孩子课堂后的必然,也是要将编程的计算思维与学生的学习和生活进行深度融合,让学生更好地成长。尤其是积极寻求编程与数学知识的结合点,开展有效的小学编程课堂教学。
现以“已知连续几个奇数的和,求出这几个数”问题为例,探讨如何在编程课堂教学中有效地培养学生的计算思维。
例:已知三个连续奇数的和是99,这三个奇数分别是多少?(《思维训练》五年级下册,西师版)
1.观察分析法:从问题中可以直接看出每个数大概是三十几,把31加上33,再加上35,刚好就是99。
2. 求平均数法:三个数的和是99,除以3得到它们的平均数,也就是中间那个数,然后减2、加2分别得到其余两个数。
99÷3=33 33+2=35 33-2=31
3.设未知数法: a,a+2,a+4,……
设第一个数是a,得到第2个奇数a+2,第三个奇数a+4。
如果已知有4个或5个……连续的数的和,用上面的方法能快速地求出这些数吗?
学生选择方法尝试。
问题:已知连续4个自然数的和为134,这几个数分别是多少?
1.这4个数是相邻、连续的;
2.相邻两个数的差值是“1”;
3.采用设未知数法,设第一个数为“a”,后面三个数依次为:a+1,a+2,a+3
4.它们之间相加的和:a+(a+1)+(a+2)+(a+3)=134
根据问题分析可以得出:
1.在“数据”类里新建一个全局变量“a”来表示第一个未知数;
2.在“a+(a+1)+(a+2)+(a+3)=134”中要用到“运算”逻辑运算符
3.这4个数相加的和为“134”,也就是当程序运行后,不断地循环执行判断,当有4个数相加的和为“134”时,程序跳出循环体,显示程序执行结果,所以应该运用:
4.“重復执行直到”中的条件就是:
a+(a+1)+(a+2)+(a+3)=134,要依此条件搭建;其中循环条件是:让程序重复执行多次后直到满足和为“134”这一条件;
5.程序执行结束后,显示结果:
在“新建对话框”中的内容应该是这4个数,数与数之间用“;”号隔开,即:
1.设置舞台背景图片,添加角色。
2.新建变量“a”,依次搭建4个数。
3. 搭建程序(如下图)。
4.设置“等待0.1”秒是为了看到程序不断重复执行的过程。
5.显示程序运行结果时,在“新建对话框”中把4个数放在一起并用“;”号隔开,便于观察。
本教学案例让学生在解决同一类型问题的过程中体验到了数学和编程解题不同的思路、方法。在“分析问题—编程思路—编程实现—程序执行”的编程中学会将问题化繁就简,充分认识 “重复执行”“重复执行()次”的区别,理解和解决了“重复执行直到<>”这一教学难点,如“庖丁解牛”般将问题分解,建构模式,找出解决方案,初步培养了小学生编程中的计算思维。