美国CSTA计算机科学教育标准

目前国内的少儿编程教育还处在早期野蛮生长的阶段,课程体系设置混乱且不完善,其中原因主要有2个:一是因为少儿编程教育仅仅兴起3-5年,可参考的资料少,缺乏像乐高这样体系成熟的标杆企业,大多数机构都处在创业早期发展阶段;二是由于近年来少儿编程渐成风口,本身创业门槛也比机器人教育更低,从业者增多,难免在教育方面的素质参差不齐,实力弱小的创业者也无法在课程体系方面进行较大的投入,导致课程体系混乱不堪。

在国外针对少儿编程教育由多个教研标准,例如NGSS(Next Generation Science Standards 美国下一代科学标准),CCSS (Common Core State Standards美国共同核心州立标准),CSTA K-12 CS standards(美国计算机教师协会 K-12 计算机教育标准)等几个主流的标准,我们认为CSTA更加符合目前国内发展的现状,下面全面介绍一下CSTA教育标准:

美国CSTA计算机科学教育标准

CSTA是什么?

CSTA,全称 Computer Science Teachers Association,即计算机科学教师协会,由计算机协会(ACM)于2004年成立,发展到现在,成员数量已经超过25000名。而且成员构成非常多元化,不仅涵盖了K-12各个阶段(小学、初中、高中)CS 学科的一线老师,还包括大学教师、工业界及政府成员,其他非盈利组织成员,学生父母等。这些成员来自于145个国家。

CSTA 的合作伙伴包括 ACM 和政府基金,谷歌、微软、甲骨文等高科技公司,code.org 等机构, 协会的使命是为全球计算机科学教师赋能(empower, engage and advocate for K-12 CS teachers worldwide ),促进计算机科学教育的发展。因此,该协会在学科标准制定、教师培训、行业会议等方面都做了大量工作。

CSTA于2011年、2016年分别发布了 K-12 阶段计算机科学标准(以下简称 CSTA 标准,本文主要分析2016新版标准),目的是为各州、地区的学校制定本地化课程大纲提供指导作用,由于协会在计算机科学教育方面的专业性,Littlebits、Wonder Workshop、Lego education 等商业机构在编程课程体系的设置上都参考了 CSTA 标准,code.org也在编程一小时活动的申请提交页面推荐采用 CSTA 标准。看来,这份标准值得我们好好研究一番。

美国CSTA计算机科学教育标准

解读CSTA标准

CSTA 标准将 K-12 阶段计算机科学学习分为3个等级 Level 1-3,并对各个等级学生要达到的水平提出了要求,其中 Level 1 根据年级又分为 Level 1A、Level 1B,而 Level 3 根据难度又分为 Level 3A,Level 3B,Level 3A 及之前的等级是针对所有学生的,而 Level 3B 这个等级是针对对计算机科学有进一步兴趣的学生。等级划分和对应年级分段具体如下表。

美国CSTA计算机科学教育标准

和其他学科教育标准一样,CSTA 标准也以核心概念和核心实践两部分为基础,其中核心概念侧重在内容领域,而核心实践注重行为。

核心概念主要分为5个方面,分别是算法和编程(字母 A 表示)、计算机系统(字母 C 表示)、数据和分析(字母 D 表示)、计算机的影响(字母 I 表示)、网络和互联网(字母 N 表示);

核心实践方面分为7个部分,分别是:培养包容的计算文化、围绕计算机展开合作、确认并定义计算问题、发展和使用抽象、创造计算机作品、测试并改善计算机作品、关于计算机的交流。

从核心概念的分类来看,美国的计算机科学教育当然不止于编程教育,但这不影响这份标准在少儿编程方面的参考价值,对于少儿编程的课程设计来说,可以重点参考 “算法和编程” 以及 “数据和分析” 两个核心概念。

美国CSTA计算机科学教育标准

CSTA 标准由一系列对标准的描述条目组成,每条标准有独特的命名方式,由 “等级代号 + 核心概念代号(字母)+ 核心实践代号(数字)+ 序号” 组成,例如 1B-A-3-7 是指 1B等级(对应3-5年级)的第 7 条,描述 “算法和编程” 概念的,关于 “确认并定义计算问题” 实践的条目。

下面是我根据核心概念对每个等级不同分类的标准数量的简单统计。统计结果可以看出,“算法和编程” 概念占据了接近一半的数量,加上“数据和分析”概念 ,两者占到了 60%,这部分内容是我们重点研究的对象。

美国CSTA计算机科学教育标准

CSTA 标准的内容和应用

上面的统计可以看出,CSTA 标准的条目并不多,总共133条,仔细看完也不用花太多时间,应该把更多时间用在研究不同条目的变化和结合上。比如 Level 1A(针对 K-2 年级) 有一条描述编程能力的标准为 “为了完成一个任务或者表达创意,使用图形化编程语言构造包含序列、事件和简单循环的程序(1A-A-5-2)” ,而 Level 1B (针对 3-5 年级)对应标准的描述变化为 “为了解决问题或者表达创意,使用图形化编程语言或文本编程语言构造包含序列、事件、循环、条件语句、并行和变量的程序(1B-A-5-4)”,从这两条标准的变化就能得到很多信息:

  1. 在对具体的编程知识的掌握上,1A等级只涉及序列、事件和简单的循环,而不涉及条件语句、变量和并行机制,这可能说明这个年龄段的孩子不能很好地理解条件语句等概念,在这个年龄阶段的教学要慎重引入条件语句,尽可能用更容易理解的事件机制来代替;
  2. 小学高年级时已经可以逐步引入文本编程语言了,在学完 Scratch 等图形化编程语言后,可以引入 Python 等简单且易理解的代码类语言作为课程的延续;
  3. 学习编程的目的是为了解决问题或者表达自己的创意,而不是单纯地掌握编程技能,在课程的设置中要多引导孩子关注身边待解决的问题以及发挥自己的想象力表达自己的创意。

如何将标准应用于产品研发?

举例说明一下具体的应用,Wonder Workshop 近期参考 CSTA 标准和 ISTE 标准发布了新的课程体系,其课程体系的等级设置上就很好的符合了以上的描述。由于 Wonder Workshop 的产品针对的年龄段比较低,因此其课程体系主要对应于 CSTA 标准的 Level 1,它的整个体系根据年级分为 6 个 Level,其中 Level A-C 对应于 K-2 年级(CSTA 标准的 Level 1A),这个阶段学习的编程概念只涉及序列、循环和事件,等级上升到 Level D-F 时,对应年级为 3-5(CSTA 标准的 Level 1B),此时才引入条件语句、函数和变量。

美国CSTA计算机科学教育标准

这些标准对于少儿编程学习产品的开发也有帮助,比如,Scratchjr 这款 app 的设计就很符合 CSTA 标准的 Level 1A 等级(Scratchjr 是一款和麻省理工学院合作开发的针对 5-7 岁孩子学习编程的 iPad 应用)。玩 Scratchjr 这款应用时,会发现应用里完全去掉了条件语句,而强化了事件机制,脚本标志也都尽量用形象的符号来代替,我初次体验时很好奇 Scratchjr 为什么完全没有条件语句,这对于一些功能的实现影响还是挺大的,直到看到了这份 CSTA 标准才算解开了疑惑。

美国CSTA计算机科学教育标准

除了关注一些变化的部分,还应该关注一些一以贯之只不过程度不同的标准,比如对于知识产权的重视,Level 1A 的第一条标准就是 “使用别人的代码、音乐或图片时要表示感谢(1A-A-7-1)”,以后的等级基本都出现了类似的标准,只不过是描述变成了 “当想法借鉴他人或修改他人的编程项目时,注明引用(1B-A-7-2)” “当代码借鉴自他人时,提供必要的引用说明(2-A-7-3)”,美国对于知识产权的重视和教育可见一斑。还有对于培养孩子分解问题解决问题的思维和能力的强调,对这一点的强调在每个 Level 都提到了,即使在 Level 1A 这个最低年龄层的等级(下图是每个 Level 的详细描述,为了不失真采用英文原版表述)。

由此可知,学习编程的一个很重要的目的就是培养孩子将一个复杂的问题拆解成简单问题最终解决问题的思维方式和能力,因此在课程设计时要尽量包含孩子自主思考如何分解问题的环节,那种传统的老师在台上操作学生跟着模仿的上课方式是完全背离了编程教育的初衷的。还有其他一些每个 Level 都会强调的标准,比如对于团队合作的鼓励、对于程序和算法的调试等等,在此不做更多分析。

美国CSTA计算机科学教育标准

结语

这篇文章算是对 CSTA 标准的一份导读,目的是把值得作为少儿编程课程体系设置参考的 CSTA 标准介绍给大家,抛砖引玉,引发大家更多的思考,推荐大家详细地阅读这份标准,相信一定会有更多的收获。当然,建立一套科学的系统的少儿编程课程体系还有很多工作要做,只是对照 CSTA 标准照猫画虎是远远不够的 ,还需要结合国内学生的实际情况、教学反馈等不断完善迭代课程体系,但这一份标准至少让大家在摸着石头过河的时候有了一些路线参考,能够避开一些深坑。