一篇文章带你了解少儿编程
一、什么是少儿编程?
编程:编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。
少儿编程指3岁至18岁的青少儿通过寓教于乐的方式学习编程语言。
编程语言是按照一定的语法规则、由表达各种意义的运算对象和运算方法构成的计算机高级语言,是一种接近于人类自然语言和数学语言的程序设计语言。
少儿编程主要学的是编程思维以及解决问题的能力,而非编程语言本身的学习及高深专业代码的编写。
少儿编程教育是STEAM教育下的一个新赛道,被称作K12赛道最后的金矿。
二、少儿编程的学习阶段划分
孩子多大学习比较合适?
按照美国CSTA的标准要求,结合中国的教育特点,建议如下:
作为思维训练,在7岁以上就可以开始接触Scratch;
2年级以前,了解基本的顺序、循环和条件的应用,并能够用可视化工具表达;
5年级以前,强化问题的分解,规划,并灵活运用基本算法解决问题。
7年级以前,可以掌握Python,Java等高级语言的基本语法和环境。
8年级以前,开始学习NOIP的算法和C/C++实现。
当然还是根据每个孩子的实际接受能力而定
这里按照循序渐进、由浅入深的原则,把少儿编程粗略划分为启蒙、体验、拓展三个阶段,分别罗列一些备选的编程教学内容。
启蒙阶段
部分家长希望孩子越早接触编程越好,但大数据调查结果显示,*佳的编程启蒙年龄是4~6岁。
这一阶段可以带领孩子开始玩一些编程的相关游戏,做一个兴趣引导和前期铺垫,主要目的在于带着孩子了解计算机基础知识、锻炼孩子的动手能力,对逻辑顺序的认知,主要培养孩子的兴趣,正确引导孩子们对电子设备的使用。
体验阶段
6~8岁孩子的逻辑思维开始慢慢形成,这个时期可以学习简单的编程知识,熟悉并学会使用程序思维的特点,如抽象、分类、分解等等,并且能够通过程序的思维使自己在生活中做事具有一定的条理性,选择一个合适的工具平台进行系统学习,以便实现自己的想法。
2003年,美国麻省理工学院(MIT)和Google公司,针对6岁以上孩子们的认知水平,联合研发了一款名为Scratch的趣味编程语言。Scratch本质上不是教孩子学会某种编程语言,而是告诉孩子利用类似程序的逻辑关系,使之获得独立解决问题的能力和逻辑思维能力。
在Scratch中,构成程序的命令和参数通过积木形状的模块来实现,使用者可以不认识英文单词,也可以不会使用键盘,直接用鼠标拖动模块到程序编辑栏就可以编写自己的故事书、动画片或者小游戏。
拓展阶段
如果希望孩子真正掌握编程语言,即便是scratch这样的图形化编程语言,也需要孩子具备较成熟的逻辑理解能力,所以不能急于求成。
可以在孩子10岁左右(大概是小学五、六年级)结合兴趣引入硬件编程(例如Arduino)或者代码编程(强烈推荐Python,如果有意参加信奥赛,可以学习c++)。
此时仅仅有兴趣是不够的,还需要孩子具备一定的毅力,老师和家长的适时鼓励和引导至关重要。
硬件编程
Arduino是一套便捷、灵活、容易上手的硬件开发平台,包括多种型号的控制电路板(Arduino板)和专用编程开发软件(Arduino IDE),它能通过各种各样的传感器来感知环境并通过控制灯光、马达和其他的装置来反馈、影响环境,可以被用来制作许多好玩实用的创意电子作品,比如电子时钟、四轴飞行器、宠物喂食机、3D打印机、电子显微镜等。
Arduino Uno电路板
Micro:bit是继Aduino之后,又一款更适合小学及以上学生学习的创客工具。Micro:bit 是一款由英国 BBC 设计的ARM架构的单片机,也被称作微型可编程计算机,主要用于青少年的编程教育。
代码编程
带领孩子掌握一门可以快速上手的高级编程语言,以达成和计算机愉快『交谈』的目的。
Python与编程教学改革
Python能够让你用更少的代码来表达想法,是人工智能和编程教学的*佳选择。Python易于学习、易于阅读、易于维护,只关心计算问题的求解,抽象了问题及解决方案并自动化问题求解,是『复杂信息系统时代』利用计算机解决问题*直观的表达工具。
美国多所高校的实际教学效果看, Python 语言适合的教学对象是需要利用计算机解决各类计算问题的群体,这恰是中小学编程教育课程的教学目的。
北京理工大学计算机学院副教授嵩天博士,认为『Python 语言是目前*接近自然语言的通用编程语言,它是程序设计课程教学改革的理想选择,是理解计算思维时代性的重要体现』。
C++与信奥赛
C++目前是信奥赛(NOI)系列活动的主要编程语言之一,到2022年将成为竞赛的编程语言。信奥赛是中小学生的编程竞赛,全称是,全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)。按竞赛级别可以分为省级联赛(NOIP,初赛每年10月,复赛每年11月)、全国竞赛(NOI,每年7、8月)和国际竞赛(IOI,每年7、8月)。
它由教育部和中国科协委托中国计算机学会统一组织,按照难度不同分为普及组、别面向初中和高中阶段的学生,获得提高组复赛一等奖的选手即可免试由大学直接录取。
需要特别注意的是,竞赛需要切实可行的计划和持之以恒的坚持,只有那些学有余力且对计算机编程具有极高兴趣的孩子,才适合参加信奥赛。
三、少儿编程课程体系
目前国内少儿编程培训课程分为两大类型:软件编程教学与硬件编程培训。
软件编程教学:基于Scratch、Python、C++等编程语言给学生搭建可视化图形编程平台和代码编程学习平台等,通过编程游戏、网页、动画、音乐等来学习编程语言。目前市面上还以Scratch作为编程语言基础的课程和产品居多,Scratch是由美国麻省理工学院设计开发,能将复杂的Python和C++等代码转化成简单的图形化的模块,通过积木式的拼搭来完成操作。而Python和C++则是要了解编程的代码和算法等基础理论知识,为学习人工智能知识建立基础。
硬件编程培训:通过机器人套件或者通过PicoBoard、Arduino等开源硬件平台构建模块式的机械部件、电子元件和传感器拼搭组合来学习编程。硬件可以作为载体来实现编程程序输出展示,通过硬件平台和软件平台的结合完成编程项目。
少儿编程学什么:
关于少儿编程的学习内容,不同的机构有不同的课程体系,经过两年的发展,“scratch-python-C++”少儿编程课程体系已经渐渐统一了这个行业。
Scratch
选择少儿编程入门语言应尽可能降低入门门槛,降低初学的挫败感,让孩子在几乎没有代码和错误挑战的情况下,专心感受程序逻辑;在所有的编程技术中,Scratch是一个划时代的技术革命,使用者不需要会英语也不需要记忆大量的编程命令,甚至不需要会使用键盘,Scratch让编程和说母语一样简单,因此它是目前*佳少儿编程入门语言。
Python
孩子学习Scratch一段时间后,图形化编程语言对他的帮助越来越小,这是因为设计精炼的工具和案例,时间久了容易限制孩子创造力的培养。此时,孩子需要学习代码编程语言,极客晨星选择python,因为python能够最大程度地帮助孩子学习编程,与人工智能无关。
C++
为什么我们要教孩子C/C++?虽然C/C++语言不是第*个高级编程语言,但是它们深刻影响了后来出现的高级开发语言,C++甚至影响着计算机开发语言的整个世界。计算机技术的每一步演变,都是技术的进步,思想的革新,对问题的解决,对局限的打破。如果一个人有机会学习两种不同年代的编程语言,就会深入地理解,这些人类历史上*聪明的人,他们的反思和对技术的认识。
另外,由于C++彻底兼容了C语言,而C语言有能力操作计算机硬件中几乎每一个资源,所以深入学习免不了要知悉计算机体系结构,这是一个有机会打开CPU外壳去看内核的技术。因此,让孩子去参加信息学奥赛,我们并不聚焦于取得奖项荣誉,更希望孩子在学习过程能够深入技术,体会算法之美,思考C/C++发明者的思想,得到人生真正宝贵的财富。
四、少儿编程培养的基本技能
儿童编程涉及到的基本技能非常丰富,不仅仅是编程本身。我们前面说,就以Scratch为例,至少有如下四个方面的基本技能方向:
1.数学方面
第*个方面就是数学。儿童编程图形化编程,第*技能方向就是数学。我们前面注意到,儿童学儿童编程,首先注意的就是一个或一些角色在舞台上的行动——这其中就包括:
坐标系:舞台是一个以中心为原点的直角坐标系,x轴正方向为右,y轴正方向为上。通过(x,y)坐标点,来控制所有角色的位置。
数据类型:*常见的是整数和小数,即实数集(在Scratch中所有实数是一个数据类型),另外还有布尔类型(真或假)、字符串类型(一段文本)。
数据的比较:也就是数学中三种基本顺序,大于、等于和小于。
算术运算:加减乘除是四种基本运算,儿童在编程过程中,常常需要在具体的场景中来运用这四种基本运算。另外还有取模运算和四舍五入。
数学函数:在编程过程中,儿童将接触到一些基本的数学函数,包括取绝对值,三角函数,对数函数以及指数函数等。可以非常直观的通过函数图像的自动喵点画图及生活应用来理解它们。
几何图形:在编程过程中,一类常见的任务就是图形绘制。这个过程中,儿童将大量接触几何图形,并从坐标系中进行图形绘制和操控。
所以这里面有着大量的数学内容,而且,这些内容都在具体的问题和任务场景中出现,既包括基本算术和几何图形知识,也包括函数以及坐标系等中学数学核心概念。通过它们在具体任务中的应用,儿童不仅操控了这个虚拟世界,而且会切身锻炼到、应用到数学知识和能力。
2.逻辑方面
编程的基础,既有数学,也有逻辑。逻辑思维能力,是儿童发展的一个基本能力,在文理各个方向都是十分重要的基础。儿童编程,可能是第一次对儿童正式的、系统的进行逻辑方面的锻炼。
逻辑变量:起点就是逻辑变量或事件的真或假。真或假是逻辑世界的两个基本值。
比较逻辑:对于用比较判断的逻辑,是儿童有直接经验并可以学习的基本逻辑判断,大于、等于、小于三种逻辑判断。
事件逻辑:其次是事件逻辑,基于事件的判断,也是儿童比较熟悉的。儿童编程用几种基本的事件模式,来生成事件判断语句。在Scratch中都是以“触碰"为核心动作来构建的。
逻辑运算:在简单的逻辑推理中,三种基本逻辑运算是最重要的基础。即与逻辑、或逻辑和非逻辑——这三种基本逻辑在儿童编程中大量的使用到。
逻辑控制:然后就是一组逻辑控制,包括条件判断、循环控制和等待。这些既是儿童编程的基本逻辑控制语句,也是逻辑思维锻炼的一个基本工具。
所以在儿童编程中,逻辑思维的训练是一个基本训练,这也是程序设计及计算机科学方向的一个基本核心特征。儿童将在大量的问题解决和任务控制中,形成系统化的有逻辑的解决方案。突出锻炼到儿童的逻辑思维能力。这种逻辑训练的密集度,不是其它活动所能比拟的。
3.设计思维
设计思维是人们提出的对未来社会有重大意义的思维方式,它是一种面向问题解决的、创新的系统思维方法。这也是属于STEM课程方向内儿童编程的优势之一。我们的儿童将学会系统的思维方法来分析、分解问题(需求),并通过综合的资源来解决问题。
基本设计:在Scratch的编程世界中,任何一个问题需求或任务,都需要在背景、角色及行为上进行思考和分解。它们是这款编程工具提供的基本视角和思维框架。
角色表达:在角色的行为表达过程中,基本的表达工具是外观图形的控制和声音音乐的控制(Scratch提供21种乐器的模拟)。一个角色的外在行为和表达,无非这些方面。
交互逻辑:在事件过程中,背景、角色、行为所组成的一个完整世界中,核心逻辑是通过它们交互来完成的。除了程序所控制的软件层面的交互之外,Scratch还提供丰富指令对计算机外部设备(如鼠标、键盘)以及外部的自动化控制元件的操作能力,这使得儿童编程的解决问题方式,扩展到了硬件层面,扩展到了生活中的自动控制层面。
所以,儿童编程是一个具有丰富资源和场景可能性的方向,以驱使儿童深入的、创新的考虑问题的解决方法,并锻炼到儿童的设计思维。随着问题的复杂度,以及儿童问题解决方案的复杂度,和方案中操控设备复杂度的提升,儿童的设计思维能力在不断提升。
4.程序设计
最后再谈一谈儿童编程对程序设计能力的提升——这是显而易见的,这是本门的功能。虽然我们前面说,就编程启蒙工具Scratch这一类而言,它的语言设计是简版的,但对儿童而言却是刚刚好。
程序设计的基本方面:程序设计和计算机语言的基本方面,包括数据与变量的概念,包括语句和模块(函数),都是程序设计的基本概念。
计算机科学的方面:另外,Scratch中还有数据结构的支持,这是计算机科学的基本核心内容之一,还有对消息机制的应用,这在计算机软件系统中大量的应用着。同样的,需要使用到流程图等设计工具。
系统运行逻辑:目前我们的社会,是一个人机协作的社会。相当多的职业和职位,都需要和计算机系统打交道。理解计算机系统运行的原理,*好*深入的方式就是理解一段程序。儿童编程每个任务,都会涉及到系统启动、运行和结束的基本过程。
工程技术研发逻辑:这既属于元认知层面的训练,同时也是STEM方向的基本特征之一。儿童在儿童编程过程中,将学会如何分析问题(需求),学会设计、研发、测试,并在应用中体会着解决问题的快乐。深刻理解在工程意义上而言解决一个真实问题的过程。
五、少儿编程有什么好处?
1、构思能力
编程是一种先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。
2、逻辑能力
编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在逻辑思维中有个词叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。
3、模式识别能力
少儿编程培训哪家好?在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1+5)×4相当于(1+5)+(1+5)+(1+5)+(1+5),其中每一个(1+5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。
4、分解问题的能力
一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。
5、调试除错能力
任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里面包含的能力很多,比如抗挫折力、观察力、专注力等等。
总之,通过学习编程所培养的能力并不只是适用于编程,而是可以在很多方面派上用场。
学习编程,能让孩子获得什么呢?
编程需要培养的是一种思维,其目的不在于结果,更注重的是培养孩子的思维过程。实际上编程是培养学生如何去分析问题、解决问题,让孩子的思维活跃起来。而且在编程过程中可能会粗心大意写错代码,在查错的过程中让孩子养成更加严谨的做事习惯。编程的意义主要体现在以下几方面:
01·培养孩子探索和创新精神
02 ·提升孩子逻辑思维能力
03·树立孩子面向对象的思想
04·解决复杂问题的能力
05·孩子发散性思维的培养
06·树立孩子计算思维模式
07·培养团队意识与协作分享
*文章内容和图片均来源于网络,如有侵权,请联系删除。