美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

CSTA是什么?

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

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

2011年、2016年CSTA分别发布了 K-12 阶段计算机科学标准(以下简称 CSTA 标准,本文主要分析2016新版标准),目的是为各州、地区的学校制定本地化课程大纲提供指导作用。

CSTA标准解读

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

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

CSTA 标准以核心概念和核心实践两部分为基础,其中核心概念侧重在内容领域,主要分为5个方面:

1.算法和编程(字母 A 表示)

2.计算机系统(字母 C 表示)

3.数据和分析(字母 D 表示)

4.计算机的影响(字母 I 表示)

5.网络和互联网(字母 N 表示)

核心实践侧重行为,主要分为7个部分:

1.培养包容的计算文化

2.围绕计算机展开合作

3.确认并定义计算问题

4.发展和使用抽象

5.创造计算机作品

6.测试并改善计算机作品

7.关于计算机的交流

“算法和编程” 和 “数据和分析”这两个核心概念值得我们重点参考。

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

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

这是较为详细的CSTA的LevelA教育标准大纲,大家可以看看自己孩子的年龄对应哪个要求:

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

图Level-1-A

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

图Level-1-B

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

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

CSTA 标准的内容和应用

其实,CSTA 标准的条目并不多,总共133条,仔细看完也不用花太多时间,我们要做的是把更多时间用在研究不同条目的变化和结合上。

比如 Level 1A(针对 K-2 年级) 有一条描述编程能力的标准为 “为了完成一个任务或者表达创意,使用图形化编程语言构造包含序列、事件和简单循环的程序(1A-A-5-2)” ,而 Level 1B (针对 3-5 年级)对应标准的描述变化为 “为了解决问题或者表达创意,使用图形化编程语言或文本编程语言构造包含序列、事件、循环、条件语句、并行和变量的程序(1B-A-5-4)”,从这两条标准的变化就能得到很多信息:

1.小学高年级时已经可以逐步引入文本编程语言了,在学完 Scratch 等图形化编程语言后,可以引入 Python 等简单且易理解的代码类语言作为课程的延续。编玩边学一些小学员已经学习更高级的C++了。

2.学习编程的目的是为了解决问题或者表达自己的创意,而不是单纯地掌握编程技能,在课程的设置中要多引导孩子关注身边待解决的问题以及发挥自己的想象力表达自己的创意。

这些标准对于少儿编程学习产品的开发非常有帮助,比如,我们在围绕Scratch 这款图形化编程软件设计课程时,就参考了 CSTA 标准:

美国K12阶段都在用的CSTA计算机科学教育标准-少儿编程教育网

CSTA的大纲向我们传达了一个重要的信息:学习编程的一个很重要的目的就是培养孩子将一个复杂的问题拆解成简单问题最终解决问题的思维方式和能力。

因此我们在课程设计时尽量包含孩子自主思考如何分解问题的环节,那种传统的老师在台上操作学生跟着模仿的上课方式是完全背离了编程教育的初衷的。