本帖最后由 高小适 于 2019-4-25 12:00 编辑
啊哈磊从2009年就开始教学生学习编程。从2009年到现在,算起来也有十年的时间了。这期间他遇到过很多不同的小朋友,学员们有在编程这条路上取得很大成就的,也有在编程创作时表现出很有想法与创造力的孩子,在教书这条路上看到很多很多孩子们成长的瞬间。今天,啊哈磊会把这十年里的所见所闻,以及他对编程的理解给大家分享一下。
啊哈磊个人简介: 畅销书《啊哈!算法》、《啊哈!C》作者,当当网计算机和互联网作者第一名 100万用户使用的编程软件《啊哈C/C++》开发者 啊哈编程创始人兼CEO 全国青少年信息学奥林匹克金牌教练,近8年,培养的学生获得10次全省第一,2次满分全国第一,86人次获全国一等奖。
优秀学生分享
我2009年的时候带的第一个学生叫李嘉浩,他当时还在上小学五年级,当时为什么会来学习编程呢,因为他觉得编程很有趣,因为他自己是比较喜欢玩游戏的,他就想能不能通过改变一些参数使得游戏当中的自己变得更加的强大。后来,他真的做到了。从小学五年级的时候开始学习编程,顺利地拿到了初中组的一等奖,而且还是全省第一名,后来他考入了外初;在外初的三年当中又考了高中组的奖项,后来也去了外高。他在外高时拿到了NOI的金牌,然后获得了保送资格入选国家集训队,也是当年的最小选手的,最终他放弃了保送资格选择了出国,去了麻省理工读本科了。他现在已经读到硕士了,马上硕士毕业。
李嘉浩之后,也遇到了很多喜欢学编程的小朋友,有小学生也有初中生,其中有一个印象深刻的男孩子叫吕凯风,通过学习编程,他能够自己开发游戏,并且做成电脑版,然后带着同学一起玩。对于他为什么要学习编程?他说学习编程全凭兴趣,兴趣引导他前进。他以前做完了作业总打游戏,但是学了编程之后,写完作业就开始学编程。所以说,编程给孩子带来的不仅仅是学科上的知识,其实更重要的是培养了孩子发现问题,并且解决问题的能力。编程与一般的学科最大的区别在于,当你学习了数学物理化学,你会发现你很难从这些学科之中创造出一个产品出来,但是,当你学习了编程之后,你可以自己做一个小的作品。而且,学习编程后,当孩子们发现有东西不能够满足自己需求的时候,他们会想办法自己动手做一个更好的。我觉得编程是一个不仅能够为孩子的升学问题加分更能够帮助孩子们寻找到发现自我价值的学科,这是其它学科难以做到的,我觉得编程降低了让孩子们获得自信和发现自我价值的门槛。
乐高机器人编程是编程吗?
我发现其实有很多家长至今都还挺混淆乐高机器人编程和我现在说的编程的区别。首先,乐高是儿童拼装搭建积木的大品牌,旗下包括很多很多的系列产品,按功能可以分成三大类:
砖块搭建类大家应该非常熟悉,绝大多数孩子刚开始接触乐高时玩的就是这一类。我们平时给孩子买的很多一盒一盒的场景类、建筑类主题积木,或者散装的积木桶都是这种类型。孩子可以按照图纸说明一步一步从头到尾,或者凭自己想象创造拼搭出成品。它最大的特点是——不能动。
机械搭建类:机械搭建时会用到轮子、齿轮、梁、栓、马达、控制器等器件。我们平时给孩子买的很多一盒一盒的汽车、火车、飞机、变形金刚等等主题积木,或者专门的科技积木套装都是这种类型。它最大的特点是——能简单地、重复地动。
乐高机器人则是在砖块和机械搭建的基础之上,结合了编程控制。比方说上面这个挖土机的手臂能通过齿轮被马达所带动,它是个机械搭建。但如果它还能连接电脑程序,让它可以自动地从指定的A点挖些土搬到B点,就是个机器人了。它最大的特点是——想怎么动就怎么动,通过编程来控制。
所以,回答前面的问题,学乐高机器人是包括了学编程的。
但是,编程只是乐高机器人的一部分,可以说是比较简单的一部分。比如就挖土机这个例子,编程要干的活很少,控制它走到A点,挖土,再跑到B点,倒土,完了,期间可能需要判断一下距离,角度,或者调用一下传感器,逻辑非常简单。可在没有图纸的情况下,怎么搭出这个能前进、后退、转弯,手臂能抬起放下,还能挖土、倒土的机器却是难点。没有这个灵活的机器,程序编得再好也没招,叫天天不应叫地地不灵。所以说如果想培养孩子的编程能力,我建议最好专门学编程,玩乐高机器人通常可能只有30%左右的时间会花在编程上,而且一般不会很深入。
什么是编程?编程到底在学习什么?孩子如何选择编程语言?
编程是人们根据自己对信息处理的要求,给计算机设计指令,让计算机根据人的指令进行工作。
编程说到底依然是一门语言,language。什么是编程呢?就是人跟人沟通需要使用到人类的语言,这样就有了中文、日文、英文、西班牙文……但是人跟计算机勾通就不能使用这些语言了,那么就需要使用的计算机的语言,比如说c语言、python、java等等,使用计算机的语言跟计算机对话这个就是编程。所以学习编程,是在学习这门语言的同时提升自己的逻辑、解决问题、考虑问题的能力。
前面我谈到编程的本质,用一句话来解释,就是和电脑对话,用电脑听得懂的语言,告诉它我想让它做的事。可电脑那台冷冰冰的机器能听懂啥啊?其实它只能听懂由0和1组成的序列。所以很久以前,程序员写代码都是靠在纸带上打孔,打孔代表1,不打代表0…
后来,打孔打得眼冒金星的程序员们受不了了,就纷纷开始发明新的编程语言,于是有了C、C++、C#、Java、JavaScript,Python…还有和这些语言相匹配的翻译器。这些翻译器能把它们翻译成电脑搞得懂的0、1序列,所以编程时只管用这些语言就好,剩下的就留给翻译器去办。
再后来,一些程序员觉得这样的语言小朋友用起来太难了,那些“if”、”else”什么的很难记,所以又发明了一类拖拽式的编程语言。编程者不需要手动写代码,只需要将操作界面上的指令方框拖到主界面,并且对指令框做一些参数设置就好。这种拖拽式的编程语言有很多种,比如Scratch、Hopscotch,前面提到的乐高机器人,用的也是拖拽式的编程语言。
孩子一开始接触编程,建议从拖拽式的编程语言开始,难度低,上手快,孩子会比较感兴趣,一般5-6岁学龄前的孩子尝试这个;但是拖拽式编程语言有个局限,没法编写很复杂的程序,因为一旦程序逻辑很复杂的时候,满屏框框会显得很臃肿很混乱。所以当孩子学到一定程度就可以转为更加专业的,需要手动写代码的编程语言了。这个时候就可以开始尝试学习Python。
Python的语法格式比较简单,孩子容易上手。就算没有学过Scratch的零基础小学生也可以开始学习Python,基本上只要具备一年级的数学知识就可以开始进行Python编程的学习。
学习Python后,我们的孩子可以进行更进一步的编程学习,那就是学习C++。学习C++的话就可以参加我们的NOIP,像前面我介绍的两个优秀的学生一样,通过竞赛获奖考取名校。
学习编程可以参加哪些比赛,对升学有什么帮助?
刚才跟大家讲的这些学员事例,可能大家觉得这些人可能是太牛了,其实如果不是特别牛的学生,他能够通过竞赛获奖吗?或者说能够学懂编程吗?我觉得也是没有问题的!给大家看一下我们2018年获得的这些奖证,其实我觉得每一个学生在编程这条路上都可以得到自己的收获。
上面的是2018年的获奖的一部分,我们二等奖三等奖还有放在这个里面,我们在2018年的信息学奥林匹克竞赛中,湖北省总共有334名获奖者,其中有74名的少儿编程的学员占总人数的25%,也就是1/4啊,2018年啊哈编程总共只有121人参加了比赛,所以获奖率差不多是70%,接下来我给大家看一张图啊,里面大概讲解了大概可以体现出我们去年的成绩。
大家应该听到了我刚说了一个词叫做NOIP,全称是全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces),就是传说中的五大学科竞赛之一,五大学科包含:数学、物理、化学、生物和信息学竞赛,信息学竞赛是大家在小学阶段、初中阶段和高中阶段都可以参加的比赛,也应该是目前全国竞赛中小学生唯一可以参加的比赛,就是在武汉市小学生可以参加的比赛,并且通过这个比赛来进行优录。
除了NOIP,其实我们的学生还可以参加全国中小学生电脑制作大赛与全国青少年科技创新大赛等等,这两个比赛也是目前参与人数比较多的全国性比赛,但是在2019年教育部发了自主招生的消息之后,会发现这两个比赛的这个作用被降低了,目前高校对于自主招生有比较明确的要求,很多学校都在自主招生的简章当中贴出来了,明确要求有五大学科竞赛获奖。
接下来给大家介绍一下NOIP比赛,比赛分为三个阶段。那么第1个阶段,我们叫NOIP,全国青少年信息学奥林匹克联赛联赛分为两个组,别分别是普及主动提高组,那么普及组就称为初中组,提高组又成为高中组,那么这两个主角都是每年的10月份比赛,11月份复赛。其中10月份的比赛每个省每个城市参赛获奖比例都不一样,大概是20%的人可以进入到复赛当中,然后复赛大概有20%的全国一等奖。最终,这个比赛会分为全国一二三等奖,大家注意点哦,这个比赛是没有省奖,只有全国一二三等奖,但是很奇怪的是呢,在很多大学的自主招生的简章当中写的是省奖,其实这个叫法是不正确的。因为它是每个省来进行组织的,比如浙江有浙江的考场,湖北有和别的考场,只是大家在不同地方考试而已,考试内容、考试时间、评分的标准都是完全一致的,所以它是一个全国赛事,大家在自己的省考试而已。
这个省赛当中的全国一二三等奖是大部分学校的自主招生资格关注的重点了,对于四五年级的家长来说,这个比赛在现阶段有什么作用呢?首先很开心的一点,是今年这个会增加小学组,以往是小学生会参加普及组的比赛,但是现在小学组被单独拎出来了,如果小学生参加了普及组比赛并获得一等奖是可以被重点的初中优先考虑的。现在我所知道的华一寄、外初、六中上智都已经有了信息学竞赛班,很看重学生这方面的能力,对于五六年级的家长那个来说,如果孩子喜欢编程,我觉得可以重点去准备一下这个比赛,会对升学有所帮助。
在NOIP之后呢,就是NOI,也就是全国决赛,决赛是每个省会有省队,湖北省今年应该会有超过十个人去参加全国决赛。我这里也说一下,省队里有可能是初中生,也有可能是高中生,那么参加NOI的比赛会获得大学的现场的签约,其中金牌的前五十个人会入选国家集训队,并且得到大学保送资格。第三个阶段就是IOI,每个国家派四个选手参加,可以说是目前全球最高等级的这个比赛。然后目前高校的自主招生,基本上是NOIP全国一等奖,有部分211院校的二等奖也是可以报名的,大家可以去查看一下。 编程学习如何培养个人能力?
前面我给家长讲了很多关于学习编程对于升学的直接的帮助,这其中是一个方面,但也很重要,编程不但能够帮助孩子升学,更重要的是锻炼孩子的逻辑思维的能力,解决问题的能力,全面思考问题的能力以及自学能力。在这里我举一个例子,我的有一个学生的妈妈很喜欢做烘焙,每次面粉、黄油、鸡蛋、糖都是需要按照比例调配,比如需要面粉120克、糖20克、黄油15克,但有的时候不需要那么多面粉,可能只有80克面粉,但是糖和黄油的比例需要重新算,学生妈妈需要拿出纸笔算半天,但是孩子心理想着为什么不涉及这样一款软件,只要输入面粉或者黄油或者糖的任何一个量,就可以得出其他量的软件呢?后来,他就真的设计出了这样一个软件,给妈妈轻松使用。其实这是一个很简单的例子,也是一个很简单的软件,但是我们会发现会发现当孩子学会编程之后,还提升了思维能力和解决问题的能力。
学习编程最重要的是培养孩子发现问题并解决问题的能力,说如果孩子好奇心比较强,并能够以好奇心为出发点,去学习研究,那么就比较适合学习编程。编程的世界有趣令人着迷,相比数理化生等学科,孩子在学习编程不久后便有能力来创造并产出作品。我前面讲到的吕凯风,通过学习编程将同学们课间玩的一个游戏《得得棋》编写成了电脑游戏,之后这个游戏风靡了整个校园。我们都知道要培养孩子的创新能力,而培养创新需要从培养自信开始,要感觉自己“很行”,而编程给予了这个可能。当孩子们发现有东西不能满足自己需求的时候,他们会立刻想为什么不自己动手做一个更好的?
所以当很多家长问我,因为很多小朋友都喜欢玩游戏,能不能将孩子这个玩游戏的这个热情转化成学习的热情呢,我的回答是完全可以的,因为当你了解什么是编程之后,你所关注的并不是怎么去玩游戏,而怎么自己创作出一个游戏出来,我觉得编程并不是特别难,我们很多小学四、五年级的孩子都能自己去做一个游戏,你会发现到孩子们自己知道了这个编程的背后,游戏的背后是一个什么样的逻辑,孩子就不会说是在去想玩一个游戏,而是想着怎么去创作一个新自己的游戏出来。比如我们啊哈编程的学生们,就通过学习制作了自己的小游戏。
如何规划编程竞赛之路?
今天在群里的大部分都是4年级的家长,我觉得4年级这个年龄开始接触编程,可以以Python作为启蒙。就想我前面讲到的,Python语法简单,容易上手,孩子们更容易对这个产生兴趣,从而推动孩子继续学习。等到学习了半年左右的时间,就可以开始学习C++,从而在六年级10月份的时候参加一次NOIP,冲击一下竞赛获奖,因为这个对于孩子的小升初是很大的帮助。而且在初中也可以继续后面的学习,获得提高组一等奖,就可以参加自主招生了。其实,不管是不是纯粹为了升学,我觉得每一个孩子都应该要学习一下编程,因为它教会我们如何思考!
你以为只有线上讲座吗?当然还有线下体验活动! 少儿编程是一个实操性的学科,只有当真正的体验过了编程,孩子才会有感知和兴趣。
4月27日上午9:00-10:30信息学竞赛金牌教练啊哈磊亲临现场指导孩子学习编程,体验少儿编程里的算法思维,带你打开新知识的大门,亲手教你敲出人生的第一段代码,创造属于你自己的小游戏。
活动流程: 活动时间:2019年4月27日(周六)上午9:00-10:30
活动地点:和平大道450号武汉工人文化宫2号楼1楼啊哈编程,地铁2号线【积玉桥D出口前行50米】
到场方式:家长自行前往
参加人群:小学四五年级学生及家长
家长福利:到场嘉宾每人获得啊哈编程文具套装和周边,分别有书包、笔袋和本子一个!
填写报名表单
|