南国彩票论坛 > 第一阶段 > 正文

用户可以把程序组块、角色、声音等信息保存下

时间:2019-05-07 来源:未知 作者:卢本伟
本篇文章转载自互联网,如有侵权,联系站长卢本伟删除!

  BYOB与Scratch是个什么关系? • • 2015-11-11 20:01 一、 BYOB与Scratch的姻缘 运行BYOB发现他与 Scratch并没有太大的区别,至少从外观上来看是这样的。但为什么两者名字差别如此之大呢?它们之间有着什么样的关系?带着这些疑问,我查阅了一些外文材料,希望能解开这个谜团。 原来BYOB的全称应该是Build Your Own Blocks,它是Scratch的一个改进版,由Jens Monig(Enterprise Applications Development, MioSoft Corporation)和Brian Harvey(University of California at Berkeley大学伯克利分校)基于Scratch原代码的基础上修改而成。 从Scratch的网站了解到,Scratch是一种开源的儿童编程软件,MIT所有的开发原代码都共享到了网络上,并支持和鼓励使用者对其进行修改和完善。不过为了其开发团队的权益和避免承担不必要的责任,MIT开发团队对Scratch的商标权做了:重新修改后的程序不得以Scratch的LOGO 名字、包括使用的默认角色等,一律不可以再重用,相关程序也不能挂放到Scratch的网站上,但必须注明是基于Scratch开发而成。至此我终于明白,纵然BYOB的界面和Scratch的界面奇似,但名字、默认角色都不一样的原因了。细心的朋友,也许还可以在BYOB的主界面的LOGO上看到相关的版权信息。准确来讲,它的全称应该是:BYOB based on Scratch by MIT. 深入了解之后,其实一点都不遇外,一直以来,Scratch开发团队都非常强调和鼓励使用者对程序进行修改和重组,只是想不到他们连原代码都,值得钦佩!不过也正因为有开发者的胸襟和意识,才有如今Scratch软件的不断完善和蓬勃发展吧。 二、BYOB3.1与Scratch1.4的差别 那么,到底BYOB对Scratch做了哪些改进呢?我想从界面开始了解是最直接和快速的方法。于是我以BYO3.1和Scratch1.4为例,对他们的界面进行了详细的对比与分析,试图找出它们的相同点与不同之处。 Scratch1.4主界面 BYOB3.1主界面 从主窗口来看,他们没什么两样,但对比菜单栏和指令区,就能看到了一些改变。如BYOB3.1菜单栏中的“分享”与Scratch1.4菜单中的“分享”就有很大的不同,前者可以对程序进行编译和联机共享,而后者不能编译,但可以把作品分享到指定的Scratch指定的网络交流社区。以下是BYOB在Scratch的基础上增强的指令。 1、 控制模块:主要是针对调用和调试程序块而定制了一些指令; 2、 侦测模块:增加了对“对象”和“属性”的侦测; 3、 数字逻辑与运算模块:在原来的基础上增加了以下运算指令,特别值得一提的是把整个脚本用来做运算,为程序块的间的信息传递提供了便利。 4、变量模块:改动最大,追加了添加不同类型的程序块的功能,而且这个程序块可以是单纯的几个指令的集合,也可以是带参数的函数,能返回具体的值,支持递归调用。考虑到新建程序块的过程也可以定义变量,所以与变量相关的设置指令也在默认条件下出现。另外,这一模块还增加了“脚本变量”指令(用来快速定义临时变量)和“复制链表”指令,支持调用链表中的链表,实现链表数据的重复调用。 对比了两者程序指令区的异同,第一个感受就是:原封不动保留了Scratch1.4所有指令;第二个感受就是:追加,追加一些指令到其中。如此说来,BYOB的汉化版本也相对比较简单,只需参考Scratch安装文件locale文件夹中的汉化版本,在此基础上进行适当的追求和修改即可。 不过尽管是追加,但BYOB的这一改进却让Scratch编程有了质的变化,实现了真正意义上的面向对象的编程,这是它最大的贡献之一。 Scratch1.4版本,实现角色间或角色与背景间的通讯,通常只能用实现,而且这种实现方式只能播放信息,既不能传递变量,也不能返回具体的值,了程序的调用与代码的重用。而BYOB的这一改进,用户可以的增加不同类型的程序块,并对其进行参数的调用,实现真正意义上的信息传递,而这恰恰是OOP的核心思想之一。 …… 三、 BYOB3.1 与Scratch2.0 近两年,Scratch也在试图对Scratch进行版本的升级,虽然还没有正式发布,但陆续也发布了不少升级进度报告,从中也能大致了解到升级版本的一些功能。 1、Scratch2.0在界面的设置与重组方面,有了很大的改动,如下图1所示。从视觉的角度来看,1.4的视觉中心在舞台,而2.0版本的视角中心转到了脚本区,作为一种编程语言,我觉得2.0的视觉中心更合理。 图1(图片引自 Scratch官网) 2、背景更名了场景; 3、能使用相机运动传感; 4、Scratch在原来1.4的基础上,还增加了“云数据”; 5、增加了角色的克隆,既可以继承原来角色的属性,又可以进行修改; 6、添加了“My Blocks”指令集,允许用户添加带新的程序组块,可供重复调用(如图2、图3所示) 图2 图3 7、主界面中增设了“Backpack”栏,用户可以把程序组块、角色、声音等信息保存下来,应用到其它程序中,很好的实现代码和对象特性的继承与再利用; 8、分享与交流功能得到很大的提升。新版本主要基于Web平台来操作,这让作品的分享和重组变得更容易,用户还可以建立自己的工作室(如图4),对自己的作品进行分类管理,相关页面还提供好友管理和浏览跟随功能,用户可以轻松回访和交流。 当然,发开团队也说明,同时会有一个脱机版,供非网络使用。 图4 与BYOB3.1相比, Scratch2.0有相同之处,也有其独特的之处。 不同点:Scratch2.0 是基于flash下运行,而BYOB3.1仍然是java; 相同点:两者都增加了“Make a Block”的功能,不过从版本预告信息来看,Scratch2.0的添加新的程序组块功能在定制方面似乎并不如BYOB强,至少在类别上就没有BYOB多,这个还得等Scratch2.0正式发布之后去尝试才能确认。 顺便提提,听说BYOB3.1也要升级了,而且不仅升级,连名字都会改,改为snap4.0,据说改名是因为BYOB的缩写有歧义,但不管怎么样,升级也算是程序发展进步的表现,值得肯定,不过目前还不看到相关的功能简介,只知道整个界面的色调变了,如图5所示。 图5(图片引自于BYOB website) 四、 如何看待这些不断更新的儿童编程语言 看到这么多个版本的不断更新,是不是有点眼花缭乱了呢?其实软件版本的更替也常正常的事情,至少说明了这个软件是受关注和不断发展的。不过也许会有老师说:这么快就出现这么多版本,我们到底该用哪个版本好呀,眼看Scratch1.4还没用熟,就又出来了BYOB,甚至是Scratch2.0,真让人应接不暇……其实,这只能说是我们的脚步慢了,在国外,早在前年前,这个软件就很火爆了。那么怎么选择首先应该明确两件事: 1、 明确学生的认知水平,内容适用为宜——解决学什么的问题 有时候我们总是希望用大人的思维是判定孩子学习语言的能力,认为我们大人给编出来的东西孩子也一定可以,我觉得这是不遵循孩子学习规律和对孩子不负责的表现。对于选择什么样的语言来教学,既要看其本身的特点,更要看儿童的接收能力。 据悉,MIT的Scratch研究团队开始的初衷就不希望把Scratch语言复杂化,以免引起儿童的恐惧心理,我想就是这个道理。伯克利的课程团队最初开设BYOB试点课程时,主要针对的学习群体计算机科学专业的18岁和19岁的青年。Brian Harvey也曾在他的文章中提到不儿童时期就开始写递归程序、高阶函数或对象类等。如此说来,那些新添的程序组块未必用得很自如,至少在小学阶段是这样的。毕竟面对“简洁的语句和复杂的调用”小学生理解起来还有一定的难度的。不过学有余力的学生,多接触一些面向对象的编程思想也是件非常有意义的事情,这也是程序设计的发展趋势。 所以,面对版本的更替,我们并非一定要,一切应以学生的实际情况出发,充分考虑学生当下的认知水平,适用就好。 2、明确程序教学的核心,避免为教软件而教——解决怎么学和学得怎么样的问题 在教学上,无论我们选择哪个版本的程序语言,软件本身也仅仅是一个载体,而利用这个载体,学生能学到什么,也才是我们思考的关键。我想大家都会认同:我们并非想教给学生某个指令有哪些功能,我们的眼光会更多地投放到学生能用这些指令做出些什么东西来,而在这个做的过程中他们的哪些能力能得到提升。 所以,在选择哪一个版本这个问题上,我觉得在适用的基础上进一步明确程序设计教学的核心目标。依托图形化的儿童编程软件,引导学生在学编程的过程中,锻炼思维,提升能力。否则会为为教软件而教的被动局面,以前的LOGO语言是这样,现在的Scratch语言  也应该是这样。

  • 由于Root可 哈佛研发教育机器人:可让儿童学编程 2016-05-03 14:51 据外媒报道,哈佛大学威斯研究所的机器人专家会制作出一台名叫Root六
  • 孩子们将协 教育从来都是一个复杂的社会问题,而不仅仅是传授知识、技艺或者引领学生发展。如果是育的本身目的出发,就应当着重培
  • 目前依旧在 信息技术教育创新中美专家深度对话【回放】 2018-08-19 21:45 任友群:在我国的现状,不能列入高考的科目那就很可能是别的学
  • 北京、上海 2016年12月6日,南师大计算机学院志协的志愿者在南师大附属实验学校成功举办编程一小时活动,该活动得到了校方领导的高
  • 在可视化图 大家说的编程思维是什么? 2018-03-25 21:59 编程思维究竟是什么? 编程思维是我们解决问题的一种方法,是逻辑思维的一种,