Scratch第十五讲:制作新的积木

网友投稿 2018-09-15 00:12

最近掀起的编程热,想必大家都知道,作为家长,肯定都不希望自己的孩子输在起跑线上,自然希望孩子也能学习编程,掌握一门技能。但是目前的情形却有些脱离轨道了,象奥数一样的又一次被裹挟的趋势开始形成。小学也要开编程课,初中的信息竞赛课外班的资料CC哥简单阅读了一下,还是相当有难度的,估计公司的程序员也不见得能搞得定。看到这些,作为一个资深的IT人士,CC哥还是挺焦虑的,不希望再把编程变成了又一个套向孩子的枷锁。

所以CC哥重申一下,对于成人来说,编程是工具,是谋生手段,谋生的手段多种多样,不是只有编程一种。所以如果你的孩子没有兴趣,完全不要强迫他去学,真心没有必要。

对于孩子来说,现在的学习压力真的很大,语文,英语,数学已经是做不完的作业,而且现在赶上课改,几乎所有的学科都要考试,CC哥已经听说几乎所有的初一的小朋友不论好生差生,几乎作业都要做到11点。而且,语文,英语,数学,物理的培训班几乎是标配。这种情况下,再把小孩拉到编程班,您的孩子真的有时间吗?

CC哥建议,在小学,如果您的孩子语数英不过关,还是先把时间花在语数英上吧,这三科学不好,大学都考不上,编程没有任何意义。

另外,编程能力的好坏跟学习的早晚没关系,编程是一门工具,语言发展很快,你现在熟悉了pathon,十年之后pathon是否还流行没人知道。再说就你现在基础学科的知识,恐怕在编程里也没什么实用价值。所以如果是考虑未来的工作,实在没什么意义。

之前的帖子,CC哥就讲过了,学习编程就是一个能力培养,逻辑思维,专注力,创造力。但是这些能力其实学奥数一样培养,效果更好,更实用。但是唯一的区别是编程小孩子更有兴趣去学,因为好玩,而且是正向激励,比如做一个小程序,马上就可以运行,马上就看到效果,马上就能有成就感。如果是培养能力,最好的学习方式就是自学加上指导,这种教学方式在国外叫PBL,Problem-Based Learning,也就是基于问题的学习方式,而不是传统课堂。但是目前编程的培训机构为了取悦于家长(家长永远希望上课的时间长一些,上课多教些知识),还是慢慢走向了传统的教学模式。至于孩子的能力是否培养出来,反而因为不好衡量,反而被忽视了。

CC哥认为学编程对能力培养完全是可以衡量的,就一条:如果孩子学了编程,语数英的成绩大大提高!那就是有用,如果没有提升,那就是浪费时间精力,趁早放弃!

CC哥的开这个公众号的目标,就是给家长和小朋友一个真实的编程学习,把编程当成一种有益的爱好,通过学习编程提升自身的思维能力,专注力和意志力,通过能力的培养来提升基础学科的成绩。所以CC哥会把培训的重心放在一些编程的逻辑,细节,还有工具的掌握上,而不是放在做复杂任务上。CC哥希望能够通过培训,让小朋友掌握自学的能力,并且通过对逻辑和细节的专注学习,提升学习能力和学习品质。之所以不做大任务,一是觉得没必要,而是觉得小朋友真心没时间,毕竟是课业繁重,别把时间耗在编程上,毁了孩子的前途。


制作新的积木:

CC哥真的很佩服麻省的scratch团队,这真是一个伟大的作品,在教育领域具备划时代意义,让小朋友的创造性获得了无限发挥!

我们搞过编程的都知道:这个制作新积木,就是计算机编程的自定义函数嘛!

函数是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。

一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。(摘自百度百科)

有了这个新积木,用scratch做大型程序就很方便了。CC哥现在开始介绍这个功能的用法:

https://cdn.china-scratch.com/timg/180917/0012411234-0.jpg

在更多积木类里点击制作新的积木,就弹出一个对话框,把选项点开。这就是一个积木的定义,在新积木里输入文字,积木的名称,选项中是可以添加的参数类型。所以新积木首先包括两项内容:名称和参数!举个例子:让我们做一个画一个多边形的积木吧,那么积木名字就可以起:画一个多边形。但是画几个边?画多大呢?这就是两个参数,几边形?和边长?。

https://cdn.china-scratch.com/timg/180917/0012416040-1.jpg

字一定要尽量写清楚,这是一个好习惯,否则程序一大,做的积木多了,自己反而看不懂自己做的积木式干嘛的了,而且,大程序基本都是需要团队协作的,所以你起的名字还得队友一眼就能看懂才好。名字中可以添加数字参数,字符参数,布尔参数,和文字段,这些以后再一一细说,今天的例子就是两个数字参数:边长和机边形。点击确定,就生成了一条新的命令。

有了新的指令,我们就需要给指令来做指令内部的程序了。

https://cdn.china-scratch.com/timg/180917/0012412a3-2.jpg

这段指令很简单,但是注意的是其中移动指令中的参数和重复执行指令以及右转指令中的参数,需要把你的名称中的参数拖入对应的位置。

好,新建的指令的内容也封装好了,剩下的就是在程序里调用了。

https://cdn.china-scratch.com/timg/180917/0012413350-3.jpg

调用非常简单,只需要把这条新建的指令积木,拖入你的程序里就可以了。

新建积木也是自定义函数,可以大大简化编程。在很多设计里都可以用到。比如一个固定的复杂运算公式:就三角形面积,或者梯形面积。你都可以用新建积木的方式去做。做一个新的积木来算所有三角形的面积,只要输入底和高。圆形面积:只要输入直径。游戏里也有很多地方可以用到自定义的指令,比如之前我们做的有重力干扰的弹跳轨迹,只要给出初始速度和发射角度,就可以通过自定义指令画出重力轨迹。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com