一晃眼史上最严“禁奥令”的落地实施已超一年半,这或多或少消磨着部分家长报奥数培训班的热情。此消彼长,少儿编程呈现出越来越火的趋势。家长们或出于"跟紧时代发展趋势"的需求,或出于“为小升初加码"的需求,都前仆后继地跳坑了。
编程早在十几二十年前还属于挺高端的教育,可现在在一二线城市己越来越平民化越来越低龄化,甚至幼儿园就开始接触少儿编程的人也不在少数。但是,编程距离普通人的普通生活仍然比奥数还要遥远。孩子多大年龄适合学编程?编程语言有哪些?学习编程对未来能有什么好处?初学编程需要提前做哪些准备?等等问题,家长完全没有头绪。因此只能求助编程培训机构,听取机构工作人员的建议。但是机构毕竟是以营利为目的,这中间水份有多大可想而知。
我家小子今年一月(四年级上快结束时)零基础开始学习C++编程。跳坑原因是因为在禁奥数又无奥赛可打的大环境下,再花大量时间刷奥数题感觉不值当。但是孩子学有余力,又喜欢逻辑思维类的学习,C++就挺符合他的学习兴趣需求。跳坑目的,参加信息学奥赛,如果获奖或许能为小升初加码。
通过近一年对编程的接触了解,虽然我对它还有很多不了解的地方。但是,我已经了解的与普通家长相比应该也算多的。下面,我以一位普通家长的身份以自问自答的方式向大家分享我所了解的关于编程的那些信息。
一,小学生可以学的编程语言有那些?
答:编程培训机构开班较多的编程语言有scratch、python和C++。通常机构会劝导家长尽早给孩子报班,从scratch开始学起,然后python,最后C++。这样一套流程走下来,小学六年刚刚好。可在我看来,这三者的学习几乎完全不相关,不用“一步步来”。
二,编程语言scratch、python和C++分别是什么,学习有什么用?
答:scratch又叫简易图形化编程语言,在已搭好框架的程序中,让孩子通过涂鸦、录音、找图片等方式来拼搭积木块,最终形成动画。其难度小学一二年级的孩子也能接受。python是一门面向对象,直译式的编程语言。据说在大数据和人工智能中应用广泛,以后也很可能成为中学生的必学科目。其难度大于scratch。C++在所有的编程语言中学习难度都算高的,因此有一种说法“C++学好后,再自学其他编程语言都会十分轻松”。小学生提前学习C++的主要目的是参加信息学奥赛。据传,2022年开始信息学奥赛NOI的参赛语言只有C++。
三,学习C++前,需要先学习其他语言打基础或通过这种方式来培养孩子对编程的兴趣吗?
答:不需要,两者关系并大不。
C++的学习难度很大,小学中段学习都很勉强,小学低段更是“高不可攀”。因此培训机构常常会向零基础的中低段小学生家长推荐scratch。他们或许会这样说,学好scratch一方面有助于孩子参加教育部公布的“竞赛活动白名单”上允许小学生参加的科技信息类活动,而且这类活动获奖概率较高,能为孩子的个人简历“添彩”;另一方面能为孩子以后学习C++打基础。但实际上这两种说法都不值得推敲,甚至还可能产生反作用。
信息学奥赛CSP
说说我家小子C++班上的一个实例吧!
小子所在的C++培训班采取小班化教学,通常是六个人以上才开班,但他们这个班当时仅4人就开班了。机构笑言这是一个“竞赛班”。开班时的四位同学,两位五年级,两位四年级,都属于学校编程队。两位五年级的同学都已经学过近一年半的pascal,并且在开班不久前刚在区赛上获过三等奖。两位四年级的同学都学过近一年半的scratch,一位获过三等奖,一位获过一等奖。我下面想讲的就是这位scratch获过一等奖的四年级同学的事情。
小男孩因scratch获得了一等奖,自信心和对编程的热情都空前高涨。孩子及孩子家长都觉得孩子很有学编程的天赋,于是决定向更高的目标挑战——学习C++,参加信奥赛。但是,令人意外的事情发生了。孩子进班上到第十次课,自信心与热情就被C++的学习难度消磨光了,孩子主动向家长要求退班。
导致这样结果的主要原因是小男孩及其家长在进班前对C++的学习难度没有一个正确的定位。听孩子家长说,小男孩的课内学习成绩只能算中等,做作业速度也不快,家长下班到家通常是六点半,吃好晚饭要家长看着小男孩才能静下心写作业,写好作业也就晚上十点了,又该洗漱睡觉了,完全没有时间去复习预习培训班上C++的学习内容。孩子家长还说,孩子三年级就开始学习scratch,当时在家里也是没花什么时间的,但他仍然学得挺好挺轻松的,不但参加比赛获得了一等奖,还被选入了校编程队。现在怎么就不一样呢?
C++和scratch的学习难度完全不具备可比性,小男孩及其家长轻视了两者的学习差异。小男孩在进班学习前不但在学习时间上没做好准备,在思想上也没做好准备。因此,当他被我家小子反超,成为班级新的“垫底”后,心态彻底崩了。于是,他向父母提出了退班的要求。(还有一个四年级的孩子是第五次课就退班了,感觉他就是来“感受”下的。)
与这个孩子形成鲜明对比的是我家小子的学习情况。
我家小子是在这个班开班一节课后,零基础插班进入的。我家的原定计划是再晚三个月进班学习,当时小子手头上还有好几个待参加的比赛——3月的围棋2段冲3段、5月的市校园足球联赛和市数独锦标赛。后来,之所以会改变计划提早进班就是因为听说有这么个“学习底子很厚”的班级,这对小子而言既是机遇又是挑战。只要小子能挑战成功,他的C++学习进度就能超出一般孩子一大截。
小子带的不是近视镜,而是防蓝光护目镜。也不知道有没有效果,图个心安,预防下。
进班前,我家小子连键盘都没有摸过。以他当时的年级(四年级)和零基础的学习状态,这家培训机构基于对家长的负责,通常是不会同意孩子如此匆忙进班学习的。但是,在我与他们负责人一番长谈后,他同意了。我语气坚定地告诉他:其一,我家不是去“试一试”的,是为了参加十个月后的信奥赛而学;其二,我家没有任何的文化课负担,除了每天的足球训练时间不可以动,其他时间都可以为C++的学习让步;其三,我家在数独、围棋和奥数上已取得的成绩能说明他的逻辑思维能力较强。
时间上为小子做好充分准备后,思想上也要让小子做好充分准备。小子进班之前就知道他一定是这个班级的“垫底”。他的学习目标就是改变这种状态,一步步将自己的班级排名提上去。因此,当他前二个月的课堂测试一直处于班级“垫底”时 ,他的心态很坦然。当班级的两位五年级同学的课堂测试成绩忽高忽低,轮流坐第一时,他始终保持成绩稳定。即使他这时的成绩仅能达到第一的成绩的一半左右,但是他心态上毫不气馁,对于C++的学习一直处于有条不紊的追赶中。于是,半年后小子实现了课堂测试的第一次逆袭,第一次坐上了第一的宝座。虽然,他后来还是输多赢少,但是通过这么个追赶的过程,小子更自信了,更强烈的自信心会推着他更自主的学习。
通过这两个事例,我想说,善于听取他人建议是好事,但更应该基于孩子自身的实际情况来进行客观的分析判断,孩子适不适合不能以统一标准来衡量。孩子的学习状态常常会处于发展变化中,原有的优势可能会变成劣势,原有的劣势也可能变为优势。孩子还小,只有家长多用心观察孩子的学习状态,并及时对学习方法、学习时间做出适当的调整,孩子的学习效果才能更好。
四、不同培训机构的C++学习速度一样吗?
以我对我市C++培训机构的大致了解,相似课件内容的学习速度可以分为快慢两种。慢班,整套课件学习约需要两年半,这也是大多数C++培训机构的学习速度;快班,整套课件学习需要一整年,这是我家小子所在的C++培训机构的学习速度。下面我附上几张图,向大家大致介绍C++的学习内容。通常C++培训机构的整套课件的学习内容会包括下图L0至L3的知识点。
参加信息学奥赛之NOIP普及组、提高组需学习的C++知识点
(NOIP普及组主要面向初中生,NOIP提高组主要面向高中生。但是今年的NOIP已经停赛,分别被CSP-J,CSP-S取代。CSP没有参赛年龄的限制,因此两个组别今年都有小学生参加。)
下图是我家小子所在的C++培训机构的教材目录。
我将小子的教材目录与上图所包含的L0至L3的C++知识点进行比较。两者虽不完全一致,但也大致相当。可是,我家小子学完仅用时1年,其他机构却要用时两年半,两者的教学速度相差较远。这也是我将它们分别称作“快班”、“慢班”的原因。
C++早在我读书那会是大学的选修课程,在那个电脑并未普及的年代,我的C++学习情况可谓惨不忍睹。可随着科技的日新月异,大数据及人工智能的逐渐普及推广,C++居然成为了小学生都能学习的课程。但是,小学生的思维能力和已掌握的知识储量毕竟是很有限的。于是,为了适应小学生的接受能力,培训机构将C++的学习内容细分再细分,通过延长学习时间,让部分思维较强的孩子得以提前学习C++。
C++学习的核心,或者说信息学奥赛的核心是C++的算法部分,而不是语法部分。我曾经在某个信息学奥赛群,看到一位初二的学生询问“请问用一周的时间可以学完C++的语法部分吗?“下面有人留言回复”如果你有很好的老师教导一周够了,如果你是看书自学,那可能需要一个月。“对于中学生而言仅需要一周或一个月时间学习的内容,小学生提前学需要多久呢?那就是在”快班“约四五个月,在慢班约”一年半“。而且C++的语法学习难度与C++的算法学习难度完全不在一个量级,只有学到算法才算真正入门,才能看出孩子适不适合学习这个。
如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637 935 295,免费领取一套学习资料和视频课程哟~
五、进班学习C++之前可以做哪些准备?
答:下载金山打字软件练习打字速度和超前学习数学知识。我指的是超前学习数学知识,而不是奥数知识。它们一个偏向广度一个偏向深度,两者是不同的。
C++是一门纯代码的编程语言。如果,孩子以“一指禅”的打字速度进班学习,那很可能会出现,老师讲解的这段代码你还没有完全录入电脑,老师已经开始讲解下段代码。这样的情况如果反复出现,将会对孩子的学习状态产生很大的不良影响。另外,小学生学习C++是很难将老师课堂上讲解的全部知识点全部消化吸收的,许多地方都会似懂非懂。这时就需要孩子通过反复敲打代码来加强记忆,以待以后的完全消化吸收。如果孩子打字速度太慢,半小时也打不出几排代码,那学习效率可想而知。
学习C++的主要目的是参加信息学奥赛,信息学奥赛在我看来就是编写程序来解答数学题。又因为它的主要参赛对象是中学生。由此可知,它需要参赛者解答的数学题肯定涉及中学的数学知识。如果小学生对此一无所知,题目尚且读不懂,又如何能通过编写程序来解答呢?
结束语,我并不认为C++是一门仅依靠“抢跑”就能领先的学科。如果思维不够强大,即使前期学习语法部分能“举重若轻”,后期学习算法部分也可能“举步维艰”;反之,如果思维足够强大,即使起步较晚也能实现反超。有位网友,他的孩子六年级才开始学习C++,初二就开始打高中组的信奥赛。我认为真正的“抢跑”应该是加强孩子自主思维能力的锻炼。通过消耗大量的时间去学习“超前的知识”并不是真正的“抢跑”,也不具备可持续性,甚至长久来看绝对弊大于利。希望家长能不受”剧场效应“的影响根据自己孩子的实际情况,理性选择。
更多推荐
关于小学生学习编程语言C++的经历经验分享,五问五答
发布评论