友情提示:380元/半年,儿童学编程,就上码丁实验室。
本阶段课程适合2年级、3年级、4年级及以上刚开始接触EV3机器人的同学们。
本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。
《EV3基础 编程篇》正式开始!
如果说硬件篇是一本更全面一些的“说明书”。
那么编程篇其实是个无底洞……并且,程序也有易有难。
所以,我们这次的编程篇,属于“基础编程”。
1
了解编程
很多人都学编程,也有很多家长让孩子去学编程。那么编程到底是个啥玩意?
我之前有发过一篇随笔,是写关于编程教育的。
说白了,我认为,现在的编程教育很多目的性并不强(不是指全部),一看就不是专门教编程的人做出来的课程产品。
更不是有青少儿课程产品设计经验的人,做出来的课程产品。
编程学习的本身是要有明确目标的。我给我的课程制定的目标,就是学习从分析到解决问题的逻辑。
既然是这个目标,那么首先我们就必须要找一种让学生可以“理解”并且使用的“工具”来进行教学。
我们看到市面上有很多青少年编程的课程一般有两种。
1、教各种编程语言。
作为一个针对刚刚接触编程的人群的课程。前者,我建议直接忽略吧,根本没有意义。为什么?
这样说好了,你去任何一个互联网或者科技类公司,问问看做开发的工程师,一般都是精通一、二种语言而已。
同时,精通哪种语言还得看他的工作需求,从工作和未来的学习中不断精通。
简单说这句话的意思就是,连学哪个语言对你有实际意义都不知道,乱学个啥?
这样的学习方式,对于初期接触,或者“非职业选手”是比较合适的。
首先,对于“编程工具”的使用,就不会有太大的问题。而更多的是学习编程的一个套过程,从而提升逻辑能力。
市面上比较流行的有“Scratch”。
这玩意是人家MIT搞出来让孩子玩的一种工具。现在好像挺火的,但有意思的是,这个软件设计的初衷,就是“引导”,不知道为什么现在变成一项“照抄”课程了?(就是老师在上面一步步操作,下面学生跟着一步步操作,最后完成,大家都很high)
另外就是各种机器人教育的编程软件了,我们EV3的Mindstorms,就属于这种软件。
其实这种图形编程也可以理解为一种编程语言——脚本语言
什么是脚本语言?
举个例子,我们可能要编写一长串代码,来做一件事情。但这串代码经常会用得到,每次都要重复,工作量很大。
所以把这一长串代码先写好,起个名字,然后到要使用的时候调取一下,就能批量处理这些代码达到某一个效果,就会很方便。
它只负责执行编好的一个功能,而不是一种编译行为。
其实脚本语言本身是有致命弱点的,因为在编写这种语言的时候,本来就可能会有错误在里面。如果工程师编译一个软件,完全用脚本语言,那么当这个软件出点问题的时候,会连错误在哪都找不到。
当然,我们初期学习,使用一下,只有好处,没有坏处。最大的好处,就是我们不必要学习一门新的“语言”,再学如何使用。可以直接上手学那些我们容易学会的部分。
2
干嘛学编程?
既然要学,我们一定要知道自己在学什么。
正如上面说的,脚本语言是适合我们这种初学者学习的。但别认为自己学了真正的编译程序。我们在学的,是一个编写程序的逻辑。
这种逻辑能力的养成,其实对我们方方面面的帮助都会很大。
不说大道理,直接举个例子。案例分析,绝非广告!
老徐的公众号“徐子曰”今天推出了一篇《中考考纲要求中学生必须掌握的古诗文详解【汇总版】》
如果我们把这篇文章理解为是一个程序。
那么点进去的每一个链接,就相当于是一个脚本程序。
而再点进去,由老徐亲笔一字一句写出来的文章,就是一长串代码,每个字词就是一个代码。
我们会发现,这样的整理和总结,对我们日常的学习帮助会非常大,因为它一下子把某一个知识板块所有的要求,全部罗列了。
这其中的逻辑目的就是:
完成教学中考这一块知识内容
那么反过来,我们日常在学校里面的学习,其实也是这一目的;看老徐的汇总资料,也是这一目的;我们出去找老师学习,也是这一目的。等等……
这些做法的目的其实是相同的,对不对?
我们会发现完成一件事情,其实会有很多的实现方式。
为什么选择了收藏这篇微信文章?因为“这个程序”,使用方便。
那么好了,我们会发现,编程的学习,可以给我们带来的能力就是。
找到目标,思考实现方法,加入需求,达到目的。
这就是一整套逻辑。
这种逻辑几乎可以应用于所有的生活场景。
比如,我们买东西,几个牌子都有这样东西,只有细微的区别,那我们怎么挑选?
学过编程的人,思考问题一般会是:
1、到底什么目的是我买这个东西最主要的动机?达不到这个目的的,排除。
2、这些细微的区别,哪个对我来说是有用的?没用的,排除。
3、其他需求加进去:比如我希望便宜一些的。那么就挑最便宜的。
最终达到买东西的目标,结束。
同理,是不是发现,这种逻辑的应用场景其实无处不在呢?
所以,青少年学习编程,并不一定是要做工程师。而是学会这种逻辑能力。
至于学哪种语言?哪种课程?其实本身不重要。
3
赤裸裸的语言表达
我们的生活中充斥了太多影响我们判断的事物了。
比如,情感关系、伦理关系等等……这些因素很多时候会左右我们的准确表达意图。
都说理科生没有“情商”,文科生没有“智商”。
这句话其实就是指,很多学理的朋友,考虑问题,很理性,经常习惯排除各种无谓的顾虑;
而文科生则偏感性,往往被一些不关键的因素纠缠而造成判断错误。
世界上应该没有任何一个纯理性或者纯感性的人。两者平衡,把理性和感性用在不同的场合,其实是很好的。
编程的学习,就是学习一种赤裸裸的语言表达。只谈“理由”,不谈“感觉”。欲练此功,请务必深思熟虑。
因为机器听不懂感觉,它需要准确的表达行为。
举个例子,有个老外向我们问路。
普通人回答,可能是:在前面第二个路口右转就到了。
而我们之后的学习内容,必须要做到的是:向前直行至第一个路口,继续直行,到达第二个路口,停止,90度右转,继续直行10米就到了。
再举个例子,爸爸炖了锅鸡汤,问你好不好吃。
普通人回答,可能是:挺好喝的,就是盐可能放多了一些。
于是爸爸心领神会,满心欢喜的去加水。
而我们之后的学习内容,必须要做到的是:咸,加水。
于是爸爸当场郁闷,灰头土脸的去加水,嘴里还嘀咕一会。。。。
没办法,学编程的时候,我们要的就是“赤裸裸”。表达出问题的本质和你的目的,不要任何废话。。。。废话多了,可能会造成别人的误会。
就拿上面哪个例子。如果按照普通人的回答,爸爸的反应也可能是:哦,那我下次注意点。于是你就达不到让他再加些水的目标了。
明白了吗?
这节课大家可以理解为是一篇序。
但我认为这篇序是非常重要的,我在跟学生交流的时候,都会先告诉他们。
学这个到底干嘛;
我们到底在学什么;
你们上课的时候要注意跟我配合的点是什么;
要思考的方向是什么;
等等……
希望大家能先理解这篇文章里面说的内容,我们下节课,将进入一个不断找问题,分析问题,理解问题的阶段性课程内容。
所以,你准备好了吗?
重点总结
了解编程学习的内容,和学习目标。找到学习的重点。