Youngjongdo Airport Passenger Terminal, Seoul, South Korea, Roof Plan and Elevation
本书初版于 1980 年, 却以在今天看来仍然超前的高度构建了不同于我们通常理解的计算机角色, 作者对计算机和教育问题的探索主要集中在两大主题: 第一, 儿童完全可以成为计算机的主人; 第二, 学习使用计算机可以改变他们学习其他知识的方式. 1960 年代, 世界范围内课程与教学改革的呼声此起彼伏, 一批有远见的人工智能与认知科学家对学校教育和学习研究提出了尖锐的批评, 并开创了学习科学这一新的研究领域. 西摩. 佩珀特是其中的先行者, 他早早地预见到了计算机对于人类文化, 知识体系, 思维模式可能产生的深刻影响, 本书介绍了他的相关理念和实践, 以 LOGO 语言为思考工具, 结合大量翔实有趣的例证, 阐述了作者对儿童学习与思考方式的见解.
最近几年,"编程热" 席卷全球. 2017 年 7 月, 国务院发布《新一代人工智能发展规划》, 这项规划专门强调在中小学设置人工智能相关课程, 还要逐渐普及和推广编程教育, 成为少儿编程在国内的引爆点. 眼看 "编程" 就要成为下一个 "奥数", 学校, 培训机构, 家庭结成阵营, 迫不及待推着孩子加入学习编程的 "大军", 但很少有人认真去思考: 编程到底是什么? 孩子为什么要去学习编程?
早在 1960 年代, 在美国, 就有一群人关注到了这些问题. 一批有远见的人工智能与认知科学家, 对学校教育和学习研究提出了尖锐的批评, 并开创了 "学习科学" 这一新的研究领域. 西摩. 佩珀特是其中的先行者. 在那个一台电脑要几千美金的年代, 佩珀特就在想, 怎么才能让电脑成为孩子学习的好帮手, 让孩子成为电脑的主宰, 让孩子通过电脑这一媒介来表达自己, 并且将自己浸泡在各种强大的思想当中. 换言之, 佩珀特关心的是怎么提供一种建构式的学习, 而非灌输式的教育.
1980 年, 佩珀特写下这本书,《因计算机而强大: 计算机如何改变我们的思考与学习》([美]西摩. 佩珀特著, 梁栋译, 新星出版社 . 读库出品 ,2019 年), 卓有远见地预言说,"一台超级计算机的价格会和打字机或是电视机持平","也许到了某一天, 货架和罐头也能说话". 这些预言无疑已经全部实现, 而佩珀特在书中对编程的看法, 在今天看来仍然显得新潮, 犀利, 令人难以相信这竟然是一本四十年前写成的书.
在讲书之前, 有必要先来介绍一下作者,"传奇人物" 佩珀特. 1928 年, 佩珀特出生于南非, 1954 至 1958 年在英国剑桥大学从事数学研究, 1958 至 1963 年在瑞士日内瓦大学, 在这里遇到了著名教育家和儿童心理学家皮亚杰, 并在他的门下学艺, 这段经历促使他思考如何利用数学去理解和解释学习者的学习与思维.
20 世纪 60 年代初, 佩珀特来到美国, 进入麻省理工学院, 在这里创办了人工智能实验室, 后来成为麻省理工终身教授, 教育信息化奠基人. 佩珀特的最著名的成就之一, 是于 1968 年发明的 LOGO 编程语言, 他一直致力于通过 LOGO 语言帮助儿童成为他们自己 "智力建设" 的建设者. 他的另一项成就是 "做中学"(Learning by making)的建构主义观, 在他看来, 好的教育不是如何让老师教得更好, 而是如何提供充分的空间和机会, 让学习者去构建自己的知识体系.
要解释清楚佩珀特将编程作为学习工具思路, 我们得先来聊一聊齿轮. 佩珀特在很小的时候就迷上了齿轮, 他着迷于让所有圆形的物体像齿轮那样旋转, 他搭建出的第一组积木玩具就是一个简单的齿轮系统. 借助齿轮, 佩珀特把很多无比抽象的概念变成可以在头脑中运转的思维. 比如, 他把乘法口诀看成齿轮组, 把二元一次方程式想成齿轮差速器. 这样思维转化的好处不只体现在认知层面, 帮助他用旧知识解决新知识; 更重要的是在情感因素上的积极影响: 齿轮让他别眼中的数字世界变得分外简单.
在佩珀特将看来, 齿轮的作用一方面跟数学知识相连, 一方面跟孩子的 "身体知识" 相连, 孩子们可以成为一个齿轮, 把自己代入到齿轮运动中, 从自己的感官动作来体验齿轮, 从而理解它的工作原理. 这种抽象和具象并存的双重关系, 赋予齿轮一种力量, 能够让人深深爱上数学.
佩珀特想做到的, 是为孩子们设计这样的思考工具, 让他们能够以自己的方式来构建思考和学习的方式. 他发明了 LOGO 编程语言, 这一语言非常简单, 任何一个小孩一天就能学会. 在 LOGO 的世界里, 你能看到一只小海龟, 你可以通过输入指令, 让海龟在画面上走动, 可以向左, 向右, 向上, 向下, 或者是按照你指定的角度进行移动. 你还可以让小海龟以加速或减速移动, 当然, 你也可以让小海龟重复某一个动作. 这些指令看似简单, 但假如你能将其进行合理的组合和排序, 你就可以创造出各种东西, 包括人, 房子, 汽车, 动物, 抽象图案...... 佩珀特发明的 LOGO 编程语言, 尝试把计算机变成一种比齿轮更灵活的工具, 它改变了具象思维和形式思维的边界, 几乎无所不能, 让孩子能够体验到齿轮对儿时的他所起的作用, 让他们爱上数学, 科学和其他通常被视为抽象深邃的学科.
这种学习方式的好处显而易见: 学习者从一开始接触到的就是真实的世界, 在需求的驱使下自发学习, 并能得到及时和有效的反馈.
LOGO 语言的自学途经, 是把自己代入小龟, 在个人行为和形式语言间搭建一座桥梁. 孩子们能从小龟那里学到的最重要的知识, 是学到怎么去学习. 首先, 我们想学一样东西, 首先要明白为什么. 然后, 我们要清理解题思路: 能否把这个问题分解为更简单的子问题? 能否找到它和已知问题的相似性? 哪怕每一步都很小, 很简单, 我们也可以由此构建出一个庞大的知识系统, 甚至理解递归, 微积分这样的概念. 而且, 不用害怕犯错, 在 LOGO 环境中, 做错了不会受到任何遭罪,"捉虫" 这个过程再正常不过, 孩子们很快就会意识到, 研究自己的错误是一件非常值得去做的事.
让我们来试着回答开篇提出的第一个问题吧 -- 编程到底是什么? 编程的本质, 是一种对人的思考进行再思考的行为. 在编程时, 我们只有在想清楚之后, 才能把程序写出来. 事实上, 编程是将人的想法 "实体化" 的过程, 这要求我们进行更深入, 更细致, 更全面地思考. 为了实现一个需求, 你必须对其原理和运转流程了解得十分透彻, 否则就无法用编程语言精确地描述出来让机器去执行. 在实体化的过程中, 想法的结构缺陷和逻辑漏洞会自然凸显出来, 你总会发现存在没有考虑到的可能性, 以及需要进一步思考的细节. 在编写正确, 高效, 优雅的程序的同时, 我们也在不断塑造自己的大脑, 让它能思考得更清楚, 运转得更高效.
通过 LOGO 语言的教学实践, 佩珀特在书中构建出一个教育乌托邦, 并不是孩子们被种种高科技环绕的未来, 而是一个孩子们学习, 思考, 以及情感和认知方面得以成长的美好前景. 佩珀特也看到了践行这个乌托邦理念会非常困难, 因为人们总是习惯性地做出选择, 而不是选择最好的答案. 我们常看到学校或机构将计算机当作一个训练学生的工具, 重复以前没有这个技艺时所做的工作, 只是方式略有不同而已. 计算机在教育应用中的保守倾向, 把老式的教学方法和新式的技术简单地组合在一起, 但真正的 "计算机教育" 绝非如此. 我们需要的不是 "没有马的马车", 而是 "汽车", 计算机带来的教育变革要做的就是发明一个 "教育版的汽车".
这本书涉及一个更大的论点, 那就是计算机如何改变我们教小孩子学数学的方法, 以及更基本的, 如何影响我们的文化氛围里对知识与学习的态度.
我们对学习的恐惧和对数学的恐惧一样普遍, 还有人因为一些学校生活的惨淡回忆, 主动背上了某种缺陷的身份标签:"我学不好数学"" 我学不好法语, 甚至学不好语言 ", 这种说法被一再强化, 成为迷信, 导致的是对学习的禁忌将伴随他们的一生. 对于这类人来说, 佩珀特的观点非常地鼓舞人心, 他认为, 这种负面认识是可以克服的. 我们所谓的弱点, 往往是从强项中生长出来的. 比如, 一个长于写作的孩子往往认为自己的数学不好, 但是在佩珀特描述的数学王国里, 一个孩子对文字的热爱和表达技巧, 可以帮助他学习数学, 而不是从中作梗, 反过来也一样行得通.
佩珀特讲到了一个参加计算机试点教学的学生的例子, 这位十三岁的珍妮, 成绩 "一般般", 她参与的项目是 "计算机诗歌", 也就是说, 用计算机来造句. 他们需要构建一个句法结构, 然后提供给计算机一定数量的词汇, 让它随机选择. 有一天珍妮突然兴奋地宣布:"我知识为什么要有名词和动词了!" 可见她之前的语法学习, 从来没让她明白一切的意义何在. 我们中很多人在学校中经历的漫长数学学习, 也跟珍妮的很相似, 我们不知道数学是什么, 为什么要学数学, 甚至连学校里的老师也解释不清. 学校数学往往教授的是 "死" 的数学知识, 老师通过黑板, 粉笔能教授的东西, 但计算机的引用, 可以创造一种学习数学的全新模式: 把技算机视为数学表达的媒介, 一种能让我们开放想象力, 为自己量身定做的有意义, 有系统性, 易于学习的数学课题, 一种为学习而生的, 有尊严的数学.
在佩珀特看来, 计算机的存在可以促成人文和数学 - 科学文化的整合, 这不是要把数学变成文学, 文学变成数学, 而是拆掉隔在他们之间的限制.
讲到这里, 或许我们可以回答本文开篇提出第二个问题了, 孩子为什么要学习编程? 是的, 正如佩珀特所说: 编程对孩子学习的效果如何, 取决于用编程做什么. 孩子应该利用编程作为学习其他课题的工具, 而非只是为了学习编程而学习. 让孩子学习编程的目的, 是为他们提供思维模型生根发芽的土壤.
话说回来, C/C++ 就是一个既可以强化思维能力, 又可以打好编程基础的编程语言, 你想要做软件开发, 成为核心程序员的话, 学习 C/C++ 是比较好的选择, 笔者有一个 C/C++ 的编程千人湫羣 (604,168,719) 你如果感觉自学 C/C++ 语言有困难的话, 有兴趣学习或者了解一下 C/C++ 编程的伙伴就可以进来交流. 下面给大家分享一下 C/C++ 的学习路线图:
来源: http://www.jianshu.com/p/e98ce61f8e5d