走进美国高中计算机课堂张汶  上海市教育委员会教学研究室
如今,中小学计算机科学课程在美国得到越来越多的重视,计算思维、数字公民成为从联邦、州和学校培养的重要目标。笔者先后实地走访了芝加哥203学区2所公立高中、芝加哥93学区的1所学校、芝加哥公立莱恩理工学院预科高中、芝加哥大学实验学校、旧金山公立学区的2所高中,听取了芝加哥公立学区computer science for all项目办公室在课程推进、教师培训方面的介绍,观摩了5所高中计算机科学现场课堂教学,感受美国公立学校、特许学校、磁校、私立学校形态各异的计算机课程设置和课堂教学,并将此作为一个缩影,了解美国计算机科学基础教育的一些实际情况。
●生活化和专业化的学习空间布局
走进美国高中计算机科学教室,笔者心里暗自赞叹了教室的环境,与上海各学校计算机房中台式机“矩阵”式排列相比,美国学校的计算机教室,像是一个工作坊,身处其中,首先感受到的是舒适。
计算机教室里计算机分成7个小组,以U形的方式环绕在教师
周围,每个小组4台计算机,学生
并未坐满,大约只有23人左右。学
生或正襟危坐,或蹲坐,或半躺,
或以各种姿势编写或调试自己的
代码,学习状态放松、自在,但又十
分专注。
教师的工作计算机放置在教
室中间,讲授或演示的时候教师
能环顾到所有学生。教室的一角,
放置了几张工作台;教室中间或周
围,或放置着一组沙发,或散放着
一些软椅,无声地暗示着这是一
个令人放松、具有吸引力的生活化
的地方。
教室的墙面利用率很高,一面
墙上是两个大屏幕投影,无论哪个
角落的学生都可清楚地看到教师
的演示,在另外两面则有一些大面
积的白板。墙上很难到空白的地
方,随处可见一些便签式提示或者
标语。例如,图示计算思维的四个
要素及其具体含义、图示软件开发
的四个过程(理解、开发、回顾和反
馈)、图示编程的四个步骤(设计、
编程、测试、调试)。教师还设计了
用计算机编程语言呈现的趣味励
志标语,定义了一个函数,写道“这
里有一些可能的学习机会,如果你
有问题,就问老师”。
又如,墙面上贴着保护视力
20-20-20原则的图示,即每使用
计算机20分钟便休息一下,向20
英尺(大约6米)以外的风景(最
好是绿)远眺至少20秒。墙面上
也贴着对学生遇到困难时的鼓励
(如下图)。
教室是教育活动的
核心场
所,也是学生每日生活和学习时间最长的地方。教育学家Ralph W. Tyler认为,“教室的物理格局是影响学生学习行为与态度的最具影响力的要素”,教室中的有形元素(桌椅、沙发)与无形元素(学习氛围、教学秩序)对学生学习效果和教师教学态度具有双重影响,认知产生于一个包含大脑、身体和环境三大要素的自组织系统。
如果说孟子“劳其筋骨,饿其体肤”的古训在于告诫人们生于忧患的道理,那么这样的学习空间则践行了“学习者—学习环境”之“在场”关系,即物理环境(包括噪音、拥挤度、空气质量、温度、建筑设计、个人空间)等对人的学习会产生积极或消极的影响,学习并非是“脖子以上的学习”,而是全身心参与的过
程。计算机教室中令人舒适的氛围、随处可见的专业书籍、可独立或合作学习的座位安排、随处可见的学习提示、教师的微笑和热情等,为学生全身心投入到学习中提供了支持。
●个别指导是课堂最主要的教学环节
笔者与两位上课的教师进行了简单的交流,学校的计算机科学课程采用了AP课程体系,课程共计开设三年,第一年是学习Python语言,第二年使用JAVA语言,第三年学习软件工程,开展基于项目的学习。选择计算机科学课程的学生约占学生总数的20%。学生表示,他们已经学习了两个月,每天一节课,至
今已经学习了40个课时。
教师均使用CANV AS系统,管
理课程框架、教学日历、学习资源、
学生作业,学生可以非常方便地阅
读教师提供的学习资料,然后提交
作业。值得一提的是,其中一位教
师使用了在线的编程系统,学生编
写的代码可以在线检测是否正确,
所有学生的练习情况以“T”或“F”
的形式,实时呈现在教师端,给教
师提供及时的学习反馈。
第一节课是Python语言,教
学目标是“能识别while loops循
环结构的要素组成,能编写while
loops循环”。教师先布置了一个小
任务:阅读一段代码,并用不同的
颜标识不同功能的语句,如红
标识“函数”绿标识“判断条件”
等。这是一个设计很精巧的课堂
小练习,目标是锻炼学生辨析循环
结构的要素和组成结构,而大部分
学生能够在很短的时间内基本完
成该练习。随后,教师布置了新的
练习题“crazy numbers”,并开始
了个别指导,由于学生在编程和调
试中的问题比较多,且大多需要
不断调试,所以教师安排了学生
之间一对一的互助。其间,关于课
堂练习教师还进行了非常短暂的
集中教学,用于分析大家遇到的
问题。
第二节课是JAVA语言编程,
学习的学生已有一年的学习经验,
在编程方面显然更加熟练。学生在
visual studio code平台上编写和
测试自己的程序。与Python语言的
教学模式类似,教师布置练习后,
学生开始编程和调试,教师在7个
小组中往返巡视,一对一解答学生
的问题,师生对话友好且有指导意
义。教师也采用了两位学生相互合
作的方式,相互合作阅读对方的程
序,共同阅读错误信息的提示,然后
修改代码并继续调试。
上述两位教师的教学和指导,
体现出较好的计算机科学的专业
素养,大部分学生的问题能得到及
时的解决,一些学生遇到的问题,
靠学生之间的相互协作和指导,也
有所优化和改进。
另外,美国的课堂教学十分重
视个性化教学,而个性化教学得
以顺利开展,离不开两个要素:一
是学习空间的设置,无论是计算机
教室,还是学校其他场所的学习空
间,如实验室、走廊、图书馆等,均
将学习设备、学习资源及教师讲授
的区域做了合理安排,座位安排适
合小组合作,各小组以环形方式围
绕教师办公桌,支持教师巡视和
师生交互。二是资源获取的便捷
性,学生可随时使用笔记本电脑访
问学习管理平台。教师在Canvas
或谷歌教室等平台上建设课程计
计算机编程工资多少划,上传教学计划、任务安排、学习
资源、学习范例、评价要求等十分
完整的资料,且纲目清晰,查方
便,学生可通过平台了解整个学期
每个学科的教学进度和安排,有
利于学生自我管理和利用资料开展学习与研究。
●思考与启示
1.兼顾教育公平需要良好的社会支持
(1)公立学区重视对基础学习要求给予保障
芝加哥公立学区(C P S)为了推进计算机科学课程,开展了 CS4ALL(为了每一个孩子的计算机科学)项目,项目办公室采取了一些措施,如从2016年开始将计算机科学列为必修课。这从制度上为芝加哥公立学校普及计算机科学教育提供了保障。此外,开发了《探索计算机科学》(ECS)课程教材。最后,由于计算机科学课程刚开始实施,学校缺乏具有计算机专业背景的教师来承担这门课程的教学,CS4ALL开展了教师专题培训项目,鼓励其他学科的教师报名参加,通过此项培训的教师才能担任课程教学任务。
从时间上看,这比上海开设高中信息科技必修课程整整晚了20年,从师资上看,芝加哥公立学区计算机科学的教师专业化培训还刚起步。观摩计算机教师培训的现场,由于培训对象是零基础,他们是历史等非计算机专业的教师,所以培训内容非常简单,如把两片面包中间夹上果酱做一个三明治,教师把过程一一罗列下来,这是对程序概念的初步理解。这样的教师专业化培训,一方面令人敬佩,因为它在培训课程设计的
生动性和参与性方面值得借鉴,
另一方面也令人担心,那就是缺少
专业教育背景的教师能否胜任专
业的计算机科学课程教学?
(2)私立学校注重为学生
个性化发展提供条件
在私立学校、磁校或部分学
区,计算机科学课程在师资、课
程、资源、设备等方面都有明显的
优势。例如,芝加哥大学实验学校
的计算机科学课程,除了修习AP
课程以外,还提供了大量选修课
程,如机器学习、计算机硬件结
构、人工智能、高级语言编程、软
件工程等。学生不仅可以在学校
里进行学习,还可以到大学实验
室开展学习。又如,莱恩理工学院
预科高中(Lane Tech College
Preparatory High School)是
伊利诺伊州一所公立磁校,学校
计算机科学课程负责人详细介绍
了莱恩高中计算机科学课程的设
置情况,目前学校有18位计算机科
学教师,有的教师有丰富的行业
工作经验。学校共开设了13门计算
机课程,这一方面为学生掌握计算
机科学知识打下了广泛而扎实的
基础,另一方面为学生提供了丰富
的个性化选择机会。学校设计了计
算机科学课程的“图谱”,并用实线
和虚线表示课程之间的关系,清晰
地表达学习的“路径”。计算机课
程共分四类课程:广度大于深度的
基础课程、需要创造出物理产品的
课程、需要创造出数字产品的课
程、需要计算机科学和商业化结
合的课程。这四类课程中每类课
程都会按难易(0~3)程度标识为
不同级别,它们之间有一定的关
联性,但不是特别强相关。例如,
学生A想学“Android Apps(安卓
应用)”课程,前提条件为“Prog I
or AP CS A”,即必须先学习课程
“Programming I”或者先学习课
程“AP Computer Science A”。
(3)社会机构提供对弱势
体的服务
社会各界对中小学计算机
科学课程的支持力度很大,成为
推动教育的中坚力量,美国不仅有
“编程一小时”活动,正在执行的
还有“一百万计划”,目前已经成
为独立法人的“一百万”计划基
金会,旨在为100万名低收入水平
家庭的孩子提供计算机硬件和网
络,提高贫困家庭孩子成功的可能
性,从而实现真正的机会均等。这
项计划也吸引了美国大学委员会、
可汗学院与之进行项目结盟,这
些组织会根据参与“一百万计划”
的孩子的表现,为他们提供更多
资助。
2.要在实践中进一步思考教
学方法的有效性
美国计算机科学课堂,学生参
与度比较高,也由于课堂布置的学
习任务有相当大的挑战,学生忙于
编写代码和调试。但是这样的教学
依然带来一些困惑。
(1)为何要学习新知,新知学习的必要性在哪里
文中谈到的两节课均为新授课,但是从实际教学的时间分配看,学生的课堂时间均在完成新的任务。如何思考新知识的价值?例如,新的知识是循环结构中嵌套分支(在while结构中嵌套if语句),教师通过布置任务,驱动学生应用这样的知识。然而,这样的结构从何而来?为何单纯的循环结构不能解决问题?为何一定要循环嵌套分支才能解决?分支嵌套分支为何不行?这样的结构还能解决什么问题?还有哪些可能的嵌套方式?似乎学生没有思考过,也未得到相关的启发。如果只是告诉学生使用循环嵌套分支的结构解决这个特定的问题,那么学生什么时候能有机会自主选择?
(2)如何领悟新知识的价值
教师布置了学习任务,学生编写程序完成任务,但是程序本身似乎仅仅为了练习技能。例如,用循环嵌套分支的结构,编写了一个分段函数,当输入数据介于某区间时,对数据进行平方操作,当输入数据介于另外一个区间时,对数据进行另外一个数学运算,该程序的意义在哪里?如果把任务与真实生活联系起来,如自动售货机、车库自动收费等软件和硬件,背后都有这样的基本结构,循环嵌套分支结构是非常基础的一种结构,可以在此基础上不断进行叠加,从而解决非常复杂的问题,完成这样的任务,对理解
新知识的价值是否会更深刻?
(3)陡峭的学习曲线是不
是大量个别辅导的成因
尽管学习的挑战性非常重要,
但是无疑学习也需要支架,循序
渐进地推进教学是一种基本的共
识。尽管“渐进”步伐的大小因人
而异,“循序”的安排可以有所不
同,但是如何把知识学习与学生认
知的步伐同步,是教学设计需要考
虑的问题。笔者在观察课堂教学
的过程中发现,教师从引入新知到
开始解决新的问题,这个过程比较
快,可以说,学习曲线比较陡峭。学
生一旦上手做,就出现各种各样的
问题,答疑和辅导几乎占据了所有
的教学时间。设想一下,如果将学
习曲线设计得更为平缓,先引入新
知,然后模仿运用、迁移提升,最后
再去解决问题,最终学生问题解决
的质量、计算思维的培养是否更
好?试错是有价值的,但是否所有
的试错都有价值?如果可以准学
生的普遍问题,如循环语句的“条
件”与判断语句的“条件”在学生
普遍混淆的情况下,启发性地指导
一下,恍然大悟的喜悦是否也更能
增进学习的愉悦?如果指导学生
使用变量跟踪的方法,思考程序
的错误支出,“授人以渔”能否让学
生更迅捷地解决问题?
短暂的美国高中课堂教学观
察,只能是管中窥豹,很难说能从
中得到完整的判断,亦不能急于得
到确定的结论。但是,美国高中课
堂教学的学习空间创设、教师对
每一位学生问题的解答和指导、
教师设计课程与课程资源良好的
规划性,值得每一位计算机科学
教师学习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。