线下实训
HOME
线下实训
正文内容
孩子学编程先学什么 孩子进行编程教育时,分3个阶段一步步学习,才真正有大收获
发布时间 : 2024-10-06
作者 : 小编
访问数量 : 23
扫码分享至微信

孩子进行编程教育时,分3个阶段一步步学习,才真正有大收获

#头条创作挑战赛#

文|凝妈悟语

少儿编程教育深入人心,受到广泛追捧,但是孩子到底怎么学编程,才能真正有收获呢?很多家长会一头雾水。

儿子的一个同学到初二的时候才想学编程,但是因为前期没有基础,在课上完全听不懂,最后还是放弃了,他感到很遗憾。

儿子是从小学阶段开始学习编程,认识了很多小伙伴。回顾他们的编程教育经历,可以分为三个阶段,一步步学习,逐步进阶,最终获得比较好的收获。

他们大都是从小学一直学到高中,其中有一个同学获得信息学奥赛金牌,入选国家集训队,获得清华北大保送资格。其他同学虽然没有获得金牌,但是高考时也都考入非常理想的大学。还有一部分没有参加高考,成绩也都不错。

第一阶段:模块化编程

学习编程需要有一定的背景知识,不能一上来就开始学复杂的C语言,孩子就像听天书一样,没有任何兴趣,完全浪费时间。

孩子可以从一些简单的编程学起,由易到难一点点进步。打好基础之后,再学复杂内容就能够轻松理解,一点点进步。

如果从小学低年级开始学编程,可以先学习以乐高EV3机器人等实体为依托的编程。以积木为载体,编程模块化,既符合孩子的兴趣,又很容易上手,孩子有动力继续学习。

编程形式看上去很简单,但也使用各种数学计算、物理模型实现自己的目标。比如计算速度

计算角度、计算宽度等等。孩子有了基本的编程思路之后,就为以后复杂的编程学习打好基础。

第二阶段:C++语言编程

孩子到了小学高年级,一般是5年级,已经积累了一定的数学、科学知识,思维能力也增强了,就可以尝试学习C++语言。

反过来说,要想学编程,孩子要先学好数学,所以,在平时要多关注孩子的数学成绩,除了课本知识外,还要进行一些拓展学习,让孩子的思路更开阔一些。

学习编程比较枯燥,不能只听老师灌输,要积极思考,提出自己的疑问。哪怕是问的问题很幼稚,也要不停追问。在不断求解中,才能真正学懂编程,为以后应用打好基础。

第三阶段:编程相关竞赛

学习C++语言之后,可以参加信息学竞赛练练手,看看学习效果如何。有很多孩子从小学5年级就开始参加竞赛,成绩还是很不错的,既锻炼了能力又增强了信心。

如果竞赛成绩很好,可以坚持参加竞赛,如果取得比较好的成绩,对升学有帮助。比如可以以科技特长生身份进入重点高中,可以通过综合评价、强基计划、保送等形式进入很好的大学。

儿子的伙伴是从初一参加信息学奥赛,初二获一等奖,高一入选省队、高二入选国家队,高考都不用参加了。

想让孩子进行编程教育,需要从小培养兴趣,建议要选择理想的培训机构学习。选择培训机构不能盲目,建议您进行多方比较,仔细了解。

我是@凝妈悟语

两男孩妈妈,10多年育儿经验

陪孩子阅读、英语启蒙、科学启蒙

分享育儿感悟、落地育儿干货

欢迎关注,育儿路上一起前行

当孩子学编程时他们在学什么

图片来源:unsplash

关于编程,市面上的各种少儿编程课,总是要先制造焦虑:“AI 即将大范围代替人类工作啦,你要是不懂得和计算机打交道的语言,怎么在未来世界立足呢?”

爸爸妈妈们一听焦虑了,赶紧给孩子报班。各种图形化编程、机器人编程,孩子们玩得很开心,家长看着也挺满意。

但也有善反思的家长会发现:好多编程课,和教孩子画出赏心悦目图画的美术课一个路数,关键是要有漂亮的结果能让家长发朋友圈,孩子到底从中学到了什么却很难说清楚,教育机构鼓吹的“编程思维”又是怎么一回事也很难体会出来。

一方面,我觉得教育机构所谓的“编程思维”没啥稀奇的,甚至根本不需要上编程课,在生活中就可以学到;另一方面,我写了二十多年程序、深感编程对我的思维有很多积极影响,也觉得孩子有机会学编程实在是一件很好的事。所以今天,我想和大家分享下家长在不焦虑不盲从的同时,如何能让孩子从少儿编程中汲取养分和快乐。

今天的分享会分三部分:

首先是我从教女儿,以及女儿学校二十来个孩子 Scratch 编程课的体验中,观察到的:孩子们从编程中学到了什么?

然后是我研究了部分商业机构的课程,对此的思考:糟糕的编程课是什么样的?

最后是我的一些建议:孩子到底要不要学编程、怎么学?

我的观察:孩子可以从编程中学到什么

先来说说孩子们从编程中可以学到什么。多数编程教育机构的宣传,都是说“编程思维”。我猜原因有两个:一是这个词比较容易唬住不懂编程的家长,二是它比较容易教,练几次“如果...那么...否则..."/"重复执行...直到..."等条件控制语句,就可以宣称孩子掌握了编程思维了。

但其实,孩子能从编程中提升的技能,远在编程之外。

一、探索的习惯

首先,是探索的习惯。

可能很多家长提到编程的第一反应是:我不会哎,要不要找老师来教呢?但请看看这些学编程的工具:

这是 code.org 里”我的世界“主题的编程一小时。把中央的代码积木拖动到右边工作区,拼接成完整指令,指挥 Steve 完成一关又一关的任务。

这是 lightbot游戏。简单的几个指令,指挥灯泡小人行走及点亮灯泡。看着简单,但很多编程概念都包含在内了,甚至连重载(overloading)都有。

这是和 lightbot 同一家公司出品的另一款编程游戏 spritebox (http://spritebox.com/ )内容更复杂一些。但对孩子来说,跟随着一步步引导,从开始最简单的执行一句命令,到后面相当复杂的多层循环和条件判断的嵌套,就像玩游戏一样,一关关闯下来就都会了。

如果下次你再听到有人把“如果...那么..."/"重复执行...直到..."当成编程思维推销课程的时候,请记住:这些内容,靠上面几个游戏,让孩子自己摸索,一定都能学会。

让我们再来看 Scratch。

Scratch 的界面要复杂不少,功能也多得多。其实 Scratch 自带非常好的教程,点击菜单中的“提示”就能看到,就是下图中右侧的内容。很可惜教程是英文版的,所以孩子也许还是需要一点大人的帮助。

我之前给孩子们上 Scratch 课,发现孩子们最喜欢做的事情,就是东改改西换换,换用一些别的代码块或者设置一些超大/超小的数字看效果。

比如我们做一个游戏,其中星星出现的时候要闪烁三下好让玩家留意到,我给出的程序和效果是这样的:

孩子们会做什么呢?他们会把大小变化设成1或1000,会把等待时间设成 100 秒或 0.01 秒,还会把重复执行设置成几十亿次。所以他们会做出这样的代码:

小朋友们觉得这样的极速闪烁非常好玩,一群孩子都笑翻了,纷纷跑到自己的电脑上去尝试。有敏锐的孩子会问为什么能同时看到大小两个星星,知识面广的孩子就回答说是视觉残留。

类似的场景,在课堂上还有很多。往往在孩子的一个“咦,这是什么,我来试试看”的疑问背后,可以引发出一长串的问题:为什么会这样呢?和你的预期一致吗?如果换成那个又会是什么样的效果呢?这个功能可以用来做什么?

Scratch是一个再安全不过的环境,最坏情况无非就是把程序重启重新开始,所以可以放心让孩子大胆尝试。美妙的是,每拼接一块积木,都可以点击运行马上看到效果,这反馈-修正的过程是非常迅速的,所以孩子能很顺畅的自行探索。

所以,我想表达的第一点就是:lightbot 等编程游戏,和 Scratch 图形化编程工具,都是再好不过的让孩子尽情探索的玩具。“我来试试看”的口头禅,是这些玩具能带给孩子的最宝贵的财富。

二、通过切身的体验学数学

计算机界的最高奖项是图灵奖,2003年的图灵奖得主 Alan Kay 有一个非常棒的 TED 演讲 A powerful idea about ideas。在这个演讲中,你可以看到 9 岁的普通孩子孩子通过玩 OLPC 电脑上的软件,得出了“加速度”的概念。

Scratch 是 MIT 的 Meida Lab 创造的,在 Scratch 之前 Media Lab 还有 Logo 语言。你知道吗, Papert 发明 Logo 语言,其实并不是为了教孩子编程,而是为了给孩子一种适合他们的学习方法,用电脑来帮助孩子更好的学习。

Papert 在他的 Mind-Storms 这本书的序言 The Gears of My Childhood 中写到,他幼年时喜欢玩各种各样的齿轮,后来学数学轻而易举,他才发现玩齿轮的体验帮了他好大的忙,例如他会把二元一次方程想象成玩两个齿轮求齿的数量。他在书中是这么说的:

Logo 和 Scratch,其实是虚拟世界的齿轮,能帮助孩子们建构式的学习很丰富的数学知识。

举几个例子:

指挥小猫向前向后走,把星星变大再变小,这些代码可以教孩子正负数的概念

等待 1/0.5/0.25 秒,从中可以学习时间的概念,分数和小数的概念

Scratch里角色的颜色变化一共分200级,把颜色设为210其实等同于把颜色设为10,类似的还有造型变化、亮度变化等等,不知不觉的,孩子就掌握了整除、余数、取模等等。

我最喜欢带孩子玩的是画图形。下面这张图是我给孩子们的第一堂用代码画画课的练习纸。指挥画笔重复执行往前走、旋转一定角度的命令,画出各种各样的图形。孩子们从中学到了什么?笛卡尔坐标系,角度,旋转一周是360度,3*120=4*90=6*60……才一年级的孩子乘法都没学呢,这些对他们来说却很容易理解他们也很乐意去学。

这就是我想说的第二点:通过编程,孩子们能获得很多关于数学的切身的体验,而这些经验有助于今后他们更轻松的学习数学。关于这一点,Tony Yet 写过一篇阐述 Papert 教育理念的文章蛮值得一读的,推荐给大家。

三、工程化解决问题的能力

孩子们在依葫芦画瓢的开发了几个游戏后,总会想实现自己的创意,创作出自己的游戏。

这时候,你就可以引导他描述问题,把大问题一点点拆解成小任务,设计一条分步骤实现任务的路径,然后一点点的去实现它,不断调试根据结果一点点调整直到最终完成。

编程天然就是 PBL 式学习,在这个过程中,孩子的模块化思考、抽象思考、简化问题、寻找替代方案等等能力,都会得到锻炼。这种方式和别的物理世界的项目例如做木工活儿比起来,成本低廉还极其安全,所以不妨多练练。

不过这些能力对低年级的孩子来说还太难了一些,可以让他们先从看别人的项目、理解别人的代码开始做起。我的公众号里“读码探秘”栏目就是在做这方面的试验。

四、逻辑,算法

最后来讲讲逻辑与算法。编程,把我们很多思考问题、执行任务的过程显性的表示了出来。最基础的,有执行中的顺序、条件、循环,逻辑上的与,或,非。让思维变得可见,本身就已经对思考能力会有促进。

算法中有些非常有趣的东西。举一个最简单的例子:这是我带着三个孩子做平面版的“我的世界”,下面这一排是装备栏,最左边的那格是玩家手里当前的装备,是一把铲子。那一课的任务是要点击装备栏中任意一格,就把当前装备和这一格的内容交换。

一开始孩子们写的代码很简单:把a设成b,再把b设成a,不就行了吗

运行下一看,怎么两个都变成铲子了?冥思苦想想不出来。我用实物演示:左手一把尺子右手一支笔,要交换左右手的内容,手又太小无法同时握住两样,就必须先把一样东西临时放到桌上。这桌子,就是一个临时变量c。

一点点引导,他们终于得出了下面这个正确方式,学会了一个新算法:交换a和b的数值,需要一个临时变量c。把c设成a,再把a设成b,最后把b设成c,这样才行。我深深记得孩子们当时眼睛被点亮的样子。

这还只是最简单的算法。计算机世界有大量极其有趣的内容,都是很值得去了解的。

但为什么我会把逻辑、算法排在最后一位呢?因为去学这些算法、进行这样的思维训练,不一定需要通过编程。我们的生活中处处都有素材。

我女儿丢三落四总是忘了带课本和作业回家,我让她画了一张流程图,用到了顺序执行、if else和 foreach。

我们可以用回溯法来走迷宫,用二分法来查字典,有了决策树连晚上吃什么的争论都会少很多。

有一定的编程训练,有助于养成这样的习惯:对生活中的万事万物都问一句“它背后的算法是什么、有没有更好的实现方法”。

如果有相关计算机知识,也能更好的对生活中常见的事物给出具体的、有意思的解释,例如:商品的条形码是怎么回事?为什么会是三个角是黑块?为什么中间挡住了一块还是能够扫码扫得出来?

但这些能力提升的关键,在于思考,而不在于具体的编程。这个不插电编程的网站上有非常丰富的资源 , 国内有清华大学的终身学习实验室在做类似的尝试,我也正在设计一门三阶段的不插电编程教程,后续会在公众号放出。

小结一下,以上是第一部分,我的观察——孩子们可以从编程中学到什么:

最重要的,养成探索的习惯。

其次,是通过编程可以建构式的学习很多别的领域特别是数学的知识

第三,是培养工程化解决问题的能力

最后,是用编程语言让思维可见,学习逻辑与算法

我的思考:糟糕的编程课是怎样的?

有了上面这些观察,我们就可以推导出一门编程课是好还是坏。我要特别说一说糟糕的编程课是怎样的,期望能给正在为孩子挑选编程课的家长一些帮助。

一、不求理解、不能让孩子做到举一反三的

商业机构的通病:买单的是家长,所以课程首先要让家长看到成果,至于孩子们学到了什么,尤其是那些隐性能力的提升,反而是次要的了。所以市面上太多的课,都是这样的:

跟着我做哦

第一步

第二步

第三步

完成啦, OH Yeah!

孩子只是照着做,一点都没理解。但家长不知道呀,看见孩子做出了漂亮的作品,觉得好厉害好高兴。

有些家长可能会觉得,不光是我,孩子也高兴,那还不够吗?

有时候还真不能光以孩子高不高兴来做判断。我之前教过个孩子,每次一上课就来偷我的答案纸,偷去照着把程序全拼好,YEAH 任务完成啦,他就特有成就感。其实变换下题目问他,一点没理解,还是啥都不会。短期来看这样的成就感是可以提升兴趣的,但长期来说实在没多大好处。

二、花哨,只求酷炫效果,买椟还珠的

类似的,那些很花哨、只求酷炫效果的,也不是好的编程课。很多机器人课程是重灾区。有些机器人课产品,提供了大量复杂组件和预先编好程序的模块,只是为了能够让孩子方便的搭建出某些特定功能的机器人。它至多只涉及到一点点逻辑和算法,相关的原理以及在生活中别的应用场景则完全不涉及。孩子们上完课,也只是会用这一种玩具搭这一种机器人而已。

三、不能让孩子自主探索和创造的

举个国内编程课程的作业的例子:让角色从A走到B,说一句“哎呀”,然后倒下。请完成这一段动画。

作为对比,大家可以看一下scratch 官网提供的教材,第一单元的作业:给定10种积木块,请以任意方式使用它们,并把你的成果展示给大家看。

我们可以到网站欣赏下孩子们的作品,五花八门什么都有:

后者完全开放,前者却是有标准答案的填空题。孰优孰劣相信大家都能判断。

四、不符合孩子发展规律、超出孩子能力范围的

给大家说几个反例:

例子一. 我在最初给孩子们上课时,用了英文版界面,想着孩子们在学编程的同时还能学英语,多好呀。可是孩子需要花很多额外的精力在记忆英语单词上,自主探索的行为也少了很多。换成中文后就顺畅多了。

例子二:我的朋友,试图直接教一年级的女儿 python 和 java script,碰壁,最终还是回到 Scratch。因为孩子打字速度慢,完成代码需要的时间太长了,注意力根本不可能集中那么久。

成人们总急不可待的希望孩子们立马变得很厉害。但是对孩子来说,学习的兴趣远比某一个时刻学到的知识要更有价值。如果超前、用不合适的方法教孩子一些内容,孩子接受不了,反而对学习编程失去了兴趣,那就得不偿失了。这方面我自己的编程课也常犯错,还是需要不断提醒自己。

总结一下第二部分:我的思考——糟糕的编程课是怎样的:

不求理解、不能让孩子做到举一反三的

花哨,只求酷炫效果的

不能让孩子自主探索和创造的

不符合孩子发展规律、超出孩子能力范围的

我的建议:要不要让孩子学编程、怎么学?

最后以几条建议作为本次分享的总结

学编程远不只是学编程思维,编程思维也远不只是从编程中学。孩子们可以通过编程学数学,也可以在日常生活中也可以练编程思维。当我们说编程时,视角可以更广一些。

如果你不介意让孩子玩电子产品,那么ipad上装一个 lightbot 或 spritebox,电脑上装个 scratch,陪孩子熟悉后让孩子自己摸索,就足够好了。

如果孩子实在兴趣浓厚想让你为TA报个班,请仔细考察该机构是否存在我上面说的四个问题。

如果孩子极浓的兴趣有极好的编程天赋,那今天的分享并不适合,另有机会再和大家交流这个话题。

本文转自微信公众号“南瓜博士”,作者Elfe。文章为作者独立观点,不代表芥末堆立场。

相关问答

编程 入门 先学什么 ?

1刚开始我自学电脑编程的时候,接触的是传统方法的编程方法,是从c语言学起,学一段时间后发现不少一般的繁琐,记忆量特别大,于是我就放弃了,总结起来说,从...1...

学习计算机 编程 ,这些课程按照什么顺序学习?

你好,就计算机编程而言,只需要学习:1、C语言2、数据结构3、数据库原理4、另外一门语言(例如VB、C#、Java、C++等等,因为C语言主要是培养你的编程感觉、...

学编程先学什么 比较好?

那本期视频主要跟大家分享一下,自学编程要先学习哪一个语言比较好?我个人认为是先学习c++或者是c,然后先把两个语言吃透,然后有助于学习Java。软件编程基本上...

学编程先学什么 ?如何学习编程?

有很多对编程感兴趣的朋友想要学习编程,自学编程先学什么?1.目前的编程语言有很多,不过自学的话建议还是从C语言学起,因为C语音相对其他编程语言来说,是比...有...

新手 学编程 应该 先学什么 ?

零基础是能学python的,很多编程大神入门之前都选择先学习Python,所以想学就大胆去学吧,没学之前谁不是零基础,就算是现在才下定决心学也不怕,学习Python什么...

小白 学编程 从什么开始?

第一,先从基础的语言C语言学起,网上有很多免费的视频教程,另外再买一本相关的书,边学边练,做好笔记,跟着老师学习,先搭建好学习环境在电脑勤以练习就可...看...

机器人和 编程先学 哪个?

阶段学机器人还是学编程?如果孩子时间充裕,机器人+编程,两个方向一起学当然更好,但现实情况是,孩子年龄越大,时间越少,基本就被其他挤占了。如果二者之间...

计算机自学课程顺序?

如果您是计算机自学初学者,可以按照以下顺序来学习:1.计算机基础知识:包括操作系统、计算机网络、数据结构和算法等;2.编程语言基础:选择一门流行的编程...

学习 编程 入门应该 先学什么 ?

个人推荐入门C语言或者python:C语言语法简单,有良好的逻辑抽象,入门的话还是先面向过程吧,不要刚学就面向对象云里雾里的,如果是要更全面、深入的学习语言...

中学生 学编程 入门 先学什么 ?

学编程自然要先选一门编程语言当入口。语言都是工具,选工具前你要明确自己做什么东西,然后找什么语言适合做。例如后端编程学Java、Python;做前端应用学HTML5...

 苹果路由器  鲁尼 玛拉 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部