教第一级的内容很有必要,像编程游戏或 code.org 里编程一小时挑战那样用做题的方式很结构化的教很高效。只是若光教这些,无异于买椟还珠。如何才能教好后两级?在很长一段时间里,我并没有答案。
我读《终身幼儿园》一书时曾发出感慨:
作为一名软件工程师,深深觉得孩子们通过学编程,可以收获的东西非常多。
第一级: 变量,数组,事件,条件判断,循环…… 所谓编程思维。
第二级: 拆解问题、识别模式、抽象化、编写算法来解决……也就是通常所说的计算思维。
第三级: 尝试、探索的习惯,用编程的方式表达想法的能力,创造力……
Scratch 可以教孩子们所有这些,可有多少人只停留在第一级呢?
教第一级的内容很有必要,像编程游戏或 code.org 里编程一小时挑战那样用做题的方式很结构化的教很高效。只是若光教这些,无异于买椟还珠。
如何才能教好后两级?在很长一段时间里,我并没有答案。
后来看到哈佛的创意计算思维三位框架,惊喜的发现它和我想的三个级别非常接近,但它说得更到位。特别是第二维的四条,每一条都都在工程实践中有重要价值,每一条也都刚刚好可以通过编程很好练习,这样的提炼令人击节赞叹。
怎么教这些内容,哈佛也给了回答:它有一套 Scratch 创意计算课程。
这门课程有很多有意思的环节,例如动画单元有故事接力,让孩子们体验重用和翻创。游戏单元给了很多样例启发你扩展游戏的思路。尝试、调试,更是每一章都不会缺。此外,课程虽然没有提及 PBL,但很多环节的设计却很能体现 PBL 的理念,也用到了不少 PBL 小工具。
通常的编程游戏挑战,或者“跟着我做、第一步、第二步、第三步”这样说明书式的教学,多半只能教“概念”维度的内容。“实践”维度的内容,需要用哈佛课程中的方式来教;“观念”维度的内容,需要在长期的实践中一点点形成。
因为“纸上得来终觉浅,绝知此事要躬行”。
尝试不是听老师说“试试看这个按钮有什么用”,然后不假思索的点击一下;尝试是对某些东西产生好奇、形成猜测、然后动手操作去验证。
迭代不是按着 step-by-step guide 一步步照着拼搭做出越来越复杂的东西;迭代是做做想想、想想再做做,在创意思考的螺旋中一点点改进。
测试、调试虽然有套路,抽象/模块化虽然也能有前人总结的模式直接拿来用,但这样的套路或模式也不是看着书背诵一下就能掌握的。学习者在其中有多主动才是关键。
哈佛课程的最大妙处,就在于很有策略的让孩子们在学习过程中充分发挥主动性。这套课程早在 2015 年就翻译成中文了,但一直没有能被好好用起来。我曾问过很多老师,有说自己缺乏创意所以教不了创意的,有认为课堂时间过短无法开展的,还有担心给孩子们自由度太大自己编程能力有限 HOLD 不住的。
一直都为此感到可惜,但也一直没什么好办法。直到最近,我的想法才一点点清晰了起来。
老风在ET沙龙分享他用 PBL 的方式带孩子们玩 micro:bit,很受好评,但也还是听到不少老师说教大班、时间有限,这样的课程无法开展。
后来在 12/08 ET 线下沙龙,三有 PBL 的创始人华杰说了个体育老师的例子:参加完三有 PBL 培训的体育老师说他不会以 PBL 的形式去上体育课,但是会把 PBL 的理念和一些小工具在体育课上用起来。
忽然明白,对于哈佛的这套创意计算课程,也是一样的啊。也许老师们没法直接使用完整课程,但课程中的某些环节设计,是完全可以借鉴的。我若能把这一个个环节分别对应什么能力、在真正工程实践中这些能力是如何发挥价值的、工程师又是如何培养这些能力的都讲清楚,能对老师有启发、让他们在不管什么语言、什么类型的编程课上把其中几个环节的方法用起来,就已经很好了呢。
这就是我接下来会努力去做的事了。期望能用从工程师角度的解读,给老师们更多的“实践”维度教学的启发。本周末我会在和三有一起开的 PBL x 编程创客工作坊上给大家着重讲讲模式/抽象和调试技巧,后续也会多写写相关文章、办办 ET 线下活动,让哈佛 Scratch 创意计算课程和三维框架的精髓更好的被用于课堂中。