爱收集资源网

编程算非学科,我暂时松口气

网络整理 2023-10-02 11:05

#5:8:6:e:f:c:1:1:0:6:f:e:6:a:b:5:7:9:7:9:d:c:d:1:3:e:8:8:4:e:0:4#

小游写在上面的话:

朱丽叶写的这篇文章,特别长,以至于阅读也挺通常的,但我还是想在这儿再发一发,文章里都是冷冰冰的干货啊,很有价值。有兴趣让娃学编程的朋友,可以收藏上去渐渐看。同时,也欢迎你们关注我们的教育大号:

另外,昨天公布的文具抽奖名单,还有这几位朋友没联系我:顺馨果、陈一一、Yunique、章曼媛,赶紧加我陌陌(xiaoyouteacher)呀。

#d:c:d:a:3:0:0:5:9:2:0:8:8:1:0:9:8:5:9:0:0:2:0:6:8:4:b:3:7:7:c:a#

双减新政学科和非学科课目划定结果揭晓,编程算是非学科,我算暂时松了口气,不用苦恼是否提早退钱了。

我们家熙熙学乐高EV3机器人编程学了5年,之前太懒,没考虑哪些将来的发展方向,只是跟随机构的节奏按部就班的上课,每周一节,孩子喜欢,就始终坚持到现今。

后来儿子够岁数出席赛事我才开始花心思研究,请教了自己创业做编程教育的同学,基本捋清楚编程的学习发展路径。

#f:d:1:c:3:1:b:3:a:d:8:6:8:5:d:1:e:1:4:9:3:e:7:3:2:e:5:4:f:e:d:6#

▲ EV3中级,搭了一条会张嘴的响尾蛇

如果你的儿子正在学编程,或是有准备去学,我会建议大家先搞清楚学习路径,我们首先得晓得这条路通往何方,才能定阶段性的目标,才有利于在每位节点做选择。

今天这篇都是大实话,是我们5年学出来的点滴经验和心得。

首先申明,这篇不是种草文,我不会给你推荐任何机构,文中提到的网站、桌游和书籍等都是个人使用体验,希望能帮助你们在狂热的少儿编程培训中,理性地做判定和规划。

文章有点长,写了两三天,我实在不喜欢把文章写成上下集,正如我看小说很厌恶“未完待续”一样,哈哈哈哈。

我会围绕以下我认为很重要的几个问题展开,这么讲武德的文章绝对值得收藏和转发:

1、编程是神马东西?

2、编程思维是神马东西?

3、学编程能提升语文成绩吗?

4、学编程对升学有帮助吗?

5、几岁学编程合适?学习路径规划

6、国内外什么赛事值得关注和出席?

7、编程学习资源分享(游戏、书、桌游、网站)

编程是哪些,不是哪些?

我们从一年级开始学的是乐高EV3“智能机器人编程”课程。当初报班时并不大晓得编程是哪些,以为机器人编程就是编程,后来才发觉自己太自私。

编程一般用“语言”来分辨种类,常见的编程语言有:Scratch、Python、C++等。

目前市面上少儿编程课大体上分两类:

一类是Scratch或是仿Scratch的图形化编程课程,运行软件可以创造属于自己的动漫,故事,音乐和游戏,以培养小孩学习编程的兴趣为主,起到锻练女儿思维能力的作用。西瓜编程、核桃编程等属于这类。

#2:c:7:8:a:b:3:1:e:c:0:0:a:3:5:e:f:7:c:a:4:2:b:e:b:8:e:8:7:d:1:5#

▲用Scratch设计的“接苹果游戏”

Scratch是美国麻省理工学院(MIT)设计开发的少儿编程工具。

#f:b:9:8:d:b:b:4:a:d:2:4:4:9:c:8:d:1:c:4:3:0:1:4:8:a:c:5:8:c:2:3#

它将程序指令变为一个个“积木块”,对儿子比较友好,不需要懂英语,不需要敲打代码,不需要背诵任何编程指令,只须要将积木块拖放,按照一定的逻辑联接在一起,就可以很方便的进行编程,从而快速制做出动漫、游戏、交互程序。

#1:7:d:1:1:7:c:7:e:d:8:0:0:9:9:b:f:1:2:3:0:2:3:1:f:d:c:5:6:8:9:f#

▲Scratch编程软件界面

编辑好后运行,孩子能够马上听到自己的设计成果。发现那里不好,还能随时更改参数,所以这些可视化的、及时反馈的方式深得儿子欢心。

另一类是基于Python和C++等计算机语言的编程课程,这类编程课主要是后期出席编程大赛,比如智能机器人比赛或则科技创新比赛等等。

我母亲学的乐高EV3属于此类,主要是通过组装、搭建、编写程序让机器人完成指令。但是乐高机器人有自己的课程体系,用的是robotc这款编程软件。

#2:f:0:c:5:0:1:c:c:0:e:f:b:6:3:c:8:8:4:2:d:5:4:4:4:3:e:1:0:3:d:b#

▲不同造型的乐高机器人

机器人编程会综合学习到好多概念与知识,比如:机械、电子、工程、自动化、数学、计算机软硬件 ,同时会运用好多先进的传感器设备来实现机器人的功能。

#f:c:3:a:6:4:a:0:6:a:6:1:5:8:b:6:a:4:7:1:2:f:5:6:f:d:5:1:5:4:3:c#

▲ev3的硬件设备

#6:8:5:f:3:1:f:b:4:0:5:1:2:b:7:4:8:c:d:c:c:6:d:3:1:a:5:8:6:8:d:e#

▲用乐高ev3做的手动涂擦巧克力机器人

这么说出来你可能早已明白了,少儿编程≠学习写代码!

两种课的方式其实不同,但本质上,编程就是你和笔记本之间的对话,用笔记本听得懂的语言,告诉它我想让它做的事。

举个事例来说:

你渴了,让儿子帮你拿杯水过来,你会如此和儿子说:

麻烦你帮我倒杯水,谢谢啦。

如果想让笔记本听懂这句话,就须要如此和笔记本说:

1、定义对象:什么是水和杯子

2、先往杯子里倒满水

3、拿起杯子

4、直线往前联通2米,停止

5、左转(身),递水给我

说完这五个步骤,电脑才完成我们想要它做的事情。

机器没有爱情,不会猜想你的心思,程序的世界没有模糊地带,你下达的指令叙述和逻辑要严谨,没有歧义,才能获得想要的结果。你给笔记本发送指令时,得站在笔记本的角度去思索问题。

#a:1:5:f:4:c:2:a:a:0:3:f:1:4:3:1:a:a:e:5:f:2:9:8:7:f:b:f:f:4:7:c#

▲端水机器人

另一个,编程≠人工智能!

前面说的两种编程,和“人工智能”还相去甚远。

真正的人工智能,其实是指以“机器学习”为主的一种软件系统。

机器学习是哪些?

“机器学习是一门研究让计算机无需专门编撰程序,就能完成工作的科学。”

很意外吧?我们如今那么努力的学习怎么编撰程序,你告诉我人工智能的目标是“不需要编程”?

举个栗子就明白了,比如AlphaGo和柯洁的象棋大战,AlphaGo的胜利是因为我们给它编撰了下某一步棋的程序指令吗?

#e:0:2:d:d:3:7:f:2:1:d:c:b:b:2:0:8:2:c:1:0:7:9:f:e:f:d:2:0:a:4:2#

#6:4:f:e:e:0:0:0:6:9:5:d:7:b:8:0:2:4:4:b:1:d:9:b:f:5:d:3:7:7:0:5#

当然不是。

那它是如何对弈的呢?

AlphaGo研究了15万盘大神的棋谱,自我下棋了3000万局,柯洁每下一步,它就会借助大数据在脑中过一遍,自己的最优落子点在哪,下那里胜率最大。

AlphaGo或许是训练了人工神经网络来进行象棋图象的理解,具体说来就是落子的选择和大盘形势的判别。

如果那个机构用“学了我家的课程,孩子能自己编撰很厉害的人工智能程序”这类说辞来招生的话,都是扯!

编程思维究竟是个啥?

还记得那种精典的脑经急拐弯吗:把小象装进冰柜分几个步骤?

中国人都晓得:第一步打开冰柜门,第二步把小象装进去,第三步关上冰柜门。

#c:7:0:9:7:3:4:7:4:4:7:f:f:d:c:2:7:f:b:3:b:3:9:5:4:f:7:c:4:1:d:4#

▲如何把小象装进冰柜

其实这个答案包含了典型的编程思维。

到处都在说编程思维,显得很深奥的样子。其实学过编程就明白,编程思维是我们解决问题的一种方式,利用已有的知识和工具,将解题思路转化成逻辑运算的步骤,从而完成复杂任务。

如何用编程思维解决问题,用专业术语解释可分为四步:分解-模式识别-抽象-算法。

#7:1:d:9:4:3:2:2:3:7:9:9:f:4:8:6:e:4:7:a:a:0:a:4:e:6:1:9:9:f:7:0#

我帮你翻译一下就是:

1、分解:把一个复杂问题,先拆解成更好理解的、可执行的、简单的若干小问题。

假如我们全家要去上海迪士尼游览,具体该如何玩呢?

是不是可以把这个问题拆解成——必玩的项目有什么、哪些项目适宜小孩子、吃哪些、住那里、预定机票酒店、准备出游物品等若干小问题。

把复杂问题拆解、理顺的过程是解决问题的基础,只有把问题拆解清楚,才有接下来实现的可能。

#7:5:2:e:a:5:2:d:9:8:1:e:4:a:b:5:c:b:0:1:5:d:1:4:2:d:8:a:0:c:6:d#

▲迪士尼游览思维导图

2、模式识别,有点类似物理中的化归,就是通过观察剖析,找出“重复规律”,把新问题转化成老问题。

假如老师给你布置了一个任务:画100棵不同的树。怎样画更高效?

我们首先对行道树进行模式识别,发现一棵树有这种共同点:有树冠、树枝、树叶。根据这种特征构建起树的“模式”,按照这个模式能够批量画树了。

在类似的枝干上画不同形状和颜色的树枝,改变局部特点,就能画出好几砍树。

#8:4:f:e:5:2:8:1:b:2:c:0:7:2:3:2:a:b:3:1:b:a:f:7:1:f:9:3:e:b:d:1#

也就是说,当你发觉一些可重复的步骤,就可以把它们整合上去,建立模式;再碰到类似问题时就让计算机套用此模式,快速解决。

3、抽象:这个挺好理解,把上一步辨识下来的新模式,进行具象归纳总结,便于以后的问题解决。

就像我们做物理题时套用的公式,公式就是具象概括下来的。要想编程学得好,得具备抽象与具象之间的转换能力。

4、算法,是一步步解决问题的过程。

根据上面对问题的拆解与剖析,设计每一步的路径方式,解决整个问题。

过程中不断逮住并修正bug,最终抵达目标。

#0:8:6:4:c:f:3:3:a:9:d:0:9:8:9:f:7:4:7:6:2:7:a:1:2:4:2:f:f:6:b:1#

看,整个编程思维就是如此一个完整的闭环。

不管你学不学编程,这一套解决问题的方式都是应当在日常生活中教会儿子的。

学编程能提升语文成绩吗?

总有人说学编程有助于提升语文成绩,因为编程的核心是算法,而算法的核心是物理。C语言学习中会大量用到算法,本质是物理模型估算问题。

我并不证实编程所须要的能力好多和物理相通,但实际上并没具体数据支撑学编程能提升语文成绩。

就像我们说游泳运动员体型都挺好,手长脚长,殊不知,可能正是由于她们手长脚长才被选去游泳呢。

熙熙学了5年编程,对提升语文成绩有没帮助我不敢说(虽然他语文仍然不错),但姑娘的耐性倒是见长。

乐高机器人课每次要上三小时,前面一个小时搭建,后面两个小时写程序,运行,调试,修改,再运行,再调试。

因为没有人能一次把程序写对,写完运行会发觉这样那样的问题,这时候就须要进行“调试”。包括去出席机器人比赛也是这样的,要反复调。

#3:3:f:e:7:a:8:f:c:8:8:8:b:1:f:0:1:a:2:b:0:e:f:7:d:a:9:f:2:1:7:4#

▲这一连串的任务调了几个小时才成功

调试对于女儿来讲特别磨人,有时候调半天愣是差一点不成功。我见过他调不成功赌气摔门而出的样子,也见过他调不好偷偷怕羞的样子。

但现实不相信泪水,光吵架,光哭没有用,程序调不好,机器人就是不听话。

后来他渐渐成熟了,懂得要静下心来,仔细观察,找到问题出在哪。然后思索,该调整那个参数,一点点测试,每个参数调整多少。

在这个过程中,需要你冷静,需要你有耐心,需要你在极其挫败的情况下能够不舍弃,需要你在心情差到极点的时侯还要想办法去解决问题,这样的熬煎都走过来了,数学成绩提不提升真的不重要了。

#f:5:4:f:5:e:b:3:d:f:e:c:c:0:d:4:1:8:b:f:f:9:b:4:e:b:9:1:3:0:b:e#

学机器人编程如此久还有一个很大的收获就是,孩子会有意识的观察生活中的现象。

比如上个月我们去上海玩,在广州白云机场,看到有个扫地消毒的机器人。熙熙说它上面肯定有自带的波传感应器,感应到人或障碍物时会避免,会手动转向。同时还设定了每隔多少秒就喷一次消毒液,他和哥哥跟在这个机器人前面看了好久。

#6:8:6:1:c:0:1:5:b:7:2:9:2:2:9:3:0:b:2:4:1:a:e:3:3:1:f:a:e:2:2:6#

▲ 广州白云机场的冰清玉洁机器人

比如学搭了感应门,乘坐APM线时他就明白出站人一紧靠门就手动打开的原理。

#5:5:c:d:9:8:1:2:a:a:9:4:9:8:f:f:e:2:8:b:e:8:9:9:d:d:e:1:d:0:0:d#

再譬如我们去买东西,他发觉家乐福超市和宜家的结帐区设置就很不同。

家乐福有10个付钱台,顾客自行决定到那个台排队埋单。看你运气,如果你排的那条队你们的东西少,收银员动作麻利,结账的速率就快。

宜家则不同,也是有10个付钱台,但客人刚开始是根据先来后到的次序排在一队,轮到你时看那个付钱台空了就去哪儿,这样你不需要苦恼那个队伍快那个队伍慢,因为这些排队方法不会出现“后来者先埋单”的不合理现象。

我忘掉拍现场相片了,用一个示意图大家一看就明白。

#c:2:7:e:e:4:6:6:6:1:d:c:4:4:8:f:6:4:c:f:3:0:f:6:4:8:2:7:4:1:1:f#

什么时候统一,什么时候分流,如果女儿通过学习编程,能去思索生活中解决一个问题的最优路径是哪些的话,我认为也是比提升语文成绩更重要的能力。

学编程对升学有帮助吗?

早在2018年教育部就早已发文要求,“义务教育阶段压缩特长生招生规模,2020年前取消各种特长生招生”,而且,大部分人都是读了中学才开始学编程,很多中学连编程课都没开,更别提哪些组队参赛了。

所以,小升初这个阶段,编程特长对升学是没哪些帮助的。

那高考、高考,有没有中学招编程或机器人方向的特长生呢?

有是有的,前提是你起码得领到区级以上的奖项才有用。

最有用的是拿NOI(全国青少年信息学奥林匹克竞赛)的奖。

NOI的学习内容和少儿编程学的东西完全不一样,NOI学的是系统的计算机知识,选用的是学院教材,将学院计算机专业课程上面基础性的和思维性的,下沉到中学生阶段进行学习。

#6:a:0:f:9:4:1:b:3:c:4:1:b:1:a:f:6:d:7:9:d:3:8:1:f:4:c:d:2:8:2:9#

NOI系列活动包括:

全国青少年信息学奥林匹克联赛(NOIP)

全国青少年信息学奥林匹克竞赛(NOI)

全国青少年信息学奥林匹克竞赛冬令营(WC)

国际信息学奥林匹克中国队选拔(CTS)

进入国家队的选手将出席国际信息学奥林匹克竞赛(IOI)

如果中学阶段在NOIP取得奖项,并通过省选,参加全省赛,取得三等奖以上,高考的时侯就有机会报名各大院校的“综合评价招生”。

如果能在中学阶段获得NOI全省赛国二以上奖项的话,全国36所名牌学院的强基计划都可以报名!

在这期间如果能够通过国家集训队的选拔,成为国家集训队的球员,那么就有机会保送清华北大。

如果你有规划出国,国外不少学院、高中对IOI的奖项也是很认的。

信奥赛其实比起物理奥赛、物理化学奥赛等还算冷门,但每年全省联赛金牌也就几十个,也不容易拿的。

如果我们是为了拿奖去学编程,为了升学去学编程的话,那真是本末倒置了。学任何东西都应当是兴趣优先啊,不要让好端端的一个东西变了味,得不偿失。

几岁学编程合适?

学习路径怎么规划?

接下来谈谈编程的学习路径规划。

我们学语言都讲求习得,越中学越无痛,但学编程不是。

按照我两个父亲的经验,小学一年级开始学是没问题的,太早可能理解不了,天赋异禀的女儿除外。

熙熙是一年级开始学的,当时我给他5岁的女儿哈哈也报了一个,发现父亲搭建没问题,但一旦涉及到程序和逻辑,比如序列、循环、变量等那些具象概念就理解不了。为了不严打小孩的自信,我就把父亲的课停了。

▲ 哈哈在课上讲解自己做的“捕鼠夹”,其中的原理还说不大清楚。

编程这东西在中学阶段早一点学和晚一点学虽然没哪些损失,别信“输在起跑线”那些鬼话。等儿子抽象思维和逻辑思维发展到一定程度,他就能学得进去,学习效率反倒更高。

如果大家想学,建议1-4年级的女儿可以从可视化编程语言开始学习,比如Scratch或是机器人课程,先通过这种直观有趣的入门,了解基本的编程逻辑。

学Scratch还是机器人,看儿子的兴趣。

如果是喜欢乐高的儿子,从搭积木到机械结构、再到机器人自动化是一个比较自然的路径。

如果是天马行空喜欢摆弄设计东西的儿子,学Scratch就挺不错。

#4:7:b:0:2:4:b:6:9:3:a:5:a:7:b:4:f:1:e:7:9:9:d:6:2:b:0:3:4:8:5:f#

但须要提醒的是,Scratch可视化的课程再好玩,本质上还是比较中级的东西。Scratch课程最多学三年就差不多了。

而机器人课程呢,它搭建和编程都有涉及,属于交叉领域,但在少儿阶段,学习的内容还是集中在逻辑控制层面,并不会非常深入。

所以,5年级以上的儿子,建议开始转向纯编程语言的学习。只有使用正规的编程语言,才能学会严谨地抒发程序结构和逻辑。像我们如今学到乐高EV3的高阶拓展阶段,老师也建议我们转语言学习。

那编程语言这么多,选哪一种呢?得看儿子将来的规划。

如果想开发iPhone的App,那就学Swift;

如果想开发陌陌小程序,那就学Javascript;

如果想打大赛,那就一定要学C++,因为2022年以后信奥赛只能用C++语言编译了。

也许你会问,既然只有小学得奖才对自主招生有效,为什么中学/初中就开始学?道理很简单呀,信奥赛要经过层层选拔,这么高难度的赛事,可能要多出席几次才有机会拿奖啊。

如果以上都不喜欢,那就试试学Python吧,因为Python在各个领域都有比较广泛应用,比如3D游戏开发、云计算、操作系统、Web应用开发、人工智能里的机器学习等众多领域,Python都可以胜任。

比如下边就是一段用Python语言编撰的程序,当你输入“Love”之后,电脑才会手动复印一个爱心:

#c:2:8:e:b:1:e:e:9:1:9:b:d:4:5:3:1:4:5:a:e:5:4:0:9:1:c:0:5:a:0:b#

#c:c:5:8:d:d:e:c:e:a:0:5:3:f:f:e:7:0:6:e:e:4:c:7:9:c:1:2:a:f:e:3#

编程大赛出席那个好?

这么多比赛,参不出席好,参加那个好?

按照我了解的情况,国内赛最好出席教育部白名单内的,能步入白名单的比赛都是比较正规的。

教育部办公厅从2019年起印发《面向中小中学生的全国性大赛活动名单》,该白名单每年动态更新一次。

我撸了其中“自然科学素养类”的赛事,你们可以瞧瞧:

#e:1:4:e:a:1:9:a:3:7:6:f:4:7:d:d:a:b:b:2:9:7:f:4:a:c:b:7:0:8:f:a#

搞自动化要学计算机编程语