编程学习并不一定与其他课程相冲突 两者可相互结合
本周美国总统巴拉克•奥巴马(Barack Obama)重新激起了两项互联网最喜欢的讨论:在葬礼上拍自拍照是否合适?是否大家都应该学习编程?
作为计算机科学教育周(Computer Science Education Week)的一部分,奥巴马通过YouTube发表一段讲话,题目为“奥巴马总统呼吁所有美国人学习编程”。
“学习这些技术,对你的未来并不重要,但是对我们国家的未来却有重要意义,”他说。“如果我们希望美国保持在最尖端,我们需要像你们这样的年轻美国人掌握这些改变我们做所有事情的方式的工具和技术。”
上一次我们听到类似论调是纽约市市长迈克尔·布隆伯格(Michael Bloomberg)发表Twitter消息称,为响应Codecademy网站将2012年定为“编程之年”,他将学习编程。但该观点却引来一些骂声。
“我敦促大家学习编程的力度不会超过敦促大家去学习修水管,”社交讨论网站Discourse联合创始人兼首席技术官杰夫·亚特伍德(Jeff Atwood)写道,他认为对于全面的教育而言,交流技术的重要性至少不低于编程。很多其他批评者指出,要开车并不一定就要学会如何装配引擎。
这一次,网络杂志Slate对马修·伊格莱西亚斯(Matthew Yglesias)称,美国很多人并不知道如何阅读英语,提高实际的读写能力应该比提高编程能力更为紧迫。
我仍然赞成让尽可能多的人掌握编程能力。如果美国所有人将大量清醒时间花在使用水龙头上,国会可能讨论那些会对水龙头用户的未来具有重要影响意义的法案;那么我可能会说,大家都应该至少学习修水管的基本知识。我同意《编程或被编程》(Program or be Programmed)作者道格拉斯·拉什科夫(Program or be Programmed)的观点——不知道如何编程不仅类似于不会开车,而且更类似当你开车的时候被遮蔽双眼。尽管我们没有教会所有高中学生如何装配引擎,但是我们通常会将告诉他们物理和内燃机的基础知识。同样,我们不能预期所有人都掌握足够的编程知识来建立Facebook网站,不过我们可以确保尽可能多的人能了解该网站如何建立的大致想法。
不过我认为我们都同意,学习编程不应该损害其他教育科目,例如阅读、写作和数学。幸运的是,学习编程并不一定会这样。事实上,这种技术能够与其他技术结合在一起。
数学是与计算机编程结合的最明显科目。史蒂芬·沃尔夫拉姆(Stephen Wolfram)——的兄弟康拉德·沃尔夫拉姆(Conrad Wolfram)是最激进的支持者之一。他所在的组织Computerbasedmath.org呼吁学生们不再死记硬背各种步骤,而是专注于使用计算机来探索巩固这些步骤的概念。
他在一篇博客文章上宣布与爱沙尼亚达成合作,重写该国的数据及概率课程,并表示“为什么让学生们仿真计算机如何进行这些运算,而不专注于想象思维、分析和问题解决?在这些方面,学生们应该比现在的计算机做得更好。”
同时,在大部分高中经济学是选修课程,不过该课程结构应该让更多学生学习,并且也是另一个可以结合某些编程课目的课程。目前已经有面向大学级别的生物学和物理学课程的编程书籍,这些书籍也可以进行调整从而符合高中级别课程。
不过,不只是数学和科学课程可以与编程结合。如果使用SuperCollider或者PureData来传授音乐理论,这将成为一种同时学习编程和音乐的有趣和互动的方式。纽约大学的亚当·帕里什(Adam Parrish)已经通过编程讲授创意写作。他向学生讲授一些Python的知识,之后让他们使用Twitter应用程序接口(API)来创造算法诗歌。
真正有趣的是,将多个科目结合在一起。我的梦想课程是,通过让学生打造、编程和玩基于Arduino的合成器,从而学习编程、电子学、数学、物理学和音乐。
对于这一点,大的想法是给学生提供一些早期、可以完成的目标。本周其中一篇最有趣的文章来自于一位匿名博主的《人们自感低能:这正是为什么他们不能编程》(People Feel Dumb: That’s Why They Don’t Code)。这是一个大问题:有研究显示,认为自己可以更聪明的学生在学校的变现更好。如果学生认为自己不能变得更聪明,他会被抛在后面。根据经验,我知道人们对于写作、绘画和其他创造性行为也有同样的感觉。
要打败这种“我不够聪明”或者“我没有那么高天赋”现象的其中一种最好方式是,让学生们获得早期胜利,让他们感到自己可以编程或者他们可以创造音乐或者他们可以做数学题——最好在此同时给他们讲授其他一些重要的东西。
但是,这种安排最难的方面可能是,教师培训。去年爱沙尼亚设计了一种课程,从而在小学讲授计算机科学。不过,将编程带到生活中的第一步是教师培训。我们应该在美国加强这一点。(翻译:何文伟)
- Code Literacy Doesn’t Need To Come At The Expense Of Other Skills (techcrunch.com)