自从孩子上了初中,孩子妈就开始盯着各种真假难辨的中考、高考新政传言。当她从铺天盖地的少儿编程广告里获悉,编程将纳入中考,高考范围,并且2018年高考,多个省份的数学卷甚至都出现了编程题时,就变得异常兴奋。我这个写了近20年代码,家庭地位本来十分低下的资深码农,一夜之间变身“宝藏男孩”。
中考、高考政策一天一个新花样,谁也不知道将来要不要考编程。不过2018年,江苏省、天津市、北京市等省份高考数学卷出现了编程题倒是真的。所以,即使一直反对少儿学编程,我也不得不认真思考
少儿学编程有没有必要?
花多长时间学编程上,才不会影响主课学习时间?
怎么教,才能避免借口学编程,实际玩游戏?
少儿编程三问
少儿学编程有没有必要
编程语言也是一种语言,只不过打交道的是电脑而已。
学语言,一般都会有两个很深的体会。
有使用环境,学起来快,比如语文;没有使用环境,学起来痛苦,比如英语。
会用和用得好完全是两回事。《新华字典》背得滚瓜烂熟也不一定能写出好文章。
学编程和学别的语言一样,只学不用,不仅学得很辛苦,如果不用,还忘得快。少儿学编程,即使死记硬背把语法都记住了,生活中没有使用的场景,渐渐也会都忘光。这也是我之前一直反对少儿学编程的主要原因。
但学编程又和学别的语言不完全一样。能不能写出好作文,更多是看天赋:情感细腻、想象力丰富,有同理心……;但能不能写出好程序,却是可以培训和锻炼的。
程序的核心是算法,算法的本质是数学。
就像2018年各省高考数学卷里的编程题,表面上看是编程题,实际上考察的还是数学上的逻辑思维能力。所以,少儿学编程,关键要看学的是什么。
死记硬背语法,或者拖拽几个小方块,快速做出一个小游戏。开始兴致盎然,但兴头一过,用不了多久就忘得差不多了。
但如果能学的是编程里最有价值的东西,数学逻辑和解决问题的思维方式。不仅高考用得着,以后工作、生活中都用得着。
花多长时间学编程
孩子学习压力已经够重了,即使学编程有好处。但是花费大量的时间,性价比高吗?会不会得不偿失,反而影响了主课的学习?
这种担忧的本质是:主课学习和编程学习是对立的。
但假设我们学习编程的方式是:
每周大约30分钟。围绕的是一个数学或者逻辑思维问题。
20分钟用来思考、讨论、写写画画,电脑都不需要打开。
10分钟用来教可以用来解决这个问题的编程知识,程序只是一个工具,帮助我们提高解决问题的效率。
不能说完全消除了两者的对立,但至少每周花的时间不多,大多数时间是花在逻辑思考上,顺便学会了编程。
怎么教,不会让学编程变成玩游戏
80后家长应该都记得“小霸王”学习机,当年几乎每个小孩人手一台。号称也是用来学电脑,学编程的。但实际上,差不多都用来玩游戏了。“魂斗罗”、“坦克大战”,……是我们最美好的童年回忆之一,甚至连“之一”都没有。
怎么让学编程不成为玩游戏的借口,说实话是一个巨大的挑战。我的实践经验是:
● 每周的题目足够有趣。找到足够多有趣,能引发孩子思考,又能由易到难把编程语言知识点成体系串联起来的题目,是最大的挑战。
● 父母的参与。这些题目都是不借助电脑也能做的,前20分钟父母一起参与讨论,思考,不仅能让孩子更投入,也能增进和孩子的感情。这也是我把公众号取名“和孩子一起学Python”的初衷。
● 尽可能减少电脑操作的时间。思路理顺之后,需要电脑操作的时间不多,完全可以控制孩子用电脑的时间,像我家小朋友是个小近视,每周用电脑的时间要求她不能超过1个小时。
课程内容
按上面的思路,我实践了将近半年的时间。目前来看,效果是:“真香”。
初一第一学期,孩子拿了2个市级编程竞赛奖,1个市级数学竞赛奖。(虽然上海全面取消奥数后,这些奖项的含金量不高,但都是校、区、市层层选拔的正规比赛)
而开通公众号的目的,一是资料收集整理不易,尽量分享给更多人,二也是督促自己不要半途而废。每周坚持推送一篇。
因为只有周末空闲写写,所以如果不忙,就会周五晚上发,忙的话就周六晚上。
纯属教孩子之余的整理和分享,所以肯定不会收费。赠人玫瑰,手有余香。
基础部分 约25-30节课
python基础 约10节课
递归与列表 约10节课
字符串与密码学基础 约5~10节课
提高部分 约25~35节课
贪心算法
回溯算法
分治算法
动态规划算法
分支限界算法
其它算法
应用部分 约10~15节课
人机对战五子棋程序
总课时约60~80节,一年半左右的时间。基础部分大约相当于2019年最新发布的《全国青少年软件编程等级考试》1~3级,提高部分大约相当于4~7级。
适用人群
面向人群:小学高年级、初中、高中学生。小学5年级以下不建议学。
次面向人群:0基础,希望多掌握一门技能的成人。因为是写给小孩的,所以一定会是最通俗易懂的python教程之一。但如果想速成,不太合适。
可面向人群:非计算机专业大学生或研究生。现在软件算法就业火,很多非对口专业学生也纷纷转行,但自学算法后,在面试时往往表现不佳。之前在牛客网为公司出过一道算法编程题,难度大概是提高部分的中等水平。但应试的829名同学(绝大多数是名校硕士),正确率也只有52.8%