日本小学必修编程;日前,日本文部科学省公布了新的教科书鉴定结果,全日本所有小学要从2020年起开始使用这些教科书,其中,在算术和理科方面,编程教育作为新的必修内容加入了理科教科书中。
援引日本经济新闻消息,日本小学开展编程教育的目的,是培养孩子在信息应用方面的基本能力和逻辑思维能力。日本政府希望让孩子们从小学义务教育中,就开始接触编程,谁对此感兴趣,并且还有天赋,今后就会被培养成IT领域的专家或技术人才。
据了解,按照新修改的小学6年级理科教科书,日本孩子将学会使用“点亮”、“熄灭”、“反复”等指令,让发光二极管(LED)按照预想的次数点亮熄灭。
日媒评论称,IT与社会的联系越来越紧密,相关行业的国际竞争正在不断激烈化。但日本在IT教育方面很滞后,希望通过修改教科书来培养短缺的IT人才。
对此,日本某编程教育推进团体代表理事利根川裕太表示:“考虑到教师的教学负担,(编程)目前在小学里就教到接触导入部分的程度比较合适”。
但是,日本东洋大学信息合作专业的坂村健院长则对未来形势表示了担忧,“现在日本虽然把编程列为了小学必修内容了,但是和国外的教育比起来还远远不够。如果不把编程专门列为一门学科,并不断充实内容,日本还会在世界上落后。”
据环球网科技此前报道,早在去年5月17日,日本政府在未来投资会议上确认了在“大学入学共同考试”中引进编程等信息科目的方针。为了推动第4次工业革命,熟练使用人工智能(AI)等技术的IT人才是不可或缺的。日本政府预计未来可能出现人才不足,将加快人才的培育。
日本已经决定到2022年度将包括编程在内的“信息I”科目加入到高中阶段的共同必修科目。今后,将以文部科学相林芳正为中心,以2022年度入学学生参加的2024年度大学入学共同考试为大体目标,进行引进信息科目的讨论。
据日本经济产业省2016年公布的数据显示,如果IT市场保持中等水平发展,到2020年,日本国内的IT人才短缺规模将达到约29万人,到2030年将达到59万人。
一、为培养IT人才,日本把编程列为小学必修内容
据《日本经济新闻》3月27日报道,日本文部科学省3月26日公布了全国小学从2020年度起使用的教科书的审定结果,共164本教科书通过审查。在算术和理科方面,作为新的必修内容加入了编程教育。IT(信息技术)与社会的联系越来越紧密,相关经济的国际竞争正在激化。日本在IT教育方面的滞后被指出,希望借助此举培养短缺的IT人才。
小学开展编程教育的目的是,培养孩子在信息应用方面的基本能力以及通过试错来培养逻辑思维能力。本次审定合格的教科书中多半提到了2个课题,即新学习指导要领中示范的▽小学5年级算数中提到的正多边形画图和▽小学6年级理科教科书中提到的亮度控制。
关于小学6年级的理科教科书,登载了使用“点亮”、“熄灭”、“反复”等指令,让发光二极管(LED)按照预想的次数点亮熄灭的编程课题。
日本的编程教育推进团体“大家的代码”的代表理事利根川裕太表示,“在教师教学负担增加的背景下,目前在小学里仅限于接触导入部分程度的内容较为现实”。
2016年日本经济产业省发布的推算结果显示,在IT市场保持中等水平增长的情况下,日本国内IT人才短缺规模到2020年将达到约29万人,到2030年将达到约59万人。鉴于这一情况,日本政府的产业竞争力会议2016年在增长战略中写入了把编程作为必修课的内容。
韩国在2007年修改教育课程,在初等、中等教育阶段正式开展编程教育。英国从2014年起在5-16岁的义务教育中引入了编程教育等,不少国家都在积极采取应对措施。
日本东洋大学信息合作专业的坂村健院长充满危机感地表示,“在小学的(编程)必修化取得一定进展,但是和海外比起来还远远不足。如果不把编程列为一门学科并充实内容,日本将在世界上落后”。
日本从2012年度起在中学里把技术·家庭学科的编程教育作为必修,预定从2021年度起进一步扩充内容。在高中阶段,将从2022年度起新设包括编程在内的“信息I”必修科目,所有学生都要学习。
尽管日本终于开始调整编程教育体制,但如何确保授课中使用的电脑、完善网络环境、提升教师的知识和力量等,目前还有不少课题亟需解决。
培养专业的技术人才,很大程度上要依靠企业和个人的自身努力,这也是不争的事实。日本庆应大学1990年设立的湘南藤泽校区(SFC)向IT相关行业输送了众多人才等,出现了私立大学新设置专门的研究生学院和学科的动向。另一方面,受限于定员变更审批手续等,日本国立大学的动作比较缓慢。
让孩子们在中小学义务教育中接触编程,对此感兴趣且有天赋的人今后将被培养成IT领域的专家和技术人才。日本能否为此构建一贯的体制将备受考验。
二、明年起,编程将成为日本小学必修课,中国是否应该效仿?
随着新一代人工智能出现,目前计算机科学教育已经在许多国家深入展开,虽然中国也没有落在他人之后,但步伐可能还需要加快一些。编程是国外许多相关领域成功人士极力推荐的一门学科。其中包括比尔·盖茨、国外知名网站Reddit的创始人。西方国家已经开始对孩子编程能力逐步重视。在亚洲,日本也已经开始跟上。明年四月起,计算机编程将成为日本小学的一门必修课,因为日本正在努力培养新一代高度受欢迎的信息技术技能。
从五年级开始教授编程基础。例如,日本教育部发布了的新教材,要求学生们懂得使用数字编码绘制多边形,并使用简单的命令让LED灯闪烁。随着科技在社会中的扎根越来越深,科技领域的国际竞争也越来越激烈。日本认为自己在编程教育方面起步较慢,但现在的目标是创造一个更广泛的潜在技术工作者群体,让日本从小学生开始尽早接触编程,以便那些有兴趣和技能的人能被培训成专家。
根据日本政府为五年级数学和六年级科学制定的指导方针,“多边形挑战”和“LED挑战”分别被纳入了这两门课程的大部分教材中。其目的是灌输使用代码处理信息的基本原理,以及通过反复试验来教授逻辑思维。非营利教育机构Minna no Code的负责人表示:日本的老师们面临着越来越大的负担,所以现在,让日本学生对编程的初级阶段有个感觉是很现实的。该机构的初衷是“为所有人编写代码”。负责人提到,首先需要推出让学生感兴趣的课程。
日本经济产业省很早就计算得出,如果IT市场以温和的速度增长,到2020年,日本将缺少约30万名技术工人,到2030年则将缺少约60万名。所以不用等到那个时候了,日本政府产业竞争力委员会发誓要让编程成为小学教育的必修课。整个亚洲对此引起足够重视的似乎目前只有日本和韩国做到了,人们不禁要问,中国是否需要进行效仿?是否有这个必要?此前,编程就成为日本中学技术和家庭经济学课程的必修课程,课程设置也将从2021财年开始扩大。在高中阶段,编码将成为将于2022财政年度引入的一门必修课。日本的义务教育止于中学。
中国在这方面确实需要开始重视了,因为许多国家在教授孩子们编程方面都走在了前面。韩国在对其教育体系进行评估时,早已开始将这一主题更多地纳入中小学课程。紧随韩国之后的是英国,该国也将编程引入5至16岁学生的义务教育当中。
日本东洋大学计算机科学教授坂村健表示,将编程纳入日本的小学课程是向前迈出的一步,但与其他国家相比仍然不够,我们必须充实内容,比如让其成为自己的主题,否则我们将落后于世界其它地区。不过,让所有学生都接受强制性编码教育只是这场战斗的一部分。实际的障碍仍然存在,包括获取和联网课堂电脑,以及培训教师。
许多日本的专业IT技术人员要么接受公司的培训,要么通过自己的努力接受培训。越来越多的私立大学也在开设这一领域的研究生院或院系,比如久负盛名的庆应义塾大学于很早之前就设立了相关的校区。但是,公立学校的努力被繁文缛节拖慢了。日本都觉得自己落后了,中国还在讨论是否需要深入学习此类知识。当然,是否应该效仿,还要根据自己国内的大环境和实际需求情况。这是需要进一步思考的。
三、如何给孩子选择编程课
7月8号,教育圈出了一个爆炸新闻——国务院发布文件,要“举全国之力”发展人工智能,并要求全国中小学全面开设人工智能相关课程——“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”
近两年,少儿编程教育如雨后春笋般冒了出来,从Scratch、乐高机器人,到来历可疑的各种编程课程,林林总总,没有技术背景的家长,往往会被海量的信息淹没。如何在海量内容中选择出合适自己的编程课程、节约交易成本,是首要解决的问题。
那么,今天就来跟大家聊一聊,如果想让孩子学习编程,究竟应该怎么选择。
1、我们需要明确,给孩子上编程课的目的是什么
我想,对于中小学年龄段的孩子,编程课的主要目的应该是启蒙——让孩子接触编程知识,在编程学习中强化逻辑思考能力、系统思维能力以及组织协调能力,进而激发孩子的创造力,而不是现在就为了职业考虑,去掌握一门技能。
2、如果明确了这个目的, 那我们看看应该如何选择编程课
对于中小学年龄段的孩子,首先不要去考虑编程语言,先明确课程设计是否做到两个前提:
1:学习编程的过程能否做到所见即所得——输入指令,立刻能够看到效果;
2:能否从项目式学习入手,并建立快速反馈机制,给孩子成就感。
如果在教学设计中满足这两个前提,我们基本就可以判断,这个课程是可以考虑的。
3:那接下来,我们就需要选择学习的体系
在这方面,我个人的建议很简单:如果你的孩子年龄偏小,还不能记下26个英文字母、没有使用过键盘,那么毫无疑问,scratch是首选。国内也有很多类似的编程工具,我自己就见过四五个开发团队在做类似的产品,但基本上还是以借鉴(或者说抄袭)scratch为主,加上一点所谓的微创新。抄袭往往只能抄到皮毛,而那些所谓的微创新更是危险的。所以,认定了方向,最好就选择一个有系统、有积淀的工具。
scratch的优点有很多:
首先,出身好——麻省理工学院媒体实验室开发,这保障了它的完整性和持续迭代能力;
其次,学习门槛低——不认识英文字母、不会使用键盘,也完全不构成障碍;
第三,所见即所得——整个“编程”的过程,是以鼠标拖拽的形式操作的,像在玩积木,容易引起孩子的兴趣;
第四,适合PBL式教学——通过scratch可以快速实现一些小游戏、程序的开发;
第五,便于分享——完成的作品可以发布在官方网站上,可以分享给朋友,增加成就感;
第六,使用门槛低——scratch本身是一款免费软件,下载和使用,都无需付费。
另外还一些优点,比如多语言支持、功能强大等等,据说有一些大神可以用scratch做光学程序。
缺点是目前市面上的Scratch编程课多如牛毛,良莠不齐。
因为软件的下载和使用是免费的,所以开设课程的门槛很低,这就导致了不同培训机构之间的课程质量相差巨大,需要家长认真考核,耐心挑选。在我有限的眼界内,成都的“西瓜创客营”,是scratch教学做得比较好的一家机构。另外,“博雅小学堂”也在开设相关的scratch课程。
当然,如果希望得到更直观的反馈,乐高机器人也是一个非常好的选择。
如果你的孩子年龄稍大一些,可以使用简单的文字、语句,可以使用键盘,认识26个英文字母,那么依然可以选择scratch作为编程的启蒙课程。不过,这时我更建议选择一门真正的“语言”,进行真正意义上的“编程”学习。毕竟,scratch学到底,如果想继续学习编程,也还是要接触真正的编程语言的。
但是从1954年第一个完全脱离机器硬件的高级语言“Fortran”诞生到今天,已经有数百种高级语言被设计、研发出来,最常用的也有几十种,那么如何在这么多计算机语言中,选择最适合孩子入门学习的呢?
我们纵观计算机语言的发展史,从机器语言到汇编语言到编程语言,可以发现一个规律,那就是编程语言的发展趋势,是使编程语言越来越贴近自然语言的过程——更容易开发、更容易维护、更简单,但同时又要能弥补自然语言在表达逻辑和关系中不规范、不标准的缺陷。
换句话说,高级语言的发展目的,是把我们的思想从编程语言的细节里解放出来,更关注实际要解决的问题。
所以,孩子学习编程语言的选择,也应该符合这一规律。
从这个角度出发,对于中小学年龄段的孩子,我推荐以Python作为入门的编程语言。当然,前提是满足我上面提到的两个先决条件——所见即所得、项目式学习。
Python是目前最容易理解的编程语言,非常贴近自然语言,很少强调传统的编程语法,容易入门、上手快、效率高,所以程序员经常会自嘲说:“人生苦短,我用Python”。而且Python的代码便于阅读,它的强制缩进原则,使得代码更工整、更美观,很多老程序员对这一点反而不适应。
另外,Python可以用来做几乎所有的事情:从web开发、科学计算到机器学习、人工智能,你能想到的,几乎都可以用它来实现。
而且,Python有大量的第三方功能库,在这方面没有任何一门语言可以与它相比,开发人员无需再把时间浪费在造轮子上。
同时,Python也是免费的——任何人、组织、机构都可以免费使用。你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
三年前,“谁会成为AI和大数据时代的第一开发语言”还是一个争论不休的问题,那时候,Scala、Matlab、Java、Python还各有机会,而今天,Python已经被公认是代表未来的语言,AI时代头牌语言的位置已经确立,未来的悬念仅仅是谁能坐稳第二把交椅。从2012年开始,Python在“编程语言排行榜”里的位置就是一路爬升,在今年IEEE Spectrum发布的第四届顶级编程语言交互排行榜里,Python一跃成为第一。
我们目前大学里的计算机课程,往往都是从C语言开始学习,以我过去自学Python的经验来看,我个人感觉,Python是给人设计的,C/C++更像是为机器设计的,而Java则介于两者之间。而且JS、CSS、Html体系不适合入门,整体比较杂乱,对刚刚入门的孩子来说太复杂,不如Python唯一、直接。
业内流传一种说法:C++之父说,他发明C++只是因为发现程序员门槛太低, 导致工资也低,所以发明一个晦涩难学的语言,为的是让程序员能够由此多拿些工资。
对于编程语言的选择路径,下面这张来自于Carlcheo的图,可以让我们一目了然:
我们可以看到,左上角“for my kids”的选项后面,就是scratch和Python。
Python是人工智能领域中使用最广泛的编程语言,它可以无缝地与数据结构和其他常用的AI算法一起使用,而且,Python有大量的在线资源,所以学习曲线也不会特别陡峭,这也就是为什么,Python成为了美国中小学编程入门课程的首选教学语言。
但我们国家目前的少儿编程课程,还是scratch的天下,因为Python的教学需要一定的技术能力和课程设计能力,这造成了一个不低的门槛,如果没有一个优秀的课程设计,Python的学习容易变成“始终在黑框框里演练”的很枯燥的一门课程。但以我们和欧美国家技术普及的滞后周期来看,我相信,不久的将来,Python会成为孩子学习编程的必学语言。找到所见即所得的解决方案、提供优秀的Python课程会逐渐成为趋势。
让孩子学会一门代表未来的优雅的语言,在编程学习中培养兴趣、强化逻辑思维能力、系统思维能力、组织协调能力,让孩子们成为能够面对未来的人,我想,这才是一门优秀的编程课程应该提供的。
四、小学开展编程课 现在不学编程,以后会不会像“文盲”?
临近圣诞节,济南市小学生王峥收获了一份“大礼”——近日,山东省在其最新出版的小学信息技术六年级教材中,加入了Python(一种面向对象、解释型计算机程序设计语言)的内容。这使原属“课外活动”的Python名正言顺地成为“课堂内容”,让喜欢“捯饬”编程的王峥喜出望外。
堪称人工智能“网红”的Python已经超越C++等成为最受欢迎的编程语言,但很多人不明白,它究竟好在哪儿?何以“登堂入室”进入小学教材?低幼化渗透究竟会带来什么样的效果?孩子们能接受吗?
假如现在不掌握编程
以后会不会像“文盲”?
很多人对2016年苹果全球开发者大会年龄最小的程序开发者安薇塔·维贾伊印象深刻。
这位来自澳大利亚的9岁女孩已经开发了两款IOS应用。“应用开发有很多步骤,包括原型设计、线框绘制、用户界面设计以及编码和测试等。”这位小女孩透露出的成熟让人惊叹。而在中国,13岁的清华附中学生汪正扬成为中国年龄最小的黑客——他8岁上小学二年级便玩游戏,玩得没意思了开始尝试编写一些小程序,甚至是找专心网站漏洞。
接受科技日报记者采访时,王峥的指导老师、信息技术硕士陈芳老师提到上述两个例子。她指出当今社会、家长们透露的忧虑:未来属于“软件+硬件”的机器人时代,当“人类主宰机器人,还是被机器人主宰”的类似话题一再被提及时,家长们普遍担心,编程可能成为未来社会的通用技能,假如现在不掌握,以后会不会像“文盲”一样?
致力于推动小学生学习编程,短短三四年间,创业者李天驰已经拥有了近五十万小学生“拥趸”。他向记者表示,在人工智能时代,教育和工作会发生翻天覆地的变化,“未来一代的孩子,不仅需要与人交流的能力,也要有和机器对话的能力。编程,正是连接人与机器世界的桥梁。”
在李天驰看来,工业时代培养的人才叫“硬盘型人才”,试图把所有的知识都放到脑子里背诵、掌握,“但现在互联网已经有了海量信息,当你想查清楚哪一个国家、哪一年发生了什么事情的时候,只要利用搜索引擎就能获得海量信息。所以新时代我们更需要培养人才,利用已知内容、手中工具去去创造性地解决问题、学以致用,做出东西来。”
今年7月份,国务院印发《新一代人工智能发展规划》,提到中小学要设置编程教育。陈芳认为,人工智能时代需要新的人才,而编程就是AI时代的基本工具,因此学习编程需要“从娃娃抓起”。她认为,这和中国加入WTO以后顺应全球化时代、把英语纳入基础学科逻辑相似。
“人工智能时代的教育,玩法不一样了,这应该是Python‘登堂入室’的大背景。”济南历城二中科技创新教育的专职教师高月峰向记者总结到。
Python是什么?
它是一门新的“英语”
Python是什么?
在程序员的世界里,相比C++或Java等语言,Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
但在推广者李天驰的心目中,Python像其它编程一样,并不是像程序员一样单纯地写代码,“编程不仅是一项技能,最重要的不是你背会了多少语法、会用多少种语言,重要的是你用它创作了什么。”
他认为,少儿编程就像一条路,指引着我们通向另一种思维、另一个世界。我们要学会的不是如何修路,而是如何利用脚下的路,去更远的地方,看更多的风景。这就是我们要教会下一代的东西。
曾经多次获得优秀科技辅导员的高月峰认为,如果说奥数的本质是国家为了选拔有精确计算能力的学生,那么编程特别是Python是为了培养学生的思维能力。两者的区别在于前者强调专业性,针对少数学生;后者强调普惠性,针对大多数同学。
山东将Python纳入新教材之中,得到了本次受访者的一致认可。记者也了解到,重视编程教育,山东省并不是唯一的践行者。
在今年的浙江省新高中信息技术教材改革项目中,也提到了Python。教育部考试中心更祭出“大招”:10月份,该中心决定自2018年3月起,在计算机二级考试中加入“Python语言程序设计”科目。
李天驰在国外留学多年,了解世界各国的编程教育情况。在他看来,早在2014年,英国就已经把图形化编程纳入了5岁以上小朋友的必修课;在法国,编程被纳入了初等义务教育的选修课程;在北欧国家如芬兰、爱沙尼亚也把编程作为了一门非常重要的义务教育学科。
“在中国,少儿编程教育刚刚起步。但在政府和市场的合力推动下发展较快。”李天驰说。
学编程为何从娃娃抓起?
孩子的“程序性”记忆最敏锐!
小孩子的认知能力和智商水平是不是还无法理解编程这样看似深奥的话题?Python需要小孩子有特别的天分吗?
接受采访的专家、教师表达了谨慎的乐观——“前途是光明的,道路是曲折的”。
长期从事信息技术教育的陈芳老师认为,年幼的孩子在学习语言上的天赋,因为年轻的大脑更容易形成“程序性”记忆——一种深深烙印在我们神经中的记忆,调动时只是一个条件反射而无需意识参与。
她提到乔治城大学医学中心大脑与语言实验室的主任迈克尔·乌尔曼的一个观点:伟大的小提琴家、歌唱家都不是在二十多岁才开始学拉琴、唱歌的,他们通常始于三四岁,那正是“程序性”记忆最敏锐的时候,编程也是一样。
这个观点也符合李天驰的观察。“小孩子在学习算法和计算机上潜力突出,如果等他们十几岁再学这些就太可惜了。”但他认为,相对于潜力和天赋,兴趣才是最好的老师。
“如何让小孩子对编程感兴趣、又如何让他们对编程保持兴趣,这里面涉及到很多儿童心理学的门道。比如电视、课业、户外活动、游戏都会占据小孩子的注意力,但是他们注意力时间是有限的。如何吸引小孩子去学习?可以从游戏化教学入手,采用项目任务的方式来让小孩子学习,回归到游戏场景里中熟悉的画面——为了通关去学习多种技能。”李天驰说。