作者简介
种瓜系英荔教育架构师,同时为英荔官方合作伙伴——非营利编程教育组织 CodeLab 创始人、CodeLab Adapter 核心开发者、国内人工智能学术社区 PaperWeekly 联合创始人、在线教育开源社区 Open edX Authors & 中国社区发起人之一。
2022 年,种瓜担任 MicroBlocks 的中国区官方大使(由风靡全球的 Scratch 联合创始人兼首席架构师、 MicroBlocks 创始人 John Maloney 官方指定)。
英荔教育与 CodeLab 均为 MicroBlocks 官方合作伙伴,将共同面向全国推广这一小巧、快速、用户友好的图形化硬件编程平台,让其惠及更多编程群体。
MicroBlocks 是一种免费/自由的、类似于 Scratch 的图形化编程语言,支持许多具有教育属性的微控制器主板,如 micro:bit、ESP32/ESP8266、树莓派 Pico 等,欢迎使用 MicroBlocks 来学习物理计算/硬件编程。
MicroBlocks 中文主页(microblocksfun.cn)
MicroBlocks 简介
The challenge is not building it but understanding it。——Bret Victor 《Seeing Spaces》
让学习者专注于解决问题而不是操心系统机制。——John Maloney
MicroBlocks 是硬件编程(物理计算)领域的 Scratch, 它是第一个具有 Scratch 临界质量的硬件编程平台,能够帮助数以千万的新手真正入门。
MicroBlocks 试图解决什么问题呢?或者说当前的硬件编程领域存在哪些问题?
硬件编程太难入门了
入门太困难了!我在给老杨的礼物里记录了我们所受的苦:
我跟老杨便决定好好学习单片机编程(或者叫它硬件编程/物理计算),那时我已经有一些软件编程经验,但只是初学者。很快我们就发现,学习单片机太难了!可怕得像一场灾难。
翻了后一页,就忘了前一页的内容,因为每一页都有无数细节,根本记不住。也不知道哪些重要哪些不重要,作者只是一股脑都告述你。玲琅满目的新名词,看起来完全不像中文,读起来像生造词。每一个概念又牵扯出一大堆其他概念,好像永远没有尽头。我们这本看不懂,就看那本,但都差不多。
…
多年后,我在阅读《Mindstorms》时, 几乎感动得落泪,这是一个何等慈悲善意的心灵,为初学者少受些苦难,对教育界宣战,“要改变的是学校的教育机制,而不是孩子”。Seymour Parpert 所抨击的计算机教育里的那些灾难性想法/做法,我大多都亲历过,尽管这本书在我上学时,已经出版了 30 年(40 年后才有中文版),但整个计算机教育领域好像闻所未闻似的(今天基本依然如此)。可想而知,主流计算机教育领域到处都是车祸现场(今天基本依然如此)。
当我遇到 MicroBlocks,我突然意识到,这可能是我十年前跟老杨一直寻找的东西。十年过去,它终于出现了。如果我们在上学时遇到它,能用它来做多少有趣的东西呀!
Arduino 与 MicroPython
正在阅读文章的你可能是一个有经验的 Maker(创客),觉得 Arduino 已经很好地解决了入门困难的问题,它让业余爱好者也可以很好地玩转硬件。的确,Arduino 是硬件编程领域的重大进步,让这个领域不再那么令人生畏。在 Arduino 之后,MicroPython 又进一步降低了门槛。
可能是门槛实在太高,即便降了不少,对于没有任何经验的编程新手,依然令人生畏。
图形化硬件编程
随着 Maker/STEM/少儿编程在教育领域引发越来越多的关注,更多的人试图进一步降低编程的门槛,让新手不仅能进行软件编程,也能成为 Maker,对现实世界的硬件进行编程,进而制作各种有趣的小发明。
Scratch 在帮助新手入门编程方面取得了巨大成功,截至今天(2022.11.22),单是 MIT Scratch 社区就已经有 9958 万的用户,年龄段分布从 4 岁(22 万)到 80 岁(1.2 万)。
他们在社区里一共创作了 1 亿 1708 万个程序项目!
也许是受到 Scratch 的鼓舞,人们想把 Scratch 的成功经验移植到硬件编程领域,他们的想法是,使用图形积木来控制硬件!
这便是今天数以百计的公司(Google、微软和乐高…)和高校(CMU、MIT、UC Berkeley…)正在做的事情。
可是,仅仅将代码图形化是不够的。
图形化编程环境通过减少编程过程的语法错误来帮助学习,一些研究表明,学习语法的困难只在早期阶段会遇到,学习编程的一个更大挑战是,学习者需要能够正确预测源代码的更改对程序运行行为的影响。
MicroBlocks: 解决真正的挑战
这个更大挑战正是 MicroBlocks 试图解决的大问题。
MicroBlocks 通过提供拥有活性(liveness)的编程环境,缩短了反馈循环,从而鼓励学习者通过「试错」进行实验和编程。这些改进极大提升了编程的「可理解性」。
MicroBlocks 相较于其他编程平台具体优越在哪些地方?我在比较图形化硬件编程平台做了细致讨论。
我曾经在硬件编程上吃了太多的苦,这正是我如此热衷于分享 MicroBlocks 的原因:不希望新手们再去忍受那些不必要的痛苦!
从 MicroBlocks 开始你的硬件编程之旅吧!
文章投诉热线:156 0057 2229 投诉邮箱:29132 36@qq.com