学习编程思维
《学习场景的革命》章节:学习编程思维,去读读网友提供全文无弹窗免费在线阅读。!
如果你自己也想找点硬核乐趣,那不妨试着编一个Logo语言程序来绘制如图9-3所示的图案。
图9-3 用Logo语言绘制的看似复杂的图形
信不信由你,看似如此复杂的图案,其实只需要编写一个非常简单的程序就行:
to star:size:limit
if:size <:limit [stop]
repeat 5 [fd:size rt 144 star:size/2:limit]
end
许多年以来,我见过无数儿童精通Logo语言,用其创作了许多惊人的复杂项目,而且他们对其背后的原理掌握得十分透彻。我们作为教育者所面临的挑战则在于,如何更好地创造一个学习的环境,不仅仅是允许,而且要做到让孩子们能够自由自在地在几何知识的海洋里探索。
Logo语言是一种表处理语言,这意味着它不是只能用来绘制图形。举个例子,用于绘制图9-3的程序就使用了递归。递归是指在运行的过程中调用自己,即程序自身在该程序中“重复出现”。
对大多数儿童而言,最早接触这个有些难以理解的概念大概是通过《杰克建造的房子》(The House That Jack Built)这类童谣故事或《圣诞节的十二日》(The Twelve Days of Christmas)这样的圣诞颂歌。
儿童们同样可以通过编写程序来处理文字或构建其他他们在日常生活中会遇到的事物。我之所以会强调以编程的方式绘制图案,完全是出于个人的兴趣爱好,绝非是受到Logo语言的功能限制。
类似递归这样的复杂概念在思考很多问题时都是一种强大的思维工具。学习如何调整程序的过程同样是一个发展可迁移技能的过程。如果技术化洞穴能提供给我们学习Logo语言类似的编程语言的机会,那我们都将终身受益。
毋庸置疑,我们前面描述的编程类活动能够引发我们的独立思考,因此此类活动当然非常适合纳入数字洞穴之中。
实际上,任何能让学习者醉心于思考的活动都可以纳入洞穴中。举个例子,我曾给我的小孙女比安卡一套指尖环设备,指尖环内置有不同颜色的发光二极管。灯一亮,她就立马沉醉在自己的小世界里,她移动着手指,看光束在墙上变幻出奇光异彩。然后,我运行了一个叫作“光影涂鸦”(Glow Doodle)的程序,这个程序由麻省理工学院媒体实验室的埃里克·罗森鲍姆(Eric Rosenbaum)和杰·西尔弗(Jay Silver)编写。通过该软件,她移动发着光的手指就能在电脑屏幕上画画,因为内置的网络摄像头能够追踪她手指的运动轨迹。此类活动能引发各个年龄段的儿童做出各种猜想,比如,这个科技加持的手指画程序能够创作些什么图案,此类活动又能激活什么运动技能,等等。
对高年级学生来说,像GeoGebra这样的数学软件能让他们在构建代数表达式和绘制几何图形时,对数学课程中的核心概念做长达几个小时的深入思考。例如,完全可以让学生利用此类工具针对“营火,听知识权威者讲述”这一章中提到的分比萨的问题进行深入探索。任何对电视剧《数字追凶》(Numb3rs)感兴趣的人,也都可以用GeoGebra深入探索该剧中的一些想法。
不过,总待在洞穴中肯定不行,我们迟早都要出洞,走向生活学习场景,走向实际应用的世界。
给学习者的启示
1.编程是一门兼具创造性和反思性的学科,当学生自己编写的程序并不能按照预期运行时,编程的重要价值就彰显出来了。正是通过不断调整程序,学生才得以不断进步。
2.类似递归这样的复杂概念在思考很多问题时都是一种强大的思维工具。学习如何调整程序的过程同样是一个发展可迁移技能的过程。