点燃孩子们编程的热情
大约一年前,我收到我在印度尼西亚的侄子 Efraim 发来的一条 Facebook 消息。Efraim 说有个学校项目,问我能不能帮帮他。“我得做些跟电脑有关的事情”,他在消息中说。
我建议他创建个网站,用 HTML5、CSS 和 JavaScript 创建个简单的网站。跟我聊了几次,又从 Codecademy 学了些东西,他完成了项目。对于他的成果,他的老师感到非常骄傲,我也如此。
我开始思考,这也许不仅对我侄子来说有趣又有用,对于其他孩子也一样。所以我开始了一个项目, CodingStuff.org ,点燃孩子们的热情去学习编程、开发应用、设计网站、全面熟悉技术。
八月份,我拜访了在荷兰梅珀尔的中学母校 Stad & Esch。在这所学校上学时,我和一些朋友创建了一个计算机俱乐部,我们称之为 Optisoft。我们开发出一些小应用,讨论 multicolor sprites,收获了很多乐趣。
我想,为什么不再来一次?我给 Stad & Esch 中学发了条推特:“我很想在学校组织一次 Hackathon@School 活动”,学校的回答很直接:”这很酷,让我们约个时间吧。”
现在,我是 Stad & Esch 中学的访问教师。2015 年 1 月,我开始教授孩子们编程。去年 6 月,我在 Red Hat Summit 之前为 Devoxx4Kids 举办了一次 workshop。
编程为什么重要?
1982 年,我只有 12 岁时,得到了一台 Commodore VIC-20 。随机附带了一本手册,其中有教授如何编程的教程。通过学习这个教程,接着阅读杂志,尽管我当时如此年幼,我还是开始了编程之路。我只编写了些小程序,但我学到了如何解决问题和难题,学会如何进行逻辑思考。
我学习编程的热情似火,我想去特文特大学 (University of Twente) 学习计算机科学,成为一名软件开发者。在 Commodore 128,Atari 1040 ST 和 Philips P3105 等计算机上使用 BASIC,Pascal 和 Turbo Vision 等编程语言进行编程后,我终于到了可以去特文特大学学习的年龄。
大学毕业后,我参与了许多公司的多个项目,还曾参与过一些辅助项目。我的编程技巧和经验总是能够帮我找到创造性的解决方案,去适应日新月异的技术环境。
如今,每个人都拥有一部手机或是一台计算机,多数人两样都有。孩子们生活在一个与我年轻时完全不同的世界中。这个世界中充满了各种 Web 服务 —— YouTube、Netflix 和 Facebook, 这些都是生活的重要组成。
现在每家公司都是软件公司。甚至那些运输实物商品的公司也需要某种类型的数字存在。就像了解点医学有助于与医生进行更具意义的沟通;了解点技术的工作原理有助于你更好地应对这个时代。
在未来,技术的数量及我们对技术的依赖只会增加。如今的学生不仅需要能够使用技术,还要能够理解和掌控技术。
Stad & Esch 中学理解这一点,并要求我每周为年龄为 11 岁至 13 岁之间的孩子们上一小时的课,教授编程及相关技术。
Hackathon@School
我以 Hackathon@School 的方式开始了我的课程,一个专为孩子准备的 hackathon 。Hackathon(也被称为黑客日、hackfest 或是 codefest)是一项由计算机程序员及其他人员参与的软件和硬件开发竞赛,所有参与人员包括图形设计人员、界面设计人员和项目经理,紧密合作完成软件项目。
我利用我们的 hackathon 已一种不同的教授方式开始课程 —— 不仅仅是讲述和解释,也让孩子们得以实践。我稍作解释,孩子们就开始实践,相互帮助。在这一 hackathon 中,他们学会了 HTML5 和 CSS 的基本知识,他们聚精会神,收获了许多乐趣。
当然,正如一个真正的 hackathon 那样,我们以难题结尾。通常,是不允许在教室吃东西的,但学校对我们的 hackathon 网开一面。现在,孩子们对每次课程后的难题充满期待!
课程
在 Hackathon@School 活动之后,我必须为我的课程确定一个课表。
我的目标和学校的目标,是点燃孩子们对技术,主要是对编程的热情。这些课程不是强制性的,参与的学生来自不同年级。我想让课程能够引起他们的兴趣,让他们觉得很棒。我想应该做点与网站和智能手机相关的东西!我很清楚我们要从 HTML、CSS 和 JavaScript 开始。这些技术的一个优点是,不需要安装太多额外的软件。只需要一个浏览器和一个编辑器。
我决定把课表分成几个部分。我们已对 HTML、CSS 和 JavaScript 的介绍开始;进而开发一个名为 Flappy Bird 的游戏,为智能手机开发一个应用;最后,把所有技术整合在一起,我们创造出一个监视器应用。
最为重要的目标是让孩子们对编程产生兴趣,这样他们就可以在家练习或是在学习成立一个编程俱乐部。他们或许可以参与 CoderDojo ,这是另一个可以让孩子们学习编程的地方;或是去另外一个很酷的地方 Jorcademy.nl ,这是个由 13 岁的 Nick Jordan 创建的荷兰语在线编程学校。
我的课程的基本结构总是以一堂关于未来技术的课开始,在这堂课中我会谈到诸如机器人、3-D 打印等各种各样的新酷技术。我会播放一段 YouTube 视频,比如关于舞蹈机器人的这段视频。在这之后,才会开始我们的课程。
对于每一课,我都准备了带有讲解和作业的演示。我先做些讲解,然后给孩子们布置一份作业。接着孩子们去完成作业。他们组成小组,互相帮助。对于一些问题,有时我并没有答案,但是总是会有优秀的孩子能给出答案。
My Friends 应用
我们以学习 HTML 和 CSS 开始,接着我觉得用这些技术开发个智能手机应用比较酷。Friends books 是一款收集你最好的朋友们信息的流行应用。所以我想出了一个 My Friends 应用。这款应用有一个页面,其中有一个朋友列表。还有个详情页面,其中包含了关于每个朋友喜好的信息,例如,他们的嗜好,他们想要成为什么人。
孩子们只用 HTML 和 CSS 在编辑器中创建,在浏览器中浏览这些页面。为了把孩子们的网页转换成一个能在智能手机上运行的真正的应用,我使用了 Ionic。Ionic 是个完全开源的SDK,可用于混合(Hybrid)移动应用。Ionic 建构于AngularJS 和Cordova 之上,它为利用诸如 HTML5 和 CSS 等网络技术开发移动应用提供工具和服务。
我在 Ionic 的基础上编写了一个生成移动应用的工具,网络页面准备好了后,我用这个工具把它们转换为移动应用。孩子们看到他们自己开发的应用运行在智能手机上非常的自豪。
Flappy Bird
玩游戏总是很有乐趣,那么为什么不制作一款游戏呢?有许多的框架可以帮助开发游戏,比如 Phaser 。我在 workshop 的演讲中说明了如何编写自己的Flappy Bird 游戏。
我们再一次从HTML 和CSS 开始。这样不需要什么都要解释一遍 —— 例如,我们主要利用CCS 来让网站更漂亮。我们使用 CSSDesk 这样的沙盒网站来练习 HTML 和 CSS。
接下来是 JavaScript,关于 JavaScript 和编程语言大体上我做了些讲解。并且,我也解释了库的使用:不需要什么事都自己做。为了开发 Flappy Bird,我们使用了 Phaser ,一个快速、有趣且开源的用于创建浏览器游戏的框架。
我为编写 Flappy Bird 游戏准备了一些作业。在完成作业的过程中,孩子们会在游戏中加入小鸟,改变小鸟,加入管道。当他们完成最后一份作业后,就可以开始玩这个著名的 Flappy Bird 游戏了!
开发属于自己的 app
有时,真的会很让人惊讶。我的一名学生找到我,问道,“Henk 先生,我们真的很想开发一款真正的 app,就像你在工作中做的那样!”
我是名前端开发者,我用 Ionic 框架开发应用。我想为什么不呢?
我们开始安装 NodeJS、NPM 和 Ionic,每一步都进行讲解。在后续的课程中,我们配置了 Android —— 一名 11 岁大的孩子向我透露,在我们的计算机里有一个 Android 模拟器。
在最后一课,我们对一个 Ionic 示例 app 进行了修改。孩子们发现开发一个自己的 app 并把它装到他们的智能手机上真的很酷。下一学年,我们将会在 app 开发上更加深入。
监视器应用
为了把我们所学的都结合再一起,我们开发一款监视器应用。这个监视器由一个带摄像头的树莓派和一个智能手机应用组成。
我们开始开发了一个 app,它可以展示来自网站的图像。完成这个 app 后,我们把它连接上树莓派。我们参考 Jacob Salmela 的文章“ Raspberry Pi Webcam over the Internet Using MJPG-Streamer ”配置好了树莓派,使它可以用摄像头捕捉图像。
我们的监视器应用完成了。把摄像头放在教室,我们就可以在我们的 app 上看到图像了!这真的很有趣!
Devoxx4Kids 波士顿
在六月,Devoxx4Kids 给了我在波士顿进行一次 workshop 的机会。Red Hat 组织的年度盛会 Red Hat Summit 在 2015 年也主办了第一次 devoxx4kids。 Devoxx4Kids 致力于用有趣的方式向青少年介绍编程、机器人和工程技术。我希望能通过我的 workshop,“开发你自己的Flappy Bird 游戏”,让青少年们在开发一款Flappy Bird 游戏时,了解HTML5、CSS 和JavaScript。
我的workshop 里大约有20 名孩子,从6 岁到16 岁。他们都极富热情。那天有六个workshop,我的workshop 在10 点开始。我带了些礼物和名为Drop 的传统荷兰糖果,但是他们对这些不太感兴趣。我展示了未来课程的视频后,以HTML 和CSS 开始,结束时完成了一款酷酷的Flappy Bird 游戏。
孩子们非常喜欢这个workshop,也学到了很多。他们中许多人都是第一次使用HTML、CSS 和JavaScript。这些孩子对Windows 比较熟悉,可我们的笔记本电脑安装的却是Linux 系统,但这对他们来说毫无问题。
总结
在过去的半年中,关于如何教授孩子们编程,我学到了很多。我学会了如何把复杂的事情变得明晰,我改进了我的教学技巧。绝不要低估这新一代的孩子们。他们比你想象的知道的要多,他们知道如何找到信息,知道如何运行这些信息。
他们都很聪明、很积极且满腔热忱,无论是在荷兰,还是在美国。我们要做的就是点燃他们编程的热情,用有趣且酷的课程在编程上给予他们一些指引,然后就等着见证奇迹的发生!
而目前我能确信的是,我热爱教学:教授下一代孩子们编程和技术。我的梦想是,有一天我的学生会说,“感谢Henk 先生,我发现了我对编程的热爱。”
因此,我将继续教授全世界的孩子们,并向他们分享我的经验。我愿意继续在学校和Devoxx4Kids 教学。此外,我还想扩大我的Coding Stuff 项目。
去印度尼西亚点燃那儿的孩子们编程的热情不是很棒吗?
关于作者
Henk Jurriens是名技术倡导者和软件开发者,他拥有计算机科学硕士学位。Henk 充满热情、渴望学习、热爱编程。他努力地让人们对新技术充满热情。除了作为一名软件开发者工作之外,Henk 创建了 Coding Stuff,这是一个教授孩子们如何编程的项目。Henk 还是一所中学的访问教师,教授孩子们如何编程。业余时间,他喜欢旅游和遛狗。请浏览他的 LinkedIn profile 或是 follow 他的 Twitter 。
评论