揭秘K-12编程底层逻辑 “躺平” 真的可以?
不知从什么时候起,“编程”开始往咿呀学语的孩子普及,似乎未来不懂“编程”就会变成“新时代的文盲”。一时间,各种学习编程&机器人的培训班层出不穷。大家好像看到了一把未来的钥匙。
而严格说来,编程早已形成了一股风气,不仅作为课外拓展,而成为了正规教学大纲中的一部分,从5岁的Kindergarten直至高中。
你有没有这样的疑问:
早点接触编程到底好在哪里?
学习编程到底为什么重要?
对于基本语言都尚在发展中的孩子就要开始学习计算机语言了吗?
什么样的“数字教育”才最符合孩子的心智发展?
今天我们就深入浅出地聊一聊被写进教学大纲的“编程”到底在学啥,我们如何从日常着手,从小培养“编程思维”和“数字化素养”。
为什么学编程?
未来工作缺口
咨询公司麦肯锡(McKinsey)预计,到2030年,全球会有多达8亿的工作岗位被机器人代替。
未来对人才的衡量,以及直接对相关技能人员的需求,使得“编程”成为一项不可或缺的能力。所有行业,都将经过“数字化”的洗礼。
例如,KPMG数字学院和SFU Beedie商学院合作,正在提升在职员工的数字化和可视化技能;
BC省拨款6百万元,用于提升全体在职教师的数字化技能,以及开发K-14岁的编程教学大纲;
在Covid-19疫情形势下,催生的“零工经济”(Gig Economy),更是在软件平台的作用下,开拓出全新,便利、灵活的工作岗位。
编程课纳入教纲成必修
2014年,英国领先于欧盟其他成员国,也是世界上第一个,率先在学校系统中把计算机课程提前到5岁,并列为5-16岁的必修课;
加拿大的BC省,早在90年代,就已经开始在学校中开展信息和通信技术课程(Information and Communication Technology, “ICT”)。并在2016年将计算机语言纳入K-12的教学体系,直到2018年,编程已经作为独立的模块出现在大纲当中。
加拿大的其他省份也紧随其后:
安省 Ontario
2020年开始在小学要求编程和理财知识培养
新省 New Brunswick
初中6到8年级的必修课
阿省 Alberta
最后一个省份(2021年5月)开始在小学阶段强化编程课程。预计在学生6年级的时候可以用简单语言编写计算机程序。
曼省 Manitoba
截止到2021年4月,正在落实“编程“在K-12的教学方案
诺省 Nova Scotia
K-6年级的必修课。政府拨款1百万用于开发K-18岁编程相关课程大纲
萨省 Saskatchewan
编程属于课程外可选
总而言之,编程技能已经成为加拿大教学体系重点培养的素质之一。
教纲中对编程学习有什么要求?
为何并未看到5岁孩子在学校学编程啊?
K-6年级,BC省的编程内容是纳入到Applied Design,Skills and Technologies课程中, 体现编程与设计、机器人等学科的跨学科融合。
6年级之后才有单的“编程”模块教学;
10年级之后,开始进行计算机/编程的专项学习。
教纲中,6年级以前强调“计算思维”,“动手操作”,捕捉“原型”,“试错”和是编程相关概念的学习。
6年级开始接触模块编程语言&机器人
8年级开始接触文字类编程,尝试网页设计等。
怎么学?
对号入座-分阶段学习
这篇文章所说的编程学习,只针对K-12的学生群体。为了把“学什么”和“怎么学”说清楚,我们将学习年龄划分为几个重要阶段,方便大家根据年龄参考。
第一阶段(K以前)
提倡的是“无电脑”式的“电脑思维”培养,这符合该时期对电子化产品的启蒙,同时兼顾限制的屏幕观看时间。
这个时期,培养孩子动手和可视化步骤是关键。也就是可以借助道具、指令,帮助学生了解和计算机机周边相关概念,例如:描述步骤词汇,回想步骤和动作,合作意识,联系实际生活等。
这个时期的孩子,听懂并执行指令,或将将整套流程自主完成(执行力)就是非常好的榜样。
第二阶段(K到1年级)
这个阶段还谈不上“计算思维”的皮毛,而是从听懂别人指令到开始“寻求表达”的转化,但并非文字表达,而是借助可视化的电子设备。
文字在这个阶段尚不完全具备工具的作用,因此,计算机提供的便利是个非常好的补充。“计算思维”的培养重点应该在于捕捉遇到的“问题”和如何转化,描述成另他人听懂的语言。
第三阶段(8岁前)
可以说开始进入“计算思维”的启蒙阶段。还是可以先不接触任何具体的编程语言。而是通过大量接触应用软件和应用,开始有意识和计算机互动,借助“计算机”提供的途径,了解计算机的协作和创造价值。
第四阶段(8-11岁)
大部分的简单编程语言的推荐年龄在8岁,理论上可以接触一些“模块式”的初级代码。可以在玩中找到问题,尝试解决。用电脑提供的简单操作,进行试错和修改,初步尝到解决问题的甜头。
这个阶段的难度和范围涉及较多的是解构和找特点,但试验和修改的种子已经埋下,应该多鼓励孩子发现问题,积极寻求解决的途径。
第五阶段(12-15岁)
这个阶段的孩子已经具备一定数学运算能力以及理解抽象概念的能力,可以大踏步向“提炼”和“算法”前进。大面积接触“计算机语言”,从问题入手,找到解决问题的途径,并能够给计算机成功发送相应的指令帮助完成。
高级的同学,还可以通过验证过程,学会“排错”(debug);高阶的孩子也可以通过电脑设计的程序,链接电子设备或机器人完成任务。从中 看出,计算思维的培养不仅帮助孩子找到成就感—利用程序,完成任务,更关键的是让孩子将目光移到“解决问题”的过程(试错、排错),而不是单一关注“结果”。
这一思维方式,恰是孩子在其他学科学习中无法“体会”,而又拼命使用的“技巧”。因此,与其说通过编程课程让孩子掌握未来语言,不如说让孩子掌握了未来的思维模式。
分流阶段(15岁+)
计算机的学习开始分流,主要原因是之后的程序语言学习后期更加依赖于自身的偏好和其他理科知识的支撑,要想精进,必须要对其他相关领域投入足够时间学习。
编程学习的发展受制于“数学”和“科学”等多个因素。被大家热议的STEAM理科综合学习才是最好的支撑,只有往多个领域学习,才能让编程学习“发光”。
这个时期是对计算思维、解构问题、提炼规律以及最终找到算法的综合使用&深度拓展。在科学、艺术等领域遨游,可以让孩子体会到“计算机”的工具作用,涉猎更多有意思的”问题“,这才为”算法“找动力的源头。提高”数学“和”语言“的学习,才能精炼自己的问题解决途径。
在数字化不断完善的当今社会,最令人们恐慌的恐怕就是人脑跟不上电脑的发展。不论AI技术、机器人技术如何发展,我们人类思考的核心问题都会围绕“学习力”。
像程序员一样思考
编程语言既然有如此的预见性,那面对未来层出不穷的新语言,以及本身的迭代,如何保持学习编程的优势?恐怕这并非学习某个“程序语言”可以实现的了的,而关键在于学习语言过程中渗透的过程思维(实现的路径)、逻辑(因果联系)和试错理念(debug的排错概念)。
这样看来,孩子从小开始建立这样的思维习惯,才算真正具备了某种“未来品质”。我们需要孩子学习的不是某种语言,因为语言总在变,但是这种逻辑、思维和理念才是关键。
哪个程序语言可能都无法帮助我们通关未来,只有通过学习语言训练我们的大脑和思维,才是以不变应万变。