记得当年我在大学初学编程时,课本是一本pascal编程书,第一章介绍了这门语言的基本语法,后面是它的各种高级功能。学完这门课,还是不太会用那些基本概念(比如循环、函数等),也不清楚解决什么问题时需要用到它们。现在回头再看,才发现对于初学者来说,以学多用少的方式直接学text-based的语言也许不是最好的选择。text-based的语言会让我们过于注重语法细节(比如每行代码后面要加分号,一段代码要用大括号括起来等等),反而忽视了编程思维的培养。而且学多用少的这种学习方式,让初学者在刚刚知道一个概念后就接着学下一个,没有把每个阶段都夯实,这样积累起来的知识大厦也很不牢固。
所以我们选择先让孩子们从block-based的语言学起。孩子们通过拖拽block就可以编程,完全不用担心语法细节。这样编程的重点就自然转到了编程思维上,也就是如何抽象一个问题,如何用一个算法解决它,以及如何组织blocks来实现这个算法。对于每个基本概念(比如loops,events,functions,conditionals等),我们不是“教”给孩子们这些概念,而是针对每个概念抛出一系列的问题。孩子们解决了这些问题,也就掌握了这些概念,知道在哪里用它们,以及如何使用它们。
学习完基本概念后,我们就可以使用block-based的语言来解决复杂问题了。孩子们会做一些难度逐渐增加的project,还会参加一些workshop。project可以自己完成,比如build a band, storytelling等等。workshop则需要分组完成,从开始的分组brainstorming,明确各组的任务主题,设计实现,到每个组的presentation,收集反馈reflect,大家分工合作来完成。
在孩子们具备了良好的编程思维后,我们会开启text-based语言的旅程。
领取专属 10元无门槛券
私享最新 技术干货