柚子积木拓展少儿编程这块内容,在体验了官方的Scratch1.0、Scratch2.0和Scratch3.0,国内一些Scratch改版工具后,决定选定盛思的Labplus进行编程案例的课研实践。
==字号显示正常字体显示清晰==
Scratch3官方工具界面,在字体显示上模糊不清,修改系统字体大小会影响系统其他的正常显示,官方版本之前迭代多次,该问题一直不曾解决,持续使用伤眼。
下图为Labplus3工具界面,字体保持不变的情况下,字号调整合适,显示清晰,眼睛不适感消失。
==直接拖放Scratch源文件打开==
Scratch3打开作品源文件,使用发现需要至少3步:点击“文件”菜单,再点“从电脑中上传”,最后逐一查找到作品源文件所在位置。一是查找不方便,二是加载耗时缓慢。碰到部分源文件过大加载不了,整个工具界面就卡在“新建作品”的蓝屏中。而Labplus3中,可将任意已打开的目录中的源文件直接拖放打开,在临时查看大量源文件时非常有用!
==造型中心点支持放大和缩小==
Scratch3相比Scratch2在造型中心点的处理上不直观不方便,中心点太小,定位处理不便,造型放大缩小时,中心点固定不变。在Labplus中,将中心点调整为支持放大缩小,方便查看准确的中心十字轴点。细节虽小,实际使用时好用方便。
==新增当……某个事件发生时==
事件模块中增加脚本:当……发生时
Labplus3实现了全局性的当……发生时事件,“当发生时”,比如:侦测到碰到鼠标指针?的时候,运行某段代码。以往类似情况可能需要用到循环或者新建广播等,现在有了当...发生时事件,可以更简洁的实现:
这个事件脚本在具体案例实现上确实好用,省去很多不必要的局部代码,不再需要循环全局监听,让小朋友精力集中在实现内容上,让内容创作与思维培养占据首要位置。
==新增数值与字符串显式转换==
运算模块中增加数值…和字符串…这两个脚本。初看可能觉得用处不大,但从编程学习路径(Scratch-Python-C-C++)上来看,这就是数据类型的启蒙开端呢!
对于小朋友们来说,可以这么理解:生活中的各种人事物都可以视作字符串,当这些人事物进行运算时,我们是计算人事物对应的数值,而不是把人事物生硬叠加合并。
再比如:手机号11位数字组合使用时,大家是当作字符串来使用,不会有人报1百亿多少多少这样的号码,当11位数字进行运算时,得让电脑明白这次要当作数值来用,显式的转换过程更能让孩子加深理解。
在Python等编程语言中给变量赋值时:
变量=
变量=0
变量=’0’
变量=”0”
Scratch中
这样写,在字符串使用和运算时没什么问题,但在后续过渡到Python或其他编程语言时会存在问题,未赋值异常。
会将任意字符转换为标准的数值形式,在进行数值运算时确保正常;
会将任意字符,比如空字符串或数字,转换为带引号的文本形式。引号分为单引号和双引号。单引号与双引号在使用时不使用转义符,常用来作互补处理,如’我在”柚子积木”里看到’或“我在’柚子积木’里看到”。
在Labplus的扩展模块中,当连接外部硬件,运行没有显式转换数字与空字符串的代码至掌控板上时会出现异常,导致程序出错。这两个显式转换脚本就可以确保变量值正常。
==新增范围映射值和数值限制==
范围映射值举例使用:映射角色X坐标从[-,]到[-60,60]。
这时的值范围区域就是一个正三角形:A点在[-60,60]的区域,B点-C点组成[-,]的区域,角色X坐标的值就在这个三角形的范围中,由底部正中间位置到顶部的直线上取值。
比如角色X坐标值在[-,]时是,则在[-60,60]时是25。即
映射起点值=映射起点距离(到-)
映射终点值=映射终点距离(60到-60)
映射比率=映射终点值除以映射起点值,这里为1/4即0.25
角色X坐标值在映射终点区域的值:乘以0.25=25
数值限制,设定一个最低值,一个最高值,避免越界。
比如设定:
变量A,值为随机数(3,10),
变量B,值为随机数(3,10),
变量C,值为变量A+变量B,
限制变量C在低0与高10之间,当变量A值为4,变量B值为8,此时变量C值本应为4+8=12,有限高,则值为10;当变量A值为4,变量值为4,此时变量C值为8,仍在限高范围中。
==取消自带一个默认声音文件==
上图Scratch3中自带的声音文件,本意是展示声音版块的编辑功能,实际使用时,常用不到这个声音文件,但默认都会打包进作品案例中,形成误导,每次需要手动删除这个声音文件以表示本案例并没有用到这个声音。
下图Labplus3中则取消默认自带的声音文件,经历过Scratch工具的使用,这里就不需要默认声音文件了。这一点可能对新手不太友好,但左下角有声音来源按钮,可以选择一个声音文件、录制一个声音文件、随机提供一个声音文件、上传一个声音文件等功能。
==取消默认建立一个我的变量==
上图Scratch3中默认自建了一个适用于所有角色的全局变量:“我的变量”。
如何知道它是适用于所有角色的变量,而不是仅适用于当前角色的变量,是通过在角色区增加新角色来判断的。
新手刚接触时,会有所困感,需要使用变量时,会直接去修改这个“我的变量”,因为不清楚它的适用范围,而导致错乱。
这个问题,跟前面默认提供一个声音文件一样,各人看法不同。个人使用时会直接先手动删除这个“我的变量”。
在Labplus3中不再自建默认变量,由用户自行根据需求来创建变量,这点也可能因为考虑到一些用户是直接从Scratch过渡来的用户,对变量的建立已有所了解。Scratch2中也没有自建默认变量。
在使用Labplus3“建立一个列表”时,发现一个问题:建立一个列表,列表名为“旧列表名”,
当修改这个“旧列表名”的表名时,左侧代码区域中名称已经修改为“新列表名”,但舞台区上面的列表名还是原先的“旧列表名”,有可能是BUG,也有可能有新的考量,不得而知。在具体使用时,有多种需求出现:直接改列表名,原有的一些逻辑全部变掉了,再想对比找回原列表逻辑无处可循。
后采用的方案是修改之前进行新建列表,对比新旧两个列表,有选择的切换逻辑中的列表使用。这种需求毕竟少,Labplus持续在更新升级中,还是建议官方修正这个处理。
==扩展模块更换支持国产硬件==
扩展模块:去掉访问受限的扩展如亚马逊的文字朗读、Google的翻译、BBC的micro:bit、LEGO机器人、Vernier的传感器,
新增国内知名扩展如百度大脑、掌控板(互动模式与离线模式)、乐动魔盒、创客初级实验箱。
上图为Scratch的扩展模块界面,硬件连接主要是蓝牙方式,而蓝牙连接又需要联网验证,目前访问异常导致硬件连接也不正常了。
蓝牙连接常出现的问题是突然断开连接,连接不稳定,导致需要反复重连,重新配对之类的操作,很考验用户的耐心!
Scratch3连接扩展模块,需要单独再安装一个ScratchLink软件,每次纠结ScratchLink的打开顺序,是否打开正常,是否使用正常,反反复复来调试连接,浪费时间!
Scratch3连接乐高LEGOWEDO时,需要电脑上的蓝牙协议版本地4.0及以上,碰到一些旧电脑或没有蓝牙设备的电脑,还需要额外购置一个蓝牙适配器,而一个专用的乐高蓝牙低功耗适配器售价普遍在65-元间不等,这个价格直接超过microbit和掌控板的单价了,单独购买后还需要安装蓝牙驱动程序,还需判断检测LEGOWEDO的主机是否能准确检测到,还要打开乐高LEGOWEDO的官方软件检测是否为低功耗蓝牙设备,本人就踩过坑,为这个蓝牙适配,前后买了3个蓝牙适配器,一个是版本过低,一个是无法识别,一个是系统受限。
为何不用USB有线调试?为何不用2.4G无线遥控?每次调试或给小朋友讲解演示时,就怕掉线或莫名其妙的连接问题,怕前面配置的环境不小心被破坏了,面对软硬连接的案例忐忑。
下图为Labplus3的扩展模块界面:
去掉了使用频率低和访问受限的模块后,接入了国内模块,功能上更实用方便。
==其他非功能点的优化与改进==
1.主角更换:猫形象换成悟空形象。这大概是国内各替代工具都会默认做的事,塑造自家的主角形象。
==
更换为
==》
2.版本帮助:检查更新、关于本软件。有版本更新检测就不用自己到网上搜罗更新了。
3.关闭软件:关闭提示框的优化
脚本区有内容时,上图为Scratch关闭提示框,不知是多语言没适配还是其他原因,已经是简体中文的情况下,退出界面还是英文提示,Leave离开还是Stay停留竟然是上下列表选择,不应该是按钮选择吗?这个不太友好也不统一,下图为Labplus3的关闭提示框:
Scratch3每次“保存到电脑”都是重新命名,即追加数字后缀,初期不太理解,但在实际作品案例编写时发现这个设置,简直就是自动缓存多版本的替代方案!因为在作品实现过程中会不断的尝试,每种方案有差异,如果保存时直接覆盖原先的源文件,而Scratch又没有版本控制概念,直接导致不同创意丢失,这时多版本保存就显得很有必要了!
为什么选择Labplus?
1、Scratch软件因某些已知原因,不适合直接使用,但Scratch语言仍是图形编程中不错的启蒙选择;
2、既要完全兼容已有已学已适应的Scratch软件环境,还要有所提升改造,更适合国人使用习惯;
3、软硬结合的刚需,实际使用与教学中,软件与硬件的相辅相成更直观有效地让孩子持久保持学习兴趣。
第1点,对一名零基础的孩子来说,培养编程的兴趣很重要,直接上手文本字母式代码编程不是不可以,只是这样的学习会让孩子觉得枯燥,容易打消他们学习编程的积极性,甚至产生抵触。Scratch容易上手,让孩能编程做出东西,体会到编程的乐趣,培养孩子对编程的兴趣。Scratch让孩子把精力尽量用在学习编程逻辑上,而不是编程语言的语法上。因为编程逻辑才是编程的核心,是真正锻炼思维的东西,而编程语只是为了解决问题而使用的具。
第2点,可选的国内替代软件有不少,如Kittenblock,兼容Scratch软件功能但其主要偏向软硬结合式开发,界面凸显硬件编程,个人感觉不适合小学生初学Scratch或从Scratch过渡来的群体。提升改造方面,Labplus考虑得细致实用,主流模块的优化,扩展模块的更换等。
第3点,软硬结合这点上,硬件的选择,带屏幕显示并集成常用传感器的国产掌控板明显优于英国BBC的microbit点阵LED灯开发板,对偏向视觉感观的孩子们来说,能显示图案文字,发出声音的掌控板更有吸引力。为避免孩子一直持续盯着电脑屏幕,有个实体硬件可摆弄可交流,可有效促使孩子动起来:动眼,动手,动脑,动身。软件毕竟是虚拟的,硬件是实实在在可接触的,孩子的成就感更直观展现。
Labplus有哪些特色呢?
接触Labplus之前,个人