“耶!我们第一个到了!”
在洛斯阿尔托斯市洛约拉小学六年级的艾莉和劳伦,在第五节课开始前几分钟,冲进了希娜·维迪亚纳坦的教室。这两个女孩和她们的两个同学威廉和布莱克之间,就谁能最早到达计算机编程课展开了一场持久的竞争。
两个女孩在新购置的苹果台式电脑前坐下,立即开始完成维迪亚纳坦布置的任务:查找并修复计算机程序中的错误。这种细致但重要的活动占据了专业程序员的大部分时间。
支持科学新闻报道
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。通过购买订阅,您将帮助确保有关塑造我们今天世界的发现和想法的具有影响力的故事的未来。
铃声响起,更多的学生涌入。维迪亚纳坦是一位身材娇小、态度热情友好的女士,她微笑着欢迎他们。
“我们今天要做什么,V 夫人?”一个男孩走进教室时问道。
“调试程序,”她回答道。
“太棒了!”他惊呼一声,冲到一台电脑旁。
普及编程教学的倡导者希望看到这样的场景在全国各地重演。这些拥护者包括渴望雇用下一代工程师和程序员的企业领导者,以及希望确保美国在全球经济中竞争力的政府官员。“每个学生都应该有机会学习这项 21 世纪的基本技能,”微软联合创始人比尔·盖茨在今年早些时候发推文说。盖茨和其他人认为,编程是一种新的读写能力,与识字或数学一样重要。2008 年,作家兼演说家马克·普伦斯基(Marc Prensky)创造了“数字原住民”一词,他写道:“我相信,在所有技能中,最能区分一个有文化的人的技能是编程素养。”
这些倡导者指出,对计算机程序员的需求很高,并且该领域的晋升机会很多——他们说,这些机会将在未来几年继续扩大。
奥巴马政府官员勾勒出美国计算机科学教育的宏伟愿景,希望我们的学生能够跟上其他国家的学生——他们指出,英国在 2014 年开始要求每个学生学习编程——并借助全民编程,弥合我们自己国家白人和富裕学生与少数族裔和弱势学生之间长期存在的成就差距。
然而,实现这一愿景并非易事。向所有美国学生推广编程教学面临着巨大的后勤挑战,从合格教师的短缺到缺乏课程材料。美国极其分散的学校系统使得全国性的改革难以推行——问问共同核心州立标准的架构师就知道了——而且大多数学校尚未更新其信息时代的规则和标准(例如,计算机科学课程通常不计入数学或科学的毕业要求)。与此同时,来自不同种族和社会经济背景的学生在计算机知识方面存在巨大差异;研究表明,学校往往通过向富裕的白人学生提供深入、实质性的教学,而向少数族裔和低收入学生提供肤浅的指导,从而使这些差距永久化。
此外,人们越来越认识到,编程技能只能构成美国学生为 21 世纪生活和工作做准备的一部分。编程是计算机科学的实践,但学生也需要理论:理解计算机运行的底层原理。要使这种“计算思维”普及化,需要在校外(以课外活动和资源的形式)以及校内(通过培训教师、修订课程、将计算机科学融入其他学科以及改变毕业要求)进行大规模动员。
教授代码
维迪亚纳坦拥有计算机科学硕士学位,并已教授该学科七年,她是每个学生都应该学习编程这一概念的早期倡导者。“我的意思是每个学生——女孩、男孩、特殊教育学生、那些不认为自己是数学或科学‘人才’的学生,”维迪亚纳坦说。但与她的一些同道中人不同,她对自己的热情保持着现实主义态度。在课间接受采访时,她指出了一些实现这一吸引人愿景的障碍。“首先,计算机科学教师的数量远远不足以满足巨大的需求,”她指出。
据大学理事会(College Board)旗下的大学先修课程(AP)出版商称,2015 年,美国只有 4,310 所高中开设了 AP 计算机科学考试——约占 12%。此外,对该组织 2013 年数据的 2014 年分析发现,在三个州,没有女学生参加考试;在八个州,没有西班牙裔考生;在 11 个州,没有一个非裔美国人考生。(在许多这些州,很少甚至没有学生参加考试。)此外,训练有素且准备就绪的教师队伍根本不存在——维迪亚纳坦坚持认为,学生需要的是人类教师。“如果学生正在学习有意义且具有挑战性的材料,他们会在某个时候遇到困难,”她说。“他们需要一位了解他们、能够以他们理解的方式解释问题,并且可以利用师生关系作为动力和支持来源的老师。可汗学院的视频无法做到这一切。”
不仅计算机科学教师太少,而且还缺乏一套公认的计算机科学课程。CSTA 制定了一套针对幼儿园到 12 年级的标准,但这些标准极其笼统(六年级到九年级的学生应该“开始认识到计算的普遍性以及计算机科学促进沟通和协作的方式”),这意味着像维迪亚纳坦这样的教师在决定教什么以及如何教学生方面是孤立无援的。在高风险的数学和阅读测试时代,计算机科学往往被完全搁置。“学校的时间表和预算中,用于不被视为必修科目的时间越来越少,资金也越来越少,”维迪亚纳坦观察到。
在成为计算机科学教师和洛斯阿尔托斯学区的科学、技术、工程和数学(STEM)项目专家之前,维迪亚纳坦曾在信息技术巨头 Unisys 和两家硅谷初创公司担任软件工程师。她在科技行业的经验让她敏锐地意识到将每个学生都变成随时可用的程序员的计划中的另一个障碍:“学习编程基础知识和精通编程以从事专业工作之间存在很大差异。”该领域新手和专家之间巨大的差距是她推动她的学区从幼儿园开始进行编程教学的原因。“学习编程就像学习外语,”维迪亚纳坦解释道。“我们不会期望学生在高中学习几个学期的法语或西班牙语就能流利。”
尤其具有挑战性的是将编程教学扩展到洛斯阿尔托斯等富裕、以白人和亚洲人为主的社区之外。维迪亚纳坦的学生一开始就拥有几乎无数的优势。他们进入她的教室时,已经掌握了计算机及其工作原理的知识;他们中的一些人已经在家里或课外辅导班开始学习编程。他们公立学校的编程课得到了一个基金会的支持,该基金会收集和分配来自该学区学生家庭的捐款。该学区的学校——本身就配备了台式电脑和平板电脑——位于硅谷的中心地带,他们许多学生的父母都在附近的谷歌、苹果或 Facebook 总部工作。这些学生在他们生活中的成年人的温和但坚定的引导下,走上了一条通往丰富机会的道路。然而,这些享有特权的学生出现在计算机课程中——以及后来在科技行业和计算机科学领域——通常被认为是基于个人天生的偏好和能力的“自然”筛选过程的产物。
简·马戈利斯很熟悉这种假设及其必然结果:贫困学生和有色人种学生一定不想学习编程。马戈利斯是加州大学洛杉矶分校教育与信息研究研究生院的高级研究员,她对洛杉矶三所不同公立高中如何教授计算机科学进行了深入研究。研究结果是 2008 年出版的《困在浅滩:教育、种族与计算》(Stuck in the Shallow End: Education, Race, and Computing)一书,该书令人不安地描述了马戈利斯及其合作者所称的“虚拟隔离”。他们发现,在富裕社区上学的学生更有可能获得各种各样的计算机科学课程——这些课程在学术上具有挑战性、创造性和协作性。相比之下,贫困学生和有色人种学生通常只能获得最基本的剪切粘贴式计算机指导,而且通常使用不充分的设备。
即使为这些学生服务的学校拥有充足的设施,用马戈利斯及其同事的话来说,它们也可能是“技术丰富,但课程贫乏”,缺乏全面的计算机科学教育的要素:“一系列课程中的强大学习体验”,以及“多年的深思熟虑、知情的指导和支持”。她和她的合著者认为,课程设置不能一刀切,而必须考虑到不同种族和族裔群体在获得技术和培训方面的不同历史。“这些历史差异如此之大,竞争环境如此不均,鸿沟如此之深如此之宽,以至于人们生活在两个不同的世界,”马戈利斯和她的合著者观察到。富裕学生理所当然地熟悉的计算机,在他们不太富裕的同龄人中可能完全不存在。马戈利斯告诉我,真正平等地获得计算机科学教育是“21 世纪的民权问题”。
她说,在记录了地面上非常不平等的情况后,“我们觉得我们必须为此做些什么。”因此,她和她的同事创建了“探索计算机科学”(ECS),这是一个大学/K-12 合作项目,该项目为高中计算机科学专业的学生开发了入门课程。ECS 还为洛杉矶联合学区的教师提供专业发展——现在为全国近二十几个其他学区提供专业发展。参与的教师学习如何提供严谨而引人入胜的实践计算机科学指导,他们与其他教师一起加入了一个活跃且不断壮大的网络。虽然其他组织,包括 Black Girls Code 和 Hack the Hood,将他们的努力重点放在校外时间,例如周末工作坊和暑期训练营,但马戈利斯和她的团队致力于在学校为弱势学生服务,他们意识到经济和后勤障碍常常阻止这些学生利用课外机会。
南希·西也认同这种承诺。她在 2013 年接受了“探索计算机科学”的培训,此后成为 ECS“教师领袖”,帮助其他教师学习如何让学生参与计算机科学。西在南洛杉矶的奥古斯都 F. 霍金斯高中任教,根据《美国新闻与世界报道》,在 2013-2014 学年,该校 99% 的学生是非洲裔美国人或拉丁裔,75% 的学生符合“经济困难”的条件。西每天都近距离地看到全民编程运动面临的挑战。“我的许多学生家里没有电脑,”她说。“他们唯一访问互联网的方式是通过手机,他们用手机玩游戏和发短信。”鉴于他们对技术的有限了解,她的学生有很多知识需要学习——不仅要了解计算机的多种功能,还要了解幕后人员设计和编程这些机器的现实。最令人生畏的是,西的学生必须克服关于计算机科学“适合”哪些人的刻板印象。“使用计算机,知道如何编程——这与他们已经形成的身份格格不入,即使他们还是高中生,”西指出。“在我的课堂上,学生和我不仅仅是在探索一个学科。我们正在面对非常强大的文化信息,重塑他们对自己的认识。”
西翻阅着她的 12 年级学生写的论文,她指着其中一篇论文,其中一个学生表达了希望为自己和她的孩子获得稳定收入的愿望。“在上计算机科学课之前,我从未想过我可以从事或甚至主修这个领域,”这位学生写道。“作为一个想为我的孩子创造最好未来的单身母亲,我也认为拥有一份做自己喜欢的事情并且[一份]提供经济保障的工作会很棒。”另一位学生写道:“经济困难一直伴随着我的生活。尽管如此,我拒绝让有限的资源打倒我。相反,它们激励我利用教育作为一条道路,引导我走向终身成功。我渴望有一天能拥有[计算机]动画师的头衔,平均年薪为 50,281 美元。我渴望结束我目前的经济困境,并靠自己的力量照顾我的家人。”
事实上,扩大编程教学,尤其是在贫困社区,经常被引用的理由之一是,缺乏编程知识将使年轻人被排除在利润丰厚的行业之外。但许多批评家认为,狭隘地关注编程等技术技能不是一种可持续的方法。斯坦福大学教育学荣休教授拉里·库班指出了 20 世纪 70 年代和 80 年代美国早期计算机语言 Logo 的实验。库班说,在麻省理工学院教授西摩·帕珀特的领导下,教授学生 Logo 的努力兴起又失败了,因为它没有教授他们所需的复杂技能和丰富知识。他预测,同样的命运将降临到全民编程运动身上,他认为商业领袖为了自己的底线而敦促学校开展这项运动:这是一种“薄如蝉翼的改革”,“用过一两次后,就会被撕碎并扔掉。”
如果编程教学不是答案——或者至少不是全部答案——那么答案是什么?珍妮特·M·温认为她知道:计算思维。温是卡内基梅隆大学的计算机科学咨询教授,也是微软研究院的公司副总裁。2006 年,她在一家默默无闻的期刊上发表了一篇文章,这篇文章很快成为经典。“计算思维是每个人的基本技能,而不仅仅是计算机科学家的基本技能,”她大胆地宣称。她接着解释说,这种思维模式“涉及通过借鉴计算机科学的基本概念来解决问题、设计系统和理解人类行为。”
“计算思维包括抽象能力、参与逻辑和符号推理的能力、将一个大问题分解为许多小问题的能力,”温说。“这些是每个人都可以使用的技能,无论他们是否使用计算机。”
她在文章中写道,“除了阅读、写作和算术之外,我们还应该将计算思维添加到每个孩子的分析能力中。”听到温的呼吁的教育家之一是艾琳·欧文斯。欧文斯利用温的想法,使计算思维成为匹兹堡郊外南费耶特镇区学区课程的关键组成部分,她在那里担任技术和创新主管。在她看来,计算思维的教学应该尽早开始,并通过一系列循序渐进和相互关联的项目,逐渐深入和复杂。
在南费耶特,幼儿园到二年级的学生通过使用所谓的基于积木的编程程序开始学习编程背后的概念。在该程序中,称为 Scratch,他们拖放包含离散命令的积木:“移动 10 步”、“等待 5 秒”、“向左转 90 度”。通过以精确的顺序排列这些命令,学生们使屏幕上发生事情(卡通人物前进、暂停、向左转)并开始更普遍地理解如何向计算机发出指令——随着年龄的增长,指令变得越来越复杂。在三年级到五年级,学生们编程电机和传感器,并构建在他们控制下移动的乐高机器人。计算机辅助设计 (CAD) 在六年级到八年级教授;学生们使用 CAD 软件设计自己的发明,并通过使用 3D 打印机制作原型。到七年级时,学生们已经从基于积木的编程过渡到基于文本的编程:使用专业程序员使用的更复杂但更灵活的语言编写代码。
“在每个阶段,目标都是搭建计算思维的脚手架,以便每个新的理解水平都建立在前一个水平的基础上,”欧文斯解释说。“这不仅仅是编程。这是关于教授可以用来解决任何领域问题的思维习惯——例如将问题分解为组成部分、进行小型实验以查看哪些方法失败以及哪些方法成功,以及与其他人合作以找到并应用最佳想法。”在各种环境中使用这些策略向学生表明,计算思维在计算机世界之外也很有用。
即使是非常年幼的孩子也可以学习这种思维习惯。“我们正在教我们的孩子成为问题解决者,进行逻辑思考,进行抽象思维,寻找模式,识别替代方案,”南费耶特幼儿园到二年级的科学、技术、工程、艺术和数学 (STEAM) 教师梅丽莎·昂格尔说。“我们从诸如‘什么是指令?你如何给出指令,以便计算机知道你想要它做什么?’之类的问题开始。我们让学生‘编程’他们的同学,通过举起带有箭头的卡片来引导他们穿过迷宫。”
与洛斯阿尔托斯一样,南费耶特也是一个富裕、受过高等教育的社区,是该地区众多大学的教授以及在匹兹堡蓬勃发展的科技行业工作的专业人士的家园。但计算思维可以教给各种各样的孩子,华盛顿州肯特的 Excel 公立特许学校证明了这一点。Excel 的学生群体中,37% 是非裔美国人,19% 是拉丁裔;超过一半的学生有资格获得免费或减价午餐。尽管该校位于距亚马逊和微软等科技巨头所在地西雅图地区不到 20 英里的地方,但 Excel 的学生常常感到与计算机世界格格不入。
该校的计算思维项目经理伊莱·谢尔顿正致力于改变这种状况。“我与教师合作,将计算思维融入他们教授的科目中,无论是英语、数学还是生物,”谢尔顿说。“因为学生在许多不同的课程中都遇到相同的思维工具,所以他们开始看到这些工具的普遍适用性,即使在校外也是如此。”谢尔顿与一位数学老师合作创建了一个课程单元,分析职业篮球比赛的运动数据,并与一位人文老师合作开发了从刑事司法系统中提取的互动案例研究。
计算思维教学的倡导者认为,它代表了纯粹的编程教学所缺乏的所有品质:丰富而深刻的智力学科;一套可以在许多不同情况下使用的灵活的思维工具;以及一套在学校、工作场所和更广泛的领域都具有真正和持久用处的知识和技能。
在来到 Excel 之前,谢尔顿在微软担任项目经理四年,在那里他看到了计算思维在现实世界中的应用。“我一次又一次地看到工程师们运用计算思维解决极其复杂的问题,”谢尔顿回忆道。“他们非常擅长分解问题,按逻辑顺序排列各个部分,一次测试一个部分,看看这个小小的变化如何影响结果。我看着他们,心想,‘每个人都应该知道如何做到这一点。’”
国家对计算机科学教育的态度仍在形成中。作为白宫科技政策办公室学习与创新助理主任,库马尔·加格是指导这项工作的人员之一。他可以指出一些成功之处:“当奥巴马总统上任时,只有 11 个州允许计算机科学课程计入毕业学分,”加格观察到。“从那时起,发生了翻天覆地的变化:[28 个州和哥伦比亚特区] 现在允许将计算机科学课程应用于数学或科学要求。”加格还赞扬了大学理事会正在进行的 AP 计算机科学课程的“重启”。新的课程和考试将侧重于编码和计算思维,加格认可这种方法。“学生确实需要学习计算机科学的基础知识,但编码是一种帮助学生了解这一切是为了什么的方式,”他解释道。
加格指出,在其“全民计算机科学”倡议下,奥巴马政府已要求学区提交五年计划,以扩大计算机科学教学的普及范围;具有精心设计的提案的学区将获得实施资金。当然,一些学校并没有等待联邦政府缓慢运转的齿轮开始在计算教育方面进行创新,而另一些学校甚至还没有开始着手解决这个问题——这种情况让人想起科幻作家威廉·吉布森的一句格言,他的作品探讨了人类与技术之间的互动。“未来已经到来,”据说吉布森观察到。“只是尚未均匀分布而已。”