如何给孩子选择编程课

2019-06-06

来源:互联网

标签:

少儿编程

7月8号,教育圈出了一个爆炸新闻——国务院发布文件,要“举全国之力”发展人工智能,并要求全国中小学全面开设人工智能相关课程——“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”

近两年,少儿编程教育如雨后春笋般冒了出来,从Scratch、乐高机器人,到来历可疑的各种编程课程,林林总总,没有技术背景的家长,往往会被海量的信息淹没。如何在海量内容中选择出合适自己的编程课程、节约学习成本是首要解决的问题。那么今天就来跟大家聊一聊,如果想让孩子学习编程,究竟应该怎么选择。

给孩子上编程课的目的是什么

我想,对于中小学年龄段的孩子,编程课的主要目的应该是启蒙——让孩子接触编程知识,在编程学习中强化逻辑思考能力、系统思维能力以及组织协调能力,进而激发孩子的创造力,而不是现在就为了职业考虑,去掌握一门技能。

那我们看看应该如何选择编程课

对于中小学年龄段的孩子,首先不要去考虑编程语言,先明确课程设计是否做到两个前提:学习编程的过程能否做到所见即所得——输入指令,立刻能够看到效果;能否从项目式学习入手,并建立快速反馈机制,给孩子成就感。教学设计中应该满足这两个前提。

那接下来,我们就需要选择学习的体系

在这方面,我个人的建议很简单:如果你的孩子年龄偏小,还不能记下26个英文字母、没有使用过键盘,那么毫无疑问,从基础课程颗粒乐高(熟悉掌握结构搭建)、基础智能电子/木工(了解电路运作原理和机械搭建)配合scratch(PBL式教学)开始入门学习编程。

scratch的优点有很多:

首先,出身好——麻省理工学院媒体实验室开发,这保障了它的完整性和持续迭代能力;

其次,学习门槛低——不认识英文字母、不会使用键盘,也完全不构成障碍;

第三,所见即所得——整个“编程”的过程,是以鼠标拖拽的形式操作的,像在玩积木,容易引起孩子的兴趣;

第四,适合PBL式教学——通过scratch可以快速实现一些小游戏、程序的开发;

另外还一些优点,比如多语言支持、功能强大等等,据说有一些大神可以用scratch做光学程序。当然,如果希望得到更直观的反馈,后期进阶智能机器人课程/智能电子也是一个非常好的选择。

如果你的孩子年龄稍大一些,可以使用简单的文字、语句,可以使用键盘,认识26个英文字母,那么依然可以选择scratch作为编程的启蒙课程。不过,这时我更建议选择一门真正的“语言”,进行真正意义上的“编程”学习。毕竟,scratch学到底,如果想继续学习编程,也还是要接触真正的编程语言的。

入门的编程语言

我们纵观计算机语言的发展史,从机器语言到汇编语言到编程语言,可以发现一个规律,那就是编程语言的发展趋势,是使编程语言越来越贴近自然语言的过程——更容易开发、更容易维护、更简单,但同时又要能弥补自然语言在表达逻辑和关系中不规范、不标准的缺陷。

换句话说,高级语言的发展目的,是把我们的思想从编程语言的细节里解放出来,更关注实际要解决的问题。所以,孩子学习编程语言的选择,也应该符合这一规律。

从这个角度出发,对于中小学年龄段的孩子,我推荐以Python作为入门的编程语言。当然,前提是满足我上面提到的两个先决条件——所见即所得、项目式学习。

Python是目前最容易理解的编程语言,非常贴近自然语言,很少强调传统的编程语法,容易入门、上手快、效率高,所以程序员经常会自嘲说:“人生苦短,我用Python”。而且Python的代码便于阅读,它的强制缩进原则,使得代码更工整、更美观,很多老程序员对这一点反而不适应。

另外,Python可以用来做几乎所有的事情:从web开发、科学计算到机器学习、人工智能,你能想到的,几乎都可以用它来实现。而且,Python有大量的第三方功能库,在这方面没有任何一门语言可以与它相比,开发人员无需再把时间浪费在造轮子上。同时,Python也是免费的——任何人、组织、机构都可以免费使用。你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。

三年前,“谁会成为AI和大数据时代的第一开发语言”还是一个争论不休的问题,那时候,Scala、Matlab、Java、Python还各有机会,而今天,Python已经被公认是代表未来的语言,AI时代头牌语言的位置已经确立,未来的悬念仅仅是谁能坐稳第二把交椅。从2012年开始,Python在“编程语言排行榜”里的位置就是一路爬升,在今年IEEE Spectrum发布的第四届顶级编程语言交互排行榜里,Python一跃成为第一。

我们目前大学里的计算机课程,往往都是从C语言开始学习,以我过去自学Python的经验来看,我个人感觉,Python是给人设计的,C/C++更像是为机器设计的,而Java则介于两者之间。而且JS、CSS、Html体系不适合入门,整体比较杂乱,对刚刚入门的孩子来说太复杂,不如Python唯一、直接。

Python是人工智能领域中使用最广泛的编程语言,它可以无缝地与数据结构和其他常用的AI算法一起使用,而且,Python有大量的在线资源,所以学习曲线也不会特别陡峭,这也就是为什么,Python成为了美国中小学编程入门课程的首选教学语言。在我国学习Python课程会逐渐成为趋势。

让孩子学会一门代表未来的优雅的语言,在编程学习中培养兴趣、强化逻辑思维能力、系统思维能力、组织协调能力,让孩子们成为能够面对未来的人,我想,这才是一门优秀的编程课程应该提供的。