“不能再给孩子增加负担了!不能纳入高考科目。”
“浙江已经是选考科目了!”
两种不同声音突然先后在会场响起,李文新教授不得不停顿了一下。引起争论的是她PPT上打出来的这句话——“希望把程序设计这件事情纳入到高考的可选科目”。
10月23日,在2015中国计算机大会(CNCC)举办期间,同时举办了中小学计算机教育论坛。在CNCC十多年的历程中,这是第一次专门讨论这个议题。背后的原因是,目前很多计算机界人士对于大中小学生的编程能力不满意。
李文新是北京大学信息科学技术学院主管本科教学的副院长、青少年信息学奥赛科学委员会副主席。她告诉中国青年报记者:信息技术正在深刻影响整个社会,而大多数人对于计算机的认识还停留在简单的多媒体设备或者上网游戏等方面,没有认识到计算机的真实力量。因此信息技术在青少年人群中的普及工作越来越紧迫。
会编程的中学生太少了
“北大信息学院的新生会编程的人大概是1/5,这个比例比国际上许多高校低。”李文新在主旨报告中提到,自己有一次带队在澳大利亚参加国际信息学奥赛,4个选手包揽了金牌榜的一、二、三名。可是一方面是尖子选手在国际上拿奖,一方面是广大中学生里面会编程的孩子实在是太少了,开编程课的中学也实在是太少了,“很多中学计算机的老师变成管机房、管通讯设备的老师,并没有真正地站在讲台上教学生编程。”
浙江大学计算机学院陈越教授是教育部计算机专业委员会委员。她从很多渠道了解到,现在企业对于计算机专业毕业的大学生不满意,她总结了几个“冏”:985高校计算机专业毕业生,一个半小时无法完成一道基础数据结构的编程题;某家大IT公司新员工培训,发现40%员工不具备基本编程能力;某公司自己组织的远程笔试,竟然发现100%的学生作弊……
一次,在带学生参加国际比赛后,陈越感慨:“我们的大学生在编程能力方面与俄罗斯的大学新生差距较大,这不是光学编程就赶得上的,需要思维训练、数学训练等同步赶上。”
世界各国在加强对中小学生的编程能力培养。
李文新了解到,在美国已经掀起了一股在中小学学编程的热潮,不仅是高年级的中学生,甚至在小学也开始各种可视化编程的课程。
英国今年进行的教育改革中规定,5~16岁儿童将开始学习编写电脑程序。英国政府将编程知识引入学校课本,并成为必修课,目的是让学生掌握必要的计算机思维和创造性。
早在上世纪90年代中期,以色列的教育部部长就明确表示,计算机科学应该同其他科学学科一样受到重视,在高中就开始传授。编程在以色列的高中是必修课,所有学生在进入大学或者去服兵役之前,都已经学过编程。
未来程序员会供不应求
陈越用一些数据分析了目前国内程序员的供需关系。
目前国内大学里面,跟计算机沾边的专业点超过了2600个,1180所高校有计算机系/学院,960个设“计算机科学与技术”专业。计算机相关专业的学生数在所有的大学专业里面是第一位的——全国有80万的在校生。
社会对计算机专业的毕业生需求不断上升。有相关预测,未来10年中国的IT界每年需要100万人,其中计算机类人才需求超过40万。据分析,这还是一个保守的说法。
2015年上半年发布的《中国程序员调查报告》中,有关于程序员年龄的统计是:程序员的主力军是20~40岁,另外还有2.57%的程序员是在10~19岁这个年龄段人群中。
让陈越感兴趣的还有一张关于程序员学历的统计表,小学、初中、高中学历的人占程序员的比例是43%,而在普通网民里面,这些学历人数占到78%,“从年龄和学历来看,程序员门槛不高,不是只有高精尖的人才能学。”
让陈越感到不安的是国内程序员水平现状:“80万计算机专业的在校生,每年有30万人毕业出来,企业需要40万,缺口有10万人,但是这30万人里面还有一大批不能用的人。所以说企业非常痛苦。90%毕业生的编程水平,离我们在各种竞赛中的拿冠军的水平相差太远。”
陈越支持“编程早教”:“小孩子学一点编程有好处,不是所有学编程的人都要成为程序员。”
最近陈越在与一位人口学教授合作,帮他们做一个人口学预测的系统,但是人口学家不清楚计算机能干什么,而有些问题通过编程能很容易实现。所以双方在合作上不断产生新需求和新问题。
“跟英语一样,在未来,编程成为每一个人必须有的能力,学编程不是为了将来做程序员,最重要的是通过学一个简单的编程,普通人也要知道计算机擅长干什么,不擅长干什么,所以编程将来会渗透到生活的各个方面,每一个细节。”陈越说,“不要说一纳入高考选考范围,中学老师就坐不住了,认为会给孩子们带来多么大的负担。我个人认为,这是将来我们整个国家的人面临着怎么生存的问题。”
对于“编程早教”的可行性问题,陈越认为培养师资需要一段时间。但她觉得,现在赶上了好时候,MOOC(大规模在线课程)就可以解决很多问题,很多中学生在上她的MOOC课程《数据结构》课,而且非常活跃。
让中小学生树立计算思维
“截至2015年,在国际信息学奥赛27届比赛中,中国信息学奥林匹克代表拿到金牌72枚、银牌23枚、铜牌12枚。俄罗斯拿到了金牌53枚、奖牌总数是96枚,美国队的金牌是42枚。这些成绩说明我们的选手在中学参加竞赛的时候,并不逊于国外的选手。”中国计算机学会青少年信息学竞赛科学委员会主席、清华大学王宏博士总结了这些年我国青少年在信息学奥赛中取得的成绩。
李文新对此的评价是:“整个中国编程教育‘早教’的一支主要的力量,几十年来培养了大批的计算机界的精英。”
确实,很多信息学奥赛选手已经成为IT界的翘楚,王宏非常了解这些学生的发展情况。
上海是最早实践“编程早教”的地区。从1982年开始,上海市教育局从每个区挑选8名小学生和8名中学生,对他们进行最基本的计算机培训,实验儿童对计算机教育的适应程度。
1984年2月16日,邓小平同志高瞻远瞩地提出“计算机的普及要从娃娃做起”。在一个展览会上正在做展示的小选手李劲,受到邓小平的鼓励。李劲高中一年级直升清华,用3年半时间完成清华大学电子工程系本科及硕士八年课程,23岁从美国博士毕业,之后成为微软中国研究院最年轻的研究员。
那么,中小学生学编程对大学会有什么影响?
“如果有基础的话,在后续的学习过程中会非常的有优势。”李文新老师做过统计,北京大学计算机科学技术系2011级、2012级、2013级在校的本科生中,排名前20名的学生大部分都在信息学奥赛中拿过名次。“计算机科学系2/3以上的专业课都需要编程,绝大多数同学是零基础开始的,我们希望这个过程下移。有一些学生到毕业都不喜欢这个专业,就因为中学考上来的时候并不知道这个专业是干什么的。如果在中学有一定的普及和筛选,至少可以提高大学教学资源的利用率,有能力有兴趣的学生会多一些。”
对于“编程早教”,李文新和老师们也做了一些研究性的工作,遴选了四门编程课的一些题目,做了2000题计划,这有点类似大学先修课程。今年10月8日这些题目已经上线。
除此之外,他们还做了一个实验:去年寒假开了两个班,一个班是小学一、二年级和幼儿园大班的孩子,另外一个班是从初一到高三的学生,这些孩子都是零基础。因为有老师手把手指导,有问题可以及时解决,两个短期实验班效率很高。一周学习结束之后进行考试,有些中学生的成绩甚至比大学生学一个学期的分数还高。
“这给了我们信心。”李文新说。
一些学生的体会也非常真切。
一位中学生反馈:“编程是设计程序用计算机来解决问题,把思考问题方式变得清晰化,处理问题的方法变得多样化。它远没有想象的那么难,但也不简单,在一遍遍解决问题的过程中,是对自己思维逻辑的一次次梳理,也是对自己心性的磨炼。”
另外一名高中学生写道:“学习编程的过程中,我更注重逻辑思维了,更加乐意将大事化小事分步完成,也改正了我迷迷胡胡马马虎虎的习惯。学习编程有利于逻辑思维的发展。计算机处理信息是按逻辑顺序进行的。”
参与这次实验的一位中学语文老师总结:“编程教学可以算是一个很好的过程意识的培养。建模意识的雏形,能够让学生尝试着去把学习的理论和实际生活搭造一座桥梁。编程教学同时还是思维全面性的锻炼。”