于恺
计算机的主要工作之一是科学计算,音频、视频、文字都是在计算机内部通过一定的计算处理呈现出来的,而整个计算机功能开发的核心是程序设计。小学生程序设计的能力有限,认知程度达不到,如果直接采用编程语言教学不利于学生对程序设计产生兴趣,而选择模块化编程方式,可以让学生有清晰的编程思路,也可以让学生添加一些有趣的事物来展示程序的运行结果,使他们乐于接受、学习。
1.数学计算思维与程序计算思维有很多共通点
小学数学的内容中以加减乘除为主。程序运行时,是计算机在执行相应的指令,如果让学生明白只要将自己的数学知识加以优化就能够完成程序的编写,给计算机相应指令,那他们就不会出现畏难情绪。计算主要是由两方面组成,一方面是数值计算,另一方面是逻辑计算,很多计算内容是学生已经在数学知识中学习并掌握的,逻辑计算就是一种语言逻辑判断,学生已经在语言学习中掌握了连词“而且”“或者”“非”的概念,只需将程序语句与日常用语加以联系,学生就能够明白相关程序语句的用意。
2.利于将已学数学知识用于掌握基础编程计算
第一类数学知识是代数内容。学生在小学一到三年级,学习了四则运算、取余、判断大小等基础运算,掌握了质数、单双数、闰年等计算,已明白了计算的原理,而编程就是让学生将数学计算思维转化为编程计算思维。学生先运用已掌握的数学知识来完成程序的制作。例如,判断质数的问题,大多数学生会采用一个数一个数的整除,少部分学生会采用关键数字2、3、5的方法去判断质数。学生利用编程语言的方式是用一个可变数字来进行判断,再观察用于判断的数字是否有余数,如果有余数那么它就是一个质数,如果没有余数它就是合数。学生利用数学知识可以完成编程中的科学计算。
第二类数学知识是几何内容。借助Scratch编程方式,绘图功能很容易实现。教师在讲授几何图形时,可以让学生在绘制过程中发现、探索几何图形的相关原理。在之前的编程学习过程中,学生已经学习了Scratch的绘图功能,那么如何让他们使用编程思维完成几何图形的绘制呢?例如,三角形分为锐角、钝角、直角三角形。學生绘制钝角三角形时,只需要绘制第一条边,然后让小猫旋转到相对应的角度即可,旋转的角度为90度到178度之间。通常,学生绘制的时候会选择一个固定的角度,这时,教师可以告诉学生,如果运用编程思维,可以用随机数确定角度。这样学生不仅理解了随机数的使用,还巩固了数学角度的知识。这时再让他们使用随机数绘制锐角三角形,他们对知识的理解会更深刻。
通过知识的过渡,学生对编程认知从感性思维上升到理性思维,学生对编程有了新的认识,不再只是利用其制作游戏,而是将其作为帮助运算的工具。把数学知识运用到编程中后,教师可以引导学生进行更深一步探究,尝试对数字、文本、条件的定义进行挖掘。例如,编程需要重要数据处理——函数的运用,学生不一定能理解,但如果教师跟学生说未知数,他们可能会联想到方程式,而方程式就是函数的一种表达方式。为了让学生提前理解函数部分的内容,笔者选择了一些与函数有关的程序。例如,抛物线的学习,在Scratch背景图库中有XY坐标图的背景,学生在移动中运用点坐标在图中确定移动到的位置就可以制作出抛物线。函数的学习大多需要使用绘图的方式,编程可以使知识更容易呈现。学生能够根据公式制作出程序,并演示抛物线的轨迹。这虽然属于初中学习的知识,但教师可以通过画图让学生理解函数的概念和公式。
程序解决的是大量的计算和数据处理,计算机程序设计中需要掌握的基础就是算法,这里的算法不只是算数方法。计算机的算法不仅是优化程序使用的方法,而且是优化计算程序的方法,算法很多内容源自数学知识里的最优结构,强调能使用最少且逻辑最清晰的程序语句来完成相关程序设计。数学教学不只是数学知识的讲授,更多的是培养学生解决问题的逻辑思维。学生思考问题的方式不同,通过学习算法的内容能够形成处理简单问题的思维,最终呈现的程序设计思路每个人都是不相同的,所以算法正确的基础就是学生能够根据问题设计出程序的整体思路。
小学阶段的计算思维培养可以借助数学知识,通过程序设计拓展学生的知识,并使其将自身所学的知识与程序结合延伸出新的知识,让学生在进行程序设计的同时提升自身分析数据、处理数据、输出数据的能力。