少儿编程学什么
少年儿童学习编程,就是为了学习编程的技术,将来做一名码农吗?
可以很明确的说,不是的。出于应用和专业目的的编程培训,与儿童编程教育,有本质的不同。
我们带孩子学编程,是为了:
- 激发创造力、锻炼想象力
- 培养计算思维、逻辑思维能力
- 培养专注和细心
- 养成探究解决问题的方法的能力和习惯
- 掌握信息和人工智能时代的生存工具
编程,几乎涵盖了 STEAM 教育的五大门类
图形化和代码式编程
古时候,人们是用打孔纸带编程。程序员的祖先钻木取火(大误),在长长的纸带上按一定规则打孔来输入计算机进行计算。后来,随着计算机技术的高速发展,诞生了各种语言,从底层的汇编,到呈现整个互联网世界的 JavaScript,都有一个共同的特点,它们都是由一组组的“代码”来编写的。
即使是教小朋友也是一样用代码语言。但是对年龄较小的孩子来说,读取和输入代码,都是一件困难的事情。
直到2007年,在麻省理工学院一群顶尖工程师的努力下,Scratch 横空出世。五彩缤纷的积木,简单易用的操作,舞台场景的自由这些特性,在降低了学习编程的门槛的同时,更提供了丰富的玩法,极大地挖掘和刺激孩子们的想象力和创造力。
直到现在,Scratch 仍是应用最广泛的图形化(积木式)编程教育软件。同时 Scratch 也完全开源,于是,很多直接使用或基于它二次开发的平台也处处开花比如现在网易卡搭,米乐编程,编程猫等等。
在 Scratch 之后,很多 IT 巨头也纷纷研发和改进这类积木式编程软件,比如微软的 Kodu,谷歌的Blockly,苹果的 swift playground。
无论用哪一种,其实学的东西都是一样的。都是在学习基本的编程思维、创意思维等等。而以乐高教育为代表的“机器人编程”,在猫老师看来,除了增加一些乐趣外,在动手能力、机械设计、电路等方面也有增强。
所以,猫老师的想法,上面这些,爸爸妈妈选任何一种方便接触到的就好。比如,假如有 ipad,爸爸妈妈又有兴趣陪孩子一起学习,那么 swift playground 就是个极佳的工具。它绚丽的界面,引人入胜的故事,一步步引导学习,是非常棒的体验。
对于学龄前的小朋友,MIT 提供的一个低龄版的“Scratch Jr”也可以试试。
当然,对于零基础的小朋友,学习这些都还是有一些门槛的。这方面,故事化(游戏化)的工具,相对来说更容易入手。而原生的 Scratch,则必需要在老师的引导下去完成任务(项目)。
代码,选择哪门语言
“老师,哪种语言最好?我要学”
千万不要去辩论哪种语言最好。曾经有个程序员的段子:
经理挑战程序员说,你能让五分钟内这个程序员论坛吵起来,今天就不用加班了,度周末去吧。程序员不屑地上论坛发了个帖子:“Java 是最好的语言!”,不到五分钟,论坛就炸锅了。经理无奈,只好说,你下班去吧。程序员撸起袖子回答:“不,我就算不睡觉,也要让他们这些愚蠢的家伙知道,Java 才是最好的语言”
;-)
世界上有几百种语言,猫老师只能小心翼翼地说,没有“最好”的语言,只有“更合适”的语言。
不同的时代,针对不同的应用场景,应该根据语言的特性来挑选最适合的。这也是为什么会有一个不断更新的编程语言活跃度排行榜。
但是,我们不得不承认,人工智能时代。Python 无疑是最流行、发展迅猛的语言。
python 的优势
对于学习来说,Python 最大的优势,就是简洁,易上手。它还有一堆有点,比如可靠、可移植,便于扩展(被称为“胶水”语言),而且是开源的,社区非常活跃。
python可以用来干什么呢?
首先它是一个流行的后端开发语言,可以用来搭建服务器,做数据分析、做网络爬虫(比如搜索引擎)、数据挖掘、机器学习。
另外,由于应用的广泛,社区的活跃,python 拥有大量的专业代码库,比如 tensorflow。这些库,甚至可以让你一天时间,建立一个属于你自己的简单人工智能系统。
另外,对学生来说,一个非常现实的好处是,某些省份的高考已加入了信息学科目,并采用 Python。并且,看起来这会是个趋势。
竞赛
这个话题,今后猫老师会单独介绍。这里只简单提一句,信奥似乎隐隐有取代奥数,至少是并驾齐驱的趋势。但是,我还是希望,学习编程不要太功利,否则会非常辛苦,得不偿失。毕竟无论哪门学科的奥赛,其初衷都是锻炼思维能力,挑战极限,并非要人人都是奥运冠军。
需要指出的是,信奥目前的核心语言是 C/C++,你可以到中学直接开始学习 C/C++。当然,如果在小学初中有了积木式编程或PYTHON语言学习,转到 C/C++ 的学习是比较轻松的。不过编程这门功课,入门容易精通难。毕竟,写代码让计算机说“你好”,跟编写一个会自动寻找敌人的机器狗的 AI,难度绝对是天壤之别。
结语
简单总结下:
- 5~9岁,可以尝试图形化编程,首推 Scratch(低龄的可以是 Scratch Jr),Code.org
- 8~12岁,有一定英文基础和自学能力,开始接触代码式编程。建议从易入门的 Python 开始。这里,推荐游戏式编程“极客战记”(网易卡搭),Apple Swift Playground(iPad 应用)
- 初中开始到高中阶段,以普及教育为导向,继续学习 python,或为奥赛准备,开始学习 C/C++。
信奥是为有兴趣和天分的同学准备的。并非人人要学。
好了,今天我们的普及知识就讲到这里,希望每一个大朋友小朋友,都能体会到人工智能魅力,动手编程的乐趣。