从趣味游戏到编程思维——Scratch编程课程设计思想

邓博士和很多在学习编程孩子的家长交流后,发现一个共同的特点:家长其实对于孩子为什么要学编程并不是很理解,就觉得反正买个课程又不贵,孩子喜欢而已,就试试呗!另外,有些理工科背景的家长也对孩子的Scratch项目有点疑惑:看起来小孩子过家家一样的东西,小盆友们真的在学编程么?希望看完这篇文章,能够让各位家长对Scratch课程背后的设计思想所有了解,对这两个问题不再困惑。

毋庸置疑,因为Scratch的趣味性,让它在青少年编程领域获得广泛认可。在这样的趣味性背后,是Scratch对编程思维的包装和训练。说起编程思维,我们先来看一个耳熟能详的小故事:

数学王子高斯在小学三年级时候,老师要求从1+2+3开始一直加到100,得出的和是多少?其他同学都费劲地一个数一个数的加,只有小高斯注意到了这些数可以两两配对,相加和为101:

1+100=101

2+99=101

......

一共有50对,最后的和可以用乘法来做:(50X101)=5050。

我们感慨数学王子的惊人天赋同时,不要忘记了高斯的解题思维:但凡重复的问题,一定有规律。高斯首先提取这个规律,然后再进行求解。这就是编程思维中常说的问题拆分、抽象思考和模式识别。高斯的思考实际上解决的不仅仅是从1加到100,老师如果再出101加到200,201加到300,这个模式都可以解决。再进一步延伸,就可以概括出求任意范围【a, b】连续整数求和公式:(a+b)x (b-a+1)/2。

编程中有一个重要的概念:顺序执行。意思是程序需要按照一定的顺序依次执行语句,这就要求学生在编程时要将想要实现的功能分解为多个具体步骤,并且要考虑到不同步骤之间的关系和触发条件。

学了编程的孩子,在思考问题时会更加注意问题内部各个因素之间的关系,会对解决问题的步骤有一个更加清晰的思考。这之中涉及很多的数学和逻辑学知识。编程中还需要考虑到程序执行时出现的各种可能,这锻炼了学生思考问题时的全面和细心。 除此之外,学生在学习编程的过程中会不断尝试、不断面对挑战、不断经历失败,不断从错误中学习,只有经历了这些,才能最终获得程序的正确运行。

下面我们来看一个例子:打地鼠是孩子们很喜欢的小游戏,通过这个了解如何把编程思维的锻炼贯穿在创作中。

在孩子兴高采烈要开始做这个小程序的时候,老师会先引导孩子思考这么几个问题:

1、屏幕上的6只地鼠有关系么?这6只地鼠是彼此没有关系的,基于随机数来控制是否冒出来,再用个随机数决定冒出来多久。因此,一只和六只的代码是一样的,用Scratch的角色复制就可以了。为了屏幕整洁,我们先从一只地鼠开始,让它调皮的冒头出来。

2、识别锤子的状态:正常,移动,敲击。把锤子随鼠标移动,按下鼠标按钮敲击这个流程实现。

3、给锤子和地鼠加上一个判断逻辑,如果锤子击中地鼠,则显示特效,表明成功得分。

4、调试完毕后,将一个地鼠复制6份,进行联调。

此时,一个基本版的打地鼠游戏就完成了。这是一个标准的“问题拆分-逐项解决-综合汇总”的过程。在这个过程中,主要的难点并不是Scratch代码本身,而是让同学们理解这个思考的过程。

事实上,如果在没有提醒的情况下,绝大部分孩子会按照最习惯的做法,一上来就连放六个地鼠,然后逐个调整和修改,难免顾此失彼。当然,老师也会愿意让他们犯一下这样的错误,然后再和上面的方法进行对比,加深对思考方法的理解。

完成这个基础版本后,老师会一步一步的提出新的功能,让同学们在现有游戏的基础上实现:

1-计分功能。打中一只地鼠加一分,这个把之前学的变量概念加进去。

2-限时功能,30秒钟一到游戏结束,记录下多轮游戏的最高分,做个排行榜出来。

3-仿效“水果忍者”游戏,给地鼠中加入一个危险的炸弹!如果炸弹冒出来被击中了,则扣10分!

完成这三个挑战功能后,这个项目就成功结束了(目前一堂课内完成以上功能要求的同学不到一半)。但是我们还会留一个开放问题给意犹未尽的孩子:

如果你把这个游戏给你的朋友玩,他觉得太简单了,希望你提升难度。同时你的妹妹也想玩,但她觉得太难了,希望减少难度。你如何为游戏设计一个难易程度机制,并方便的调节?

这个开放问题没有标准答案,孩子们可以自由发挥。小鱼同学选择的方法是加了个开关,如果“Hard”模式的话,地鼠出来得时间更短,而且出来后还会随机左右移动一下,更加难打中了。说实话,这个设计出来也出乎我的意料,我原先考虑就是加快速度缩短冒头时间这样的标准套路,但小鱼的这个随机移动让我有点惊喜。

以上例子,是我们Scratch课程设计思想的体现:重要的不是完成这个趣味小游戏本身,而是同学们用什么样的思考方式和思维模型完成这个任务。通过这样的趣味程序设计操作,让编程思维得到锻炼。

除此以外,Scratch的友好功能和丰富的表现能力,让孩子能够借助这一工具表达出更多的创意。这是一个国内四年级女生,为校园“爱护环境,节约用水”环保宣传月活动做的小游戏:

如果说打地鼠游戏中我们更多考虑的是算法和逻辑部分,那这个小游戏则是艺术和创意的良好体现。对于一个10岁的孩子来说,这个作品是很有亮点的:

画面整洁清爽,元素丰富

以情境方式导入游戏玩法,符合逻辑又引人入胜,衔接自然

直接在对话中就表明了游戏操作方式,玩家简单易懂,作者很有同理心

扣住了环保主题,以活泼有趣的方式传递出节约用水的概念

小鱼同学看到了这个作品后,马上反应过来:爸爸,这个和我做得那个接金币的小游戏是一样的吧。我说没错,小姐姐把金币换成了水,加上小老鼠和甲虫的对话,告诉大家要节约用水,是很不错的创意啊!小盆友们在开心的玩这个小游戏的同时,潜移默化的也接受了爱惜水资源,节约用水的环保理念。

受这个的启发,我决定让小鱼做个环保垃圾分类的小游戏,天上掉下不同的垃圾:Organic、Recycle和Garbage,下面是小鱼同学推动绿盖、蓝盖和黑盖的垃圾桶去接垃圾。垃圾只有进入正确的框子里面才能得分,很环保有木有?

(啪!此处收获小鱼妈妈响亮怒斥:搞什么不好,让儿子捡垃圾,你这个创意太扯了啊!)

从上面的例子可以看出,编程和下棋其实很相似,都是在既定规则下解决问题。规则并不复杂,却能变化无穷。你的思维能力的边界就是这个编程世界的边界。逻辑是程序的基础,逻辑走不通的程序很快就能够通过运行结果反馈出来。通过反复的练习和修正来提升逻辑思维能力。总结一下编程中得到的思维训练如下:

1、抽象思维练习:编程源于现实世界,但又不是现实世界。须有有能力抽象出机器能够理解的语言来表达。

2、解决问题:编程的过程是将一个复杂的问题拆解为若干简单的问题,先解决一部分问题,或者假设问题的解决来倒推须有的条件。每一个问题的解决过程就是这些思维的不断运用的过程。

3.试错与纠正:调试的过程就是不断的尝试,不断修正来解决问题的过程。这个过程的练习能够鼓励小朋友勇于尝试。

4.创造思维:小朋友很容易接受游戏化的学习方式,而编程有结合的很自然的游戏化学习方式。小朋友能做到不仅仅是玩游戏,也可以自己编游戏,体验创造规则的乐趣。

5.工程思维:每一个编程项目都是一个工程过程,有设计、编码、调试、发布的不同阶段。在这个过程的练习能锻炼小朋友合理安排流程的能力

Scratch作为优秀的工具,给孩子的想象力和逻辑思维能力插上了翅膀。体会到Scratch的真正乐趣,在Scratch中真真正正地有所收获,这样的孩子,怎么会不喜欢编程?!希望每一个学习编程的孩子都能收获这份乐趣,拓宽眼界!

本文来自企鹅号 - 温哥华青少年创客中心媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏镁客网

315曝光人脸识别漏洞,你的自拍可能让你“倾家荡产”

3548
来自专栏镁客网

石墨烯成为芯片突破的新希望

1845
来自专栏PPV课数据科学社区

到底穿T恤、正装还是道袍?数据挖掘师的定位

(图为:剑网3 玩家Cosplay) 文|周学春,一个在银行做挖掘的博士,微信公众号:比格堆塔 心态不够平静,晚上在小区里面逛了一圈又一圈、一圈又一圈、一圈又一...

3096
来自专栏量子位

通过图灵测试!Google掌舵人说“打电话AI”是一次非凡突破

今天凌晨,Google I/O 2018大会最后一日,前不久刚刚获得年度图灵奖的Alphabet新任董事长John Hennessy登上舞台。

1253
来自专栏量子位

实测华为Mate 20 Pro:配备麒麟980芯片后AI到底有多强

前不久,华为发布了新一代旗舰手机Mate 20系列。配备AI芯片麒麟980,双NPU,号称六项业界第一。

1253
来自专栏AI科技大本营的专栏

全网首发 | 马斯克的挑战(下)

这几天,我们在以全网最完整的编译、全网最迅速的动作,来为读者带来科技人气王Tim Urban的Neuralink长文。 我们用第一篇仔细剖析了神经网络的进化史...

3408
来自专栏知晓程序

他做的小程序,估计 99% 的人都理解错了 | 晓组织 #13

我叫 Noah,很小的时候就很想知道这个世界的本质是什么,它是如何运转的,直到今天,也是如此。

802
来自专栏AI科技大本营的专栏

大疆RoboMaster技术总监:我是如何成为一名机器人工程师的

很多朋友私信问我对机器人和人工智能感兴趣,该怎么展开学习。最近稍微有点空,我写写我的看法。

4813
来自专栏黄成甲

怎样成为解决问题的高手(连载五)

在上一篇我们讲了构建框架——自下而上提炼框架的问题思考方法。通过使用自下而上提炼框架的四个步骤,你可以构造出一个结构完整、逻辑清晰的框架。但这种自下而上提炼框架...

2481
来自专栏PPV课数据科学社区

【观点】数据挖掘入门必看10个问题

NO.1 Data Mining 和统计分析有什么不同? 硬要去区分Data Mining和Statistics的差异其实是没有太大意义的。一般...

2907

扫码关注云+社区

领取腾讯云代金券