友情提示:680元/半年,儿童学编程,就上码丁实验室。
Scratch具有入门简单、人机互动、可视化编程的特点,非常适合用来模拟现实。无论你是天真可爱的小孩子,还是满脸胡渣的成年人,你都能用它来表达你的想法,展现你的世界。孩子们通过Scratch来模拟这些场景,可以达到灵活应用数学、物理等学科知识、提高观察能力和表达能力、学习编程思想的目的。
一、 本案例适合对象
1年级及以上。
没错,1年级及以上。洞察万物,不同年龄段、不同学历的人都有自己的理解,你画的向日葵和梵高画的都是向日葵,每个人都可以画向日葵。实在画不来,还可以种向日葵。
二、 观察世界
2.1 大道理
万有引力定律(lawofuniversalgravitation)是物体间相互作用的一条定律,1687年为牛顿所发现。任何物体之间都有相互吸引力,这个力的大小与各个物体的质量成正比例,而与它们之间的距离的平方成反比。如果用m1、m2表示两个物体的质量,r表示它们间的距离,则物体间相互吸引力为F=Gm1m2)/r2,G称为万有引力常数。
哦!你还是小学生,不懂万有引力,也不懂自由落体运动。没关系,这并不是你探索科学知识的拦路虎。我们接下来要做的,就是从最简单的方法做起,去了解和认识这个世界。你要做的就是仔细观察,动脑思考,找到规律,最后用Scratch展现出来。这就是模拟现实的过程和乐趣。
2.2 身边事
找到一个乒乓球,把他托起来,然后松开手。你会发现球向下坠落,并且越来越快,当他碰到地面后(如果这个地面足够平整),它会垂直反弹起来,并且越来越慢,在它快要接近原来跌落的位置时,它已经如强弩之末,无法继续向上冲刺。接下来,它又开始了坠落,反弹,坠落,反弹……..只是反弹一次比一次更矮(低),最后停在了地面上。就像累坏了一样,不再动弹。
三、寻找规律
以上过程反复做几次,仔细观察,直到我们找到了乒乓球坠落和反弹的规律。
规律一:球从高处向低处坠落,再从低处向高处反弹,往返运动。
规律二:球每次反弹都会比上一次矮一截,并且越来越矮,直到最后停在地面。
规律三:在球运动过程中,它所处位置越高移动速度越慢,位置越低移动速度越快。
四、编写程序
用Scratch2.0新建一个程序,选择一个Ball角色。绘制一条水平粗横线,命名为“地面”。
我们试着来模拟小球坠落的过程吧。
4.1 最简单的办法
下边的程序保存命名为“乒乓球坠落001”。
这段程序可以用来模拟乒乓球从高处坠落,并且反弹3次,最后停在地面。这已经很好的表现了规律一的特征。一年级的小朋友是能够做到这一步的。
程序中的y坐标参数与“地面”位置有关,可以拖动乒乓球来获取合理的位置坐标值。
在运行程序的过程中,会发现乒乓球每次反弹高度都一致,不满足规律二的特征。那么就需要改进程序啦!
4.2 改进程序
下边的程序保存命名为“乒乓球坠落002”。
在本程序中使用了变量。
用来“起始高度”变量记录乒乓球上一次坠落位置的y坐标值。用“降低高度值”变量记录乒乓球每次递减的高度值。
还是以往返3次来计算,乒乓球从y=100的高度最终会停止在y=-100的位置,一共移动了200的距离。每一次降低的高度应该是200/3=66(其实67也可以)。
继续调试程序,现在已经能够满足规律二的特征了。如何实现规律三,似乎很难。
的确,如果继续用滑动积木
是很难实现规律三的。因为滑动积木总是让角色匀速移动,所以我们必须用自己的方法控制角色移动的速度。
4.3 程序进阶
下边的程序保存命名为“乒乓球坠落003”。
在本程序中,通过直接使用y坐标值来控制乒乓球运动的规律,实现了规律三的效果。同时体现了速度、加速度、位移之间的关系,以及速度、加速度具有方向性。这对孩子理解相关物理知识颇有益处。教科书上的定律成了我们编写程序的指导思想,这是对知识的应用,是啃书本的一种进化。
在程序中使用角色的方向、坐标变量可以让程序更为灵活,功能更为强大,这适合进阶学习。加入声音特效,还可以让程序更为生动。
到目前为止,貌似程序已经写完,乒乓球坠落的过程已经模拟实现了。
可是在调试程序的过程中,我还是发现了一些纰漏。比如程序里面的参数设置高度依赖于“地面”角色的位置,倘若改变了地面的位置,程序就可能出错。还有乒乓球可能穿过地面,不符合现实情况。
于是我又进一步改进了程序,自定义了角色移动功能,实现了动态调整地面高度的功能。
4.4 吹毛求疵
下边的程序保存命名为“乒乓球坠落004”。
在本程序中重新定义了移动,意图让乒乓球角色每移动1步就检测一次碰撞条件,避免在上下改变“地面”位置时,乒乓球会错过检测,导致其陷入或穿过地面。为了让程序运行流程,需要勾选“自定义移动”积木的“运行时不刷新屏幕”选项。
五、 总结
用Scratch模拟现实,是一件富于挑战且充满乐趣的事情。功能的实现不仅仅是程序编写能力的体现,同时也是学科知识的综合体现,两者缺一不可。
通过用Scratch模拟现实,能够激发孩子们学习的兴趣,加深对知识的理解,从学习过渡到应用,从学习中找到快乐。同时,孩子们有了新的展现自己想法的平台,会培养他们刻苦专研的良好学习品德,学会与人分享、协作、表达、记录。
在模拟现实的过程中,应该由简到繁,由易到难,侧重于功能实现,界面不宜太花哨,这样可以节约时间,集中注意力。
家长们简单的认为孩子学编程就是玩游戏,其实是一种片面的想法,这可能会扼杀孩子的想象力和创造力。
呵护孩子们的想象力和创造力,激励孩子们的表现欲望,让孩子们在编程中快乐成长、学习。家长朋友们,一起努力吧!
六、 程序链接
乒乓球坠落001:https://kada.163.com/project/1417095-954149.htm
乒乓球坠落002:https://kada.163.com/project/1415119-954149.htm
乒乓球坠落003:https://kada.163.com/project/1416115-954149.htm
乒乓球坠落004:https://kada.163.com/project/1415121-954149.htm
(文中部分图片来自于网络,对作者表示感谢。若有版权问题请联系我,我将予以纠正。)