本文适合进行过一段scratch学习后,不知如何继续提高或深入学习的用户,以下内容仅代表作者观点,供大家参考,也欢迎大家相互交流,不断改进。

作者:舒克老师

  在孩子掌握了scratch基础的使用和简单的案例学习之后,接下来的项目式学习是一个很容易走错路用错方法的新学习方法,舒克老师在这里给大家进行一下相关的介绍说明。

  scratch是一个简单易学的少儿编程工具,通过培训班或者看书、视频,甚至自学,很快就能够掌握它的基本使用方法,再花一些时间熟悉一下常用模块的功能就算完成了scratch基础学习。之后,孩子便可以开始自主的项目式学习,舒克老师为大家梳理一下这种学习方式需要注意的地方,以及如何有效的体现出这类学习方式的效果。

1.自我分析

  自我分析是指项目式学习中,需要分析自身目前的水平以及能力,根据自身水平选择有适当挑战的项目来制作,既不能总是自己非常熟悉很简单的设计,也不能过于超出自己的水平能力。我们是希望在制作过程中遇到问题来进行学习,但也不能总是遇到超出自身能力的问题。

2.目标清晰

  目标清晰是指对于自己想要实现的最终作品能够有比较清晰的描述,无论是模仿,remix还是完全的自己创意,都需要在开始之前就对自己想要实现的最终效果进行描述,从最终使用效果的角度尽量详细的描述。这样的目的是,严格要求自己在项目的制作过程中遇到问题要想办法解决问题,而不是轻易放弃。也便于根据自身水平来增减相应的功能。力求做到,做了的,就要体验流畅,没有严重bug,也不要设计的很复杂但是各种错误和不流畅的体验。

3.科学的项目流程

  在孩子自主进行项目式学习的过程中,合理科学的流程十分重要,可以帮助孩子更好的安排进度,解决问题。

基本流程如下:(后有案例)

寻找灵感

  可以来自生活中的发现和想法,也可以来自看到别人的作品进行remix,也可以是模仿自己玩过的游戏用过的工具等等。

创意构思

  根据灵感进行设想,并尽量准确的描述想要制作的项目最终效果,从最终的使用效果简单的反推出大概得模块使用和制作难度。

团队or个人

  确定这个项目是自己独自完成还是寻找一些小伙伴来共同挑战,一般情况下根据之前的难度分析来决定,如果项目本身不复杂,并且超出自身能力的部分并难度并不大,或者数量不多,可以独自完成,如果项目当中少数部分难度极大,也可以考虑制作过程中寻找帮助,但是如果项目比较复杂,或者困难部分过多,一般建议寻找一些小伙伴来共同进行,同时,即便原先是一个简单的想法,一个经过锻炼默契的团队,最终的效果是一定比个人制作要好得多。

任务分析

  将计划的项目进行拆分,一步步按功能和效果等,分为具体的设计模块。

  同时为拆分出来的任务标记上对于自己来说的难度。

任务安排

  将整体项目进行拆分并标注出难度后,根据项目的特点进行任务筛选,一般建议首先找出与项目相关的必要础功能与设计,并将其列为首要目标,随后找出设计中的重要功能,必要功能与重要功能的区别在于,必要功能是不可或缺的,缺少该功能就无法达到基本的效果,遇到问题首要解决而且不能有任何BUG。而重要功能则是在设计中不是必须的,但是也属于设计当中需要尽力实现的功能,遇到问题需要尽全力去解决,除非万不得已不能放弃该设计,接下来不必要也不重要的设计放到最后,根据时间,和能力安排,逐步增加,以版本更新的形式添加此类功能,要做到即便没有此类设计项目本身也是完整可用的,达到了预计设想的基本功能的。

任务准备

  正式开始进行每个任务之前需要做好准备工作,整理好思路,最好能够通过脑图等方式进行辅助思考,并进行整理,如果暂时不会使用工具也至少通过描述来记录下实现这次任务的基本思路,便于在制作过程中了解进度,以及遇到问题是根据设计思路寻找问题原因和位置。

  另外就是准备好制作需要的基本素材,图片声音等等。

  同时需要注意的是,一次尽量至进行一个任务,专注于效果的改善,测试流畅后再进行下一个任务。

开始任务

  制作过程中需要严格按照自己划分的任务来进行,当然,也不可避免,在制作过程中会遇到各种问题,需要持之以恒,去寻找答案,来解决问题。做好及时保存,以便在程序因为意外导致严重出错的时候可以直接打开之前的已存文件快速恢复。

困难和问题

  我们设计的项目在正式开始之前,无法准确的了解到每个功能的具体实现方法,所以在制作过程中遇到困难和问题不可避免,有些模块的设计一开始我们就知道它超出我们目前的能力,那么在遇到困难问题时,应当做到不慌不乱,冷静面对。

  先说遇到自己无法克服的制作困难怎么办,某些设计和功能的实现可能超出我们目前的水平和能力,遇到这样的问题,首先需要整理思路,能够将自己遇到的问题进行准确的描述,如果能够想到大概解决困难需要查找哪些资料,那么就可以通过互联网进行查询、学习,并尝试克服困难。如果通过互联网无法解决,或者自己也不清楚具体该从哪个方面入手,这时可以选择与同伴交流,或者在互联网上寻找他人帮助。但是一定要将自己遇到的问题准确的描述给他人。在得到帮助后要予以感谢,甚至在最终的作品介绍里予以感谢。

  接下来是程序遇到错误或者问题怎么办?

  遇到BUG也就是程序和预期效果不一致的错误,是无论专业的程序设计还是scratch一类的少儿编程都会经常遇到的情况,在遇到BUG时,我们首要工作是对BUG进行解释,也就是说要能够准确描述出到底出现了什么错误,随后找到相关的设计进行逻辑分析,具体的寻找BUG方法可以专门进行相关学习,如果发现自己无法找出BUG原因,同样可以寻找他人进行协助,此时如果有合作伙伴最佳,因为相对于熟悉设计的人来说,陌生人理解你的设计更加困难。最好能够有相关的逻辑图、脑图等提供给他人更好地了解你的程序,帮助你找到BUG。或者至少你能解释清楚你的设计思路。同样最好能感谢对你提供帮助的人。

  想要快速有效的发现bug,找到原因并解决,就需要再设计阶段就有着清晰地设计思路,并且了解项目的每一步所对应的模块是哪一部分,通常我们的大脑难以同时装下太多这些信息,这正说明了准备工作和记录的重要性。

Debug调试

  Debug也就是调试测试的意思,是指在完成一个阶段或完成一个小功能后进行的运行测试,检验程序能否正常运行与自己的预期是否一致。de就是去除,bug就是我们之前提到的问题,我们应当尽量养成多测试多调试的好习惯,每一个小的功能添加,或者改变,我们都最好进行一次调试,以保证新的设计能够正确运行,有时候出现bug却难以定位原因就是因为早期的设计出错,连锁反应所导致。

  并且在作品的发布之前,务必进行一次完整的详细的调试,尽量避免出现没有想到的错误。

  调试可以邀请他人来进行,这样模拟新用户来使用的时候,在不了解程序原理情况下是否会做出设计以外的行为,导致出错。

4.版本更新与迭代

  在经过反复的设计和调试,解决了一个又一个bug和困难后,我们的作品应当逐步完善了,我们应当决定在完成到什么程度可以发布自己的第一个版本的作品,这个版本可以不够完美,也可以还有一些小问题,我们可以通过发布后持续的改进修改,升级版本来完善作品,甚至加入更多的功能,这就需要大家在一开始的项目分析和安排时工作做得足够到位了。

  另外当我们的作品发布后就会有许多小伙伴前来体验,有些小伙伴可能会找出我们之前没有发现的bug,这是我们需要对其进行一一记录和测试,并且从新安排进我们的任务列表,根据进度安排,来逐个修复,并发布新的版本。

  另外较早发布作品会有的影响,一个是会有很多小伙伴看到作品,可能会有创意上的碰撞产生更多的想法,也有可能会被很多建议冲晕头脑,一定要做好规划,慢慢来哦。

5.作品分享

  在互联网当中,也有着一套自己的行为标准和要求,以及我们各自的权利和义务,由于scratch官方鼓励将每一个上传至互联网的scratch作品都以开放的形式进行共享,我们建议大家也遵守这个提议,凡是上传至网络的作品均是公开的,任何人可以观看,体验,下载,也可以从新编辑再发布。

  同时上传作品时,最好能够感谢在制作过程中帮助过你的人,如果使用参考了他人上传的作品或者功能的设计,也务必注明。

  另外就是记得在作品介绍里说明如何操作和使用。

  虽然我们不建议这么做,但是如果你不希望别人再次修改你的作品,应当在作品介绍里说明。

6.Remix

  Remix是混合的意思,比如音乐的混合,饮品的混合等等,同样,当我们看到了别人发布的作品时,有时我们会想到一些自己不一样的创意,这时候便可以下载他人作品后通过修改加入我们的创意来做出自己新的版本。这就被称为remix。有时候我们也可以专门制作一些简单有趣效果的案例,方便别人在设计自己的项目时直接学习和使用。

  凡是没有特别注明的作品一般作者都是允许下载后再次修改的,但是在上传新作品是务必遵守规则,在介绍中予以说明注明原作者或作品地址。

7.提供帮助

  在学习和使用Scratch的小伙伴非常得多,大家都会遇到各种各样的问题,帮助别人,也是自我学习和成长的一个很好的方法,多去了解别人遇到的问题,能够帮助到别人,也能够看到很多他人的设计和想法,和大家互相学习。

8.团队协作

  有时候,我们会和其他小伙伴组成团队,来制作大规模的项目,在这其中也有一些需要注意的地方,一般建议团队规模3人以内。同时尽量是本地团队,当面协作和沟通效果最佳,当然,也可以通过互联网来寻找异地的合作伙伴,通过微信、QQ等通讯软件来保持联系。

  团队合作的方法一般有如下几种:

岗位分工

  将大家按照美术设计、程序设计、测试调试、音乐制作等岗位进行分工安排,每个人可以身兼多职,不过这种分配方式有些小伙伴是不用参与到程序的设计当中的。

任务分工

  将分析后的任务分给每个小伙伴进行制作,各自分担一部分设计任务,这种合作方式让每个小伙伴都参与到程序设计中,然而需要注意的是,如何统一工作,也就是如何将大家各自的内容整合为一个程序,同时对于程序中有共同用到的变量、列表还有角色名称等进行统一,这对额外的前期工作要求较高。

顺序分工

  这是最简单也是最基础的分工方式,以团队形式沟通讨论,确定任务方案后,划分任务流程,按任务顺序进行制作,前一个人完成自己的全部任务后与下一个小伙伴进行对接沟通。这类合作方式相比第二种比较简单,但是花费更多时间。

结对编程

  这是一个十分适合线下的特殊合作方式,两人公用一台电脑进行任务,一人主要负责操作,一人主要负责思考,所谓当局者迷,有一个旁观者一同进行任务有时候会有更高的效率。

9.时间安排

  一旦决定进行项目式学习就要给自己定下目标和要求,建议留出一定的时间专门来进行,当然,这是可以根据自身情况来灵活安排,周内可以安排一些碎片化的时间,周末可以安排一些整段的时间,切忌没有毅力,中途放弃,或者三天打鱼两天晒网,可以不用总是制作新的作品,但是一旦给自己安排了一个项目的制作,就要安排好时间,坚持下去。

总结

  对于scratch的项目式自学,父母们不需要对于scratch有过多的了解,但是请您作为孩子的后盾,给予孩子支持与鼓励,永远做孩子的第一个作品测试者。

  鼓励孩子对少儿编程保持兴趣,坚持下去,无论制作出的作品简单还是复杂,正是这样的一个制作的过程,是对孩子最大的考验和锻炼。

  我们不是在通过scratch发现未来的程序员之星,而是在通过scratch或者少儿编程,让孩子掌握能力,适应数字化时代的未来。

  学习scratch,我们想要培养孩子的能力和习惯,很多都是在这个阶段养成的,所以让我们勇敢的拥抱这个目前看似还很陌生的学习模式吧!

PS:流程案例

  确定项目:绘画板

  功能设想:至少有一根画笔和橡皮擦,还有一键清除功能,能够切换颜色和线条粗细,通过鼠标点击选择工具,并且可以放回工具区。另外还可以有线条和画方画圆工具,填色工具,印章工具。

  任务拆分:基本素材定位※、工具点选※、工具归为※、绘制线条※、擦除内容※※、清除按钮※、色板※、直线绘制※※※、圆型绘制※※※、方形绘制※※※、图形印章※※、修改笔触※※※。

  必要任务:基本素材定位※、工具点选※、工具归为※、绘制线条※、清除按钮※

  重要任务:擦除内容※※、色板※

  其他任务:直线绘制※※※、圆型绘制※※※、方形绘制※※※、图形印章※※、修改笔触※※※