前言
1.提高孩子编程兴趣的重要性
俗话说“兴趣是最好的老师”,因此,如何提高孩子对编程的兴趣,是每一个希望孩子学习编程的父母都应该认真思考的问题。对我来说,这个问题从女儿上小学开始就一直在思考。作为多年从事青少年科普领域教研和教育工作的一名高校教师,我通过多种途径对孩子们学习编程的兴趣和动力进行了调查,结果发现大部分学校或培训机构开设的编程类课程都很难真正培养孩子们的编程兴趣,更无从说提高孩子们对编程的学习动力。必须承认,很多从事儿童编程事业的教师在课件内容和上课形式上都进行了大量的创新工作,但收效甚微,可能仅仅使孩子们喜欢教课的老师或者上课的方式,对编程知识本身却没有真正喜欢,他们只会在上课时跟着老师被动地学习编程内容,很少有孩子在课余时间主动学习编程。纵使编程课程按照项目制教学的方式让孩子们能够开发出一个个好玩的小游戏,但这些小游戏和Pad上的原版游戏相比具有很大的局限性,可玩性较差。因此,这些小游戏无法使孩子们获得成就感,也无法提高孩子们对编程的兴趣。
初学编程的孩子们一定要注意兴趣的培养,千万不要让他们在刚接触程序时就有挫败感,从而一开始就丧失了对编程的兴趣。
对低龄青少年而言,玩是他们的天性,也是快乐的源泉。只有和玩相结合,才能使孩子们快乐;只有不断刺激孩子们对玩的渴望,才能使他们形成不断的自主学习的动力。
2.和孩子一起学编程——两位父亲的探索
Alexander R.Pruss是一位三个孩子的父亲,拥有数学和哲学两个博士学位,现在是美国贝勒大学哲学系教授。Alexander R.Pruss教授除在哲学和数学专业上有很深的造诣外,还拥有超强的编程能力,同时对天文学也具有浓厚的兴趣。他对教孩子们编程很感兴趣,主要是因为他自己有三个孩子,而且在教孩子编程的时候他获得了很大的快乐。他发现他的孩子们喜欢玩Minecraft游戏,通过Minecraft游戏可以培养孩子们的想象力、创新能力和团队合作能力。因此,他认为以Minecraft游戏为编程目标对象可以大大提高孩子们的编程兴趣和原动力。他知道在树莓派系统下可以通过MCPI接口直接对Minecraft游戏进行编程,但大家现在普遍使用的是计算机(简称PC)。2015年为了教他的大孩子学习编程,他在Raspberry Juice 的基础上开发了Raspberry Jam Mod,从而在不需要启动服务器的情况下利用PC可以对Minecraft进行编程。2020年为了教他最小的孩子学习编程,他又基于Raspberry Jam Mod编写了Scratch 3.0的扩展程序,从而使他的小孩能够用Scratch对Minecraft进行编程。他认为他编写的Raspberry Jam Mod有两个作用,一个是教孩子们编程,另一个是教孩子们学习三维几何建模。
同样,作为一名父亲,我深刻理解Alexander R.Pruss教授的所作所为,为了能够教好孩子们学习编程,他还需要和孩子一起学习编程知识,除孩子学习的编程内容外,他还需要进一步学习很多更高深的编程知识。因此可以称为“和孩子一起学编程”,这包括两部分工作,一方面是和孩子一起学习共同的编程知识,从而了解儿童编程的知识体系,以便能够对孩子进行指导或辅导;另一方面是研究儿童编程的特点,学习如何提高孩子的编程兴趣,从而让孩子们学习编程的过程更加高效,Alexander R.Pruss教授在第二方面做了非常出色的工作。
我的女儿是一个非常漂亮的小姑娘,女孩的天性使她对娃娃之类的玩具更感兴趣,对机械和编程方面,她好像并没有很大的兴趣。如何培养她的编程兴趣?和Alexander R.Pruss教授一样,我进行了认真的思考和探索。现在的世界是一个开源的世界,MCPI、Raspberry Juice及Raspberry Jam Mod等资源都是开源的,任何人都可以免费下载和修改。我开始陆续对上述资源进行深入研究和修改,所有修改的目的是使这些资源更加适合中国,或者说在这些资源的基础上开发出适合中国孩子学习编程的资源和工具。
Scratch是目前儿童学习编程的主要语言。Alexander R.Pruss教授已经将Scratch和Minecraft结合在一起,可以大大提高低龄儿童学习编程的兴趣。但是Alexander R.Pruss的Scratch扩展模块完全是英文的,而且是在线网络界面,必须连接到国外网址上。因此,Alexander R.Pruss的Scratch扩展模块不适合中国孩子学习,特别是不适合中国低龄儿童学习使用。
在Alexander R.Pruss教授前期工作的基础上,首先通过对程序的翻译和修改,我很快就推出了中文版的扩展模块;然后通过测试发现,在源程序中有很多方块类型和实体类型缺失,而且对特殊方块的属性问题更是表达不精确,于是重点解决了这两个问题;再次根据需要定义了一些新的模块和功能;最后将所有修改后的程序打包成一个可本机运行的EXE程序。
回顾一下,我修改和编写软件的过程实际上是一个和女儿一起学习编程的过程:女儿在学习用Scratch软件玩Minecraft的编程知识;我在学习Scratch软件的基本用法、Minecraft游戏的基本操作、Scratch扩展功能的开发及Electron软件的使用等内容,当然,也学习了使用Scratch对Minecraft进行编程的知识。女儿在学习编程,我在每一个软件开发阶段也在学习编程。这是真正地和孩子一起学编程的过程,所以本书命名为《和孩子一起学编程》。
3.关于和孩子一起学编程的建议
强烈建议家长和孩子一起学习本书,原因如下。
(1)家长能够快速学会编程
一说到学习编程,家长就认为是孩子们自己的事情,认为自己没能力,也没有精力学会编程。本书提供一种快速学习编程的方法,而且本书的撰写简单明了,以实例操作为主,家长通过阅读本书可以很快完成本书的所有实例,从而学会Scratch编程;也可以和孩子同步学习本书的内容,这样共同学习,共同讨论,共同进步,会使亲子关系更加融洽。
(2)可以在家庭内进行项目化教学
可以按照项目制的要求将编程任务进行分解,先由不同家庭成员按照项目制进行编程,然后每位家庭成员完成一项或多项子任务,最后由家庭全员一起来完成Minecraft中的整个项目,共同享受编程和游戏带来的快乐。
(3)思考和理解孩子们学习编程的关键影响因素
首先必须深刻理解兴趣是最好的老师,而获得成就感的快乐是孩子们能够持续学习编程的动力。
其次,编程离不开专业知识,不同的编程项目需要不同的专业知识,离开专业知识,程序就只剩下类似文件格式的框架。不管是成人编程,还是青少年编程,学习编程耗时最多的部分往往是描述专业知识的程序部分。不同年龄段的孩子学习编程都离不开其知识结构和智力水平,也就是离不开孩子们已经掌握的知识背景。
(4)树立正确的游戏价值观
家长对孩子们玩游戏不在“堵”,而在于正确疏导。对孩子们来说,玩是天性,凡是能玩的东西基本上都能引起他们的兴趣和动力。Minecraft是一个风靡全球的沙盒类游戏,其玩家包含各年龄段的人群。这款游戏提供的自由度和创造性是其他游戏都无法比拟的。国外已经陆续将Minecraft作为STEM教育的重要载体,而且在微软收购Minecraft之后,还专门开发出Minecraft的教育版。这款游戏的中文名之所以叫《我的世界》,是因为它有和真实世界相似的属性。在现实世界中,我们要完成一项任务,要进行各种规划、准备、设计、计算和实施等工作。同样,在Minecraft游戏里,也要完成类似的这些工作,而要完成这些工作,需要玩家具有各种专业知识和生活知识。为了完成任务,玩家只好缺啥学啥、用啥查啥,这样在完成游戏的任务中,玩家就会主动学习各种知识——这是真正的“玩”中学。
4.本书内容
本书的写作目的就是为了提高青少年对于编程的学习兴趣,将编程变成一件快乐的事情。本书内容就是介绍如何使用Scratch对Minecraft进行编程。全书共分为10章。
第1章介绍Scratch 3.0的界面和基础操作,通过简单的入门实例使零基础的青少年可以直接利用本书进行Scratch编程的学习。
第2章介绍Scratch的Minecraft扩展模块,主要介绍该扩展模块的积木块组成以及各积木块能够完成的功能。
第3章介绍玩家位置的概念,通过实例介绍如何获取和设置玩家的具体位置。
第4章介绍聊天区信息输出的命令,用户可以通过聊天区输入指令进行Minecraft的相应设置,也可以通过程序控制聊天区输出用户交流以及坐标显示等信息。
第5章介绍方块放置命令和循环的用法,通过实例分别练习手动放置方块和循环自动放置方块等操作。
第6章介绍如何采用循环和条件语句自动放置方块,从而生成复杂的三维模型。本章对圆形、圆柱体、球体和长方体分别进行编程练习。
第7章介绍自制积木的用法,通过实例建立长方体自制积木,并且通过该自制积木的不断重复使用,建立一个高层建筑小区。
第8章介绍批量放置方块命令,通过实例练习该命令快速建构空间立体几何的用法。
第9章介绍在Minecraft里使用海龟画图命令的基本用法,通过该命令可以建立很多复杂且漂亮的图案造型。
第10章介绍如何通过命令在指定位置放养指定的生物,使大家通过编程实现生物放养,从而能够更方便地了解Minecraft中各种生物的特性。
5.本书特色
本书的最大特色就是创新,具体如下。
·内容创新。本书将Scratch与Minecraft编程相结合,是目前市面上少有的。
·软件创新。本书所提供的Scratch 3.0是含有Minecraft扩展模块的创新版本。
·编程学习方面的创新。本书以青少年喜爱的Minecraft作为编程载体,也是针对青少年编程的一个教学载体的创新。
·游戏玩法的创新。玩家通过编程会极大地提高对Minecraft的完成效率,使玩家可以将主要精力集中在思考和学习中,而不会被烦琐且技术含量低的工作耽误太多的时间。
6.致谢
首先感谢电子工业出版社,感谢李利健老师和她的同事们,特别是李利健老师,从选题策划到大纲规划、程序界面修改,以及书稿内容优化等方面,她都付出了大量的心血。
其次要感谢Minecraft和Scratch,感谢其开发者们为中国青少年儿童带来快乐和学习编程的机会。感谢MCPI、Raspberry Juice和Raspberry Jam Mod的开发者们,尤其要感谢Alexander R.Pruss教授在Raspberry Jam Mod和Scratch扩展模块方面做的前期工作。
最后要感谢威海市高新区第一小学冷建家团队和辽宁省阜新市实验小学张建宇团队,他们在本书内容的测试及课程课堂教学过程中提供了大量的帮助。
7.关于软件版本
本书所采用的Scratch是带有Minecraft扩展模块的Scratch 3.0版本,采用的Minecraft是1.12.2 forge版本,请大家务必购买正版的Minecraft Java版本并安装1.12.2 forge,详细安装说明见本书附录A。
8.联系作者
尽管我希望本书可以帮助到每一个想学习编程的孩子,但由于水平有限,再加上时间仓促,难免有疏漏和不足之处。真诚希望所有期待孩子学好编程的家长和一线的中小学科技教师能和我联系,既可以提出可行性建议和意见,也可以和我展开讨论或探讨,旨在共同促进青少年科技创新及编程教育事业的发展。
联系方式如下。
邮箱:zhangjichun@hitwh.edu.cn;
QQ讨论群:一群:872397838;二群:872040187。
张继春