2018年9月7日,加州州教育委员会通过了第一个加州K-12(幼儿园到高中12年级)计算机科学(Computer Science)教育标准(California K-12 Computer Science Standards)。这个项目从2014年开始立项,历时4年,终于尘埃落定。
估计世界上没有一个地方比加州更应该重视book,Uber, Apple,Intel,Broadcom,Qualcomm等),雇佣了世界上最优秀的计算机软硬件工程师,并持续不断的产生原创性技术、孕育新兴计算机科学的教育,毕竟这儿孕育了世界顶尖的IT公司(譬如Google,Face公司(譬如最近势头正盛的人工智能),以此来作为整个世界的经济领头羊,推动技术的革新与社会的进步。
该标准引言部分着重阐释五个问题:
1.Vision (愿景),
2.Why Computer Science (为什么要在K-12开展计算机科学的教学),
3.Issues of Equity (美国特有的政治正确:公平性问题),
4.Problem Solving and 4Cs (communicate, think critically, create, and collaborate) (计算机科学教学中需要解决或者提升的能力:解决问题、沟通、批判性思考、创造、合作),
5.What is Computer Science (计算机科学课程要教学生什么内容,才可以在学习领域知识的同时,学生能够达到上述的能力提升)。
为什么要在K-12开展计算机科学教育?标准阐述了很多,这儿无须详细展开,我主要想阐述一下自己的想法: 到目前为止,与可预见的将来5年,计算机领域(包括软件与硬件设计) 的工作依旧是最热门、最急需、也是最赚钱的工程师工作。
在硅谷,一个不错的本科学校毕业的软件工程师,平均年薪为13.7万美元 (请参见2018年11月9日glassdoor的最新数据)。而在中国,在工作5-10年后,只有2.7%的程序员年收入低于6万。年收入在15-20万的程序员占21.62%,1/3的程序员年收入在20-30万之间,超过1/5的程序员年收入在30-50万之间。年收入在50-70万的程序员占5.41%。
通常斯坦福以及伯克利毕业的本课毕业生能够拿到年薪15万美金。上一段时间,我的一个好朋友(工作10年左右)从圣地亚哥搬家去了硅谷的苹果公司,年薪18万美金,入职直接给了40万美金的股票(分四年发放),工作期间每年还能够拿至少10万元的股票以及2-8万美金不等的现金奖励。如果去Facebook,这些待遇会更高。
这个不是个例,而是常见情况。所以在工程领域,没有比这个软硬件工程挣钱更多的其他行业了。从娃娃抓起,激发孩子对计算机科学的热爱,为将来硅谷现有以及新兴公司,源源不断的输送码工 (代码工程师,也就是软件工程师)以及硅工(硬件工程师的俗称),持续的引领美国乃至世界的经济革命与升级换代,保持美国的技术超前领先地位,是当前加州的教育重任。中国也不例外,任何行业都离不开计算与代码。
标准声明:显然,计算机科学不是讲述如何使用鼠标、键盘(譬如训练敲字速度),如何做word、ppt、excel等office文档,也不是讲述如何修电脑、如何打游戏这些俗物。该标准明确阐述,计算机科学传递的是:一套理论与实践的方法论,即如何利用计算机有创造性地完成我们需要完成的工作。
具体的应该包括如下内容:
Computing System (计算系统),
Networks and the Internet (网络与互联网),
Data and Analysis (数据与分析),
Algorithms and Programming(算法与编程),
Impacts of Computing(计算科学的延伸影响)。
其中,计算系统需要阐述软件、硬件、以及人机交互;网络与互联网涵盖网络通信、网络架构以及网络安全;数据与分析包括存储、采集、可视化、数据变换、数据模型预测与推演等;算法与编程包括计算变量、算法、控制、模块化、编程技巧;计算科学的延伸影响包括文化方面、社交领域、知识产权、隐私、安全等。而这些内容,标准规定在每个年龄组都要学习,当然学习的深度不同,侧重点不同。那么通过怎样的内容实施,我们可以涵盖上述知识,同时达到Problem Solving与4Cs的能力提升。
标准推荐了7个实施方向:
1.Fostering an Inclusive Computing Culture (培养具有包容性的计算科学文化;该内容针对的是计算领域的公平性问题);
2.Collaborating Around Computing (围绕计算展开的合作;该内容针对的合作能力提升);
3.Recognizing and Defining Computational Problems (认知与定义计算问题;该内容的实施,为的是提升学生解决问题的能力);
4.Developing and Using Abstractions (开发与使用抽象定义;该实施内容对应的是批判性思考能力);
5.Creating Computational Artifacts (创造计算组件;该实施内容针对的是创造能力的提升);
6.Testing and Refining Computational Artifacts (测试与优化计算组件; 该实施内容针对的是创造能力);
7.Communicating About Computing (针对计算,展开沟通;该实施内容针对了沟通能力的提升)。
标准对K-12分成了五个年龄组: K-2, 3-5, 6-8, 9-12年级, 以及一个针对 9-12年级的 specialty 组。标准对每个年龄组定义了实施的标准内容,每个标准内容涵盖的计算机科学领域知识,以及对学生哪个方面的能力进行了培养与提升,同时举例说明如何实施这些标准内容。
举例来讲,K-2年龄组有一个标准内容是:Explain Why People Use Password (为什么人们在使用计算机的时候使用密码)。该标准内容涵盖了“网络与互联网”的知识点“网络安全”,提升学生的“沟通能力”。实施例子是:老师提供一个由3个字母与数字形成的一个密码,学生来猜测这个密码。游戏的一个版本是:密码都是数字;另一个版本:密码是数字与字母。
显而易见,第二个版本猜测的难度加大。在这个基础上,老师可以带领学生讨论密码的重要性,为什么计算机以及网络要求用户必须用组合的数字,字母,大小写,特殊字母等形成密码。
整个加州的标准,我认为有两大特色:
第一,标准详细的把计算科学划分为几个清晰的子领域,并针对每个年龄组,提出每个子领域的实施内容标准以及实施案例;
第二,标准非常清晰地突出了计算机科学的文化(culture)内涵,即沟通与合作;从事计算机行业的人非常清楚这一点,当今社会任何一个大的计算项目的设计与实现,都是无法一个人完成的,必须通过沟通,团队合作,分而治之(Divide and Conquer)。
此外,对知识产权的保护观念以及平等工作的理念,从K幼儿园一直贯穿到12年级。在第二点上,非常值得我们学习。详细分析加州的第一个全新的计算机科学K-12教学标准,因地制宜,依据我们国家的实际情况,尽快形成一个我们自己的教学标准,有助于规范我们教育、培训等市场,形成国家合力,为我们在高精尖科技领域实现突围,奠定坚实的基础。畅学编程领先的少儿编程课程体系–基于全球计算机教师协会CSTA K12标准进行优化。