拾光共长

谈谈少儿编程

2023-06-27全文 4,15411 分钟阅读

谈少儿编程前先聊一下什么是编程?

一、编程是什么?

万物都有自己的沟通方式。

狼通过嗥叫来交流,声音的高低和持续时间都包含不同的信息。

大象通过脚步声产生的地震波来进行远距离的交流,通过不同的振动可以表示许多不同的信息,如领地声明、求偶或者警告危险。

人类则通过文字和语言来交流沟通。我们中国人通过中文来沟通,用英语和英国人、美国人交流,用俄语和俄国朋友交谈。

那和电脑、机器人怎么交流沟通呢?比如我们想让机器人帮我们做一个任务,我们该如何告诉这个机器人呢?其实电脑、机器人他们也有自己的沟通语言,那就是机器语言。

编程其实就是用机器能够识别的语言给电脑写指令,通过编写的指令来告诉电脑你希望它做什么。编写电脑指令的过程我们就叫做编程。

当我们做蛋糕时,需要按照食谱的指示,例如先把面粉、糖、鸡蛋按照一定比例混合在一起,然后把它们放入烤箱,用设定的温度烘烤一定时间。编程也是同样的道理,我们需要把步骤和指令告诉电脑,电脑才能完成我们希望它做的事情。

二、学编程是否有用?编程能干什么?

你可能会问,编程能做什么呢?其实,编程可以帮我们做很多很多的事情!你可以创建自己的游戏、设计一个网站、写文章、画画(这篇文章里的图片大部分都是通过电脑软件绘制生成的)、播放我们喜欢的音乐、帮我们做饭、扫地、搬东西,甚至可以做我们的朋友,送我们去遥远的太空。你可以通过编程打开科技世界的大门,去探索无数的可能性。

然而,电脑其实并不知道怎么做这些事情,我们需要用电脑能够理解的语言,通过编程告诉电脑怎么做这些事情。在编程的过程中,我们可以得到以下能力的锻炼:

  1. **锻炼问题分析能力(分析问题、制定规则流程)、问题分解能力、问题抽象能力(寻找事物规律,寻找共性)及问题解决能力:**编程的过程其实就是解决问题的过程,要求我们学习如何分析问题,如何将复杂的问题拆解成一个个简单的小问题,如何创造性地思考解决方案,如何发现共性特征对问题进行抽象总结,最终达成目标解决问题。

  2. **锻炼想象能力,遇到事情爱思考,提高创新思维:**编程实际是把自己的想法通过程序实现的过程,你可以不断的开阔脑洞,充分发挥自己的想象力,然后通过动手实践来验证效果。

  3. **锻炼逻辑思维能力,做事更加有逻辑:**机器是按照我们给出的指令进行执行的,所以编程是一个逻辑性很强非常严谨的事情,长时间的锻炼会促进我们的思维更加有逻辑更加缜密。

  4. **提升自信心和自主学习能力:**当我们成功地编写出一个程序,并看到按照自己的意图运行出实际效果时,会给自己带来很大成就感,增强自信心。同时,对于没有接触过的知识需要自主去查找信息资料,需要学习研究和如何解决问题,这个过程对自主学习能力的锻炼非常有帮助。

5、**做事考虑更加周全:**编写程序的过程中,我们需要提前考虑可能会遇到哪些异常情况,做好异常情况策略的制定和处理。

6、**锻炼意志力,做事更加细心,更有耐心:**编程的过程中难免会存在BUG(程序异常或者运行的结果和我们预期不符),找bug的过程是非常考验洞察力和锻炼耐力的过程。

7、**和数学、物理等其它学科知识的融合,学以致用,对课本所学的知识有更深的实用感悟:**例如愤怒的小鸟那个游戏,每次选择不同的角度飞出小鸟,空中运行的抛物线和命中的坐标是不一样的。这个过程就运用到了数学和物理知识,会对书面学习过的知识加以回顾和应用的认知。

8、**能够更好的理解程序的运行原理并能很快的为我所用:**如果你学过编程,当前你看到其它程序或者软件时,你会更容易的理解它背后本质原理,这样你能更好的根据自己的所需更快的去使用它或者改造它。

9、**团队合作能力:**编程项目有些是比较复杂的,往往需要多人的配合协作,这个过程中需要和团队的小伙伴一起沟通合作最终才能完成。

10、 **对未来职业的帮助:**我们生活在一个数字化及人工智能的时代里,掌握编程技能会为孩子打开更多的职业选择。不仅仅是软件开发人员,科学家、工程师、艺术家、作家,甚至医生和律师,都在使用编程来提高他们的工作效率。

我们以超级玛丽游戏为例来说明这个游戏的设计与编程开发过程中以上各种能力的体现:

  • 问题分析能力

设计一个游戏我们首先要明确游戏的目标和规则。超级玛丽这个游戏,需要控制玛丽通过一系列障碍和敌人,收集金币,顺利通过每个关卡最终救出公主。在此过程中,会有各种挑战和困难,如怎样设计敌人的行为模式以增加游戏的挑战性,怎样设置金币和道具以激励玩家,怎样设计关卡以保持玩家的兴趣等。

  • 问题分解能力

在目标和规则分析及制定清楚之后,接下来就是如何把这么一个复杂的游戏问题,将它分解成一系列小的、独立的任务。每一个小任务都可以单独解决,然后再将它们组合起来,共同完成整个游戏。

例如,你可能需要分别解决以下的子问题:

  • 如何控制玛丽的移动、跳跃,下落?

  • 如何设计并显示各种游戏物体(如敌人,硬币,障碍物)?

  • 如何检测和处理玛丽与其他物体的碰撞?

  • 如何设计和实现游戏的得分系统?

  • 如何设计游戏的各个关卡?

  • 问题抽象能力

在超级玛丽游戏中,尽管每个关卡的布局可能不同,但许多任务(如跳跃、躲避敌人、收集金币等)都有共同的基本模式。我们可以将这些基本模式抽象出来,看作是游戏的基本操作。例如,我们可以将"跳跃"抽象为一个基本操作,不管在什么情况下,只要我们按下跳跃按钮,玛丽就会跳起来。

  • 创新思维

超级玛丽之所以成功,很大程度上是因为它的许多创新的想法设计,比如用蘑菇来让玛丽变大,用花朵来让玛丽能够发射火球。这些创新的设计不仅增加了游戏的趣味性,也使得游戏充满了惊喜和挑战。

  • 问题解决能力

以上将一个复杂的问题通过分析、分解、抽象最终通过一个个小任务组合在一起,这整个从思考到通过编程开发实现的过程就是问题的解决过程。

我相信如果你自己从最开始的游戏设计,到最终自己开发出来这个游戏,这整个过程你会得到很大思维上的训练和提升。这些思维能力其实并不仅限于在编程领域,其实这些思维能力适用于我们日常生活中的许多方面。

三、少儿是否有必要学习编程?

上面说了这么多编程的好处,那是不是就应该让孩子去学编程呢?先别冲动,还是要根据孩子的个人兴趣理性对待。如果孩子对这方面有兴趣,又有时间和精力,那不妨试试;如果孩子没兴趣,我觉得也不要强求,这也不是必须的技能,学学其它的也挺好。还是要因人而异,从孩子自身的兴趣出发

有关少儿学习编程常见的几个误区:

1、有人说学习编程可以通过参加信息学奥赛获奖保送清华北大?

这句话只对极少学习成绩特别优秀的学生是有可能的,对大部分的学生基本是没用的。通过信息学奥赛获奖保送清北,那只是凤毛麟角。不要盲目被这句话给带偏了。我个人认为少儿学习编程更重要的是思维的锻炼,兴趣的培养,而不是为了去考级为了升学而学习,否则这个过会把本来轻松快乐的事情变成一件有压力痛苦的事情。

2、学编程没啥用,我又不打算让孩子未来当程序员

这个问题就好比,我又不打算让孩子未来当运动员,所以日常锻炼运动没啥用一样。运动本身对于大部分人来说是为了强身健体,而不是为了未来成为运动员。

同理,学习编程对于大部分孩子来说是为了锻炼逻辑思维,培养兴趣,通过程序来解决实际生活中遇到的问题,而不是为了未来了让他们都成为程序员。

上面其实已经具体举例说明了,编程的思维其实并不只是用于在和机器打交道的场景中才有用,其实这些思维能力在日常生活和工作中都会有所体现和应用。一个人的问题分析能力,复杂问题的分解能力,寻找事物规律透过表象归纳抽象能力,创新思考能力等等都是日常遇到问题解决问题需要用到的通用能力。

**学编程并不等于要去互联网或者it公司做程序员。**政府、国防、电信、电力、金融、银行、汽车、能源、水利、教育、科研机构等领域,这些都对懂编程的计算机类专业人才都有较大的需求。

3、学习编程能提升数学、物理学习成绩?

我觉得这句话顺序颠倒了,应该是学好数学、物理对学习编程有帮助。如果你学校里数学物理学的一团糟,想通过学习编程来快速提升数学物理成绩,这有点不切实际!编程里是会用到其它学科知识,可以让知识融会贯通,在编程实践中对书本的知识有更深入的应用理解。基础知识还是要在学校里学好才是正道,不要希望通过编程来把学校里学不好的课程通过编程就学好了,这可能性不太大。

四、几岁开始学合适?

我是两个孩子的爸爸,我儿子目前上2年级,我偶尔也会教他一些编程的知识(主要是scratch图形化编程)。我根据他成长的情况及学校里学习到的知识,我个人认为小孩子开始学习编程比较适合的年龄是8岁左右,2年级下学期或者3年级开始。有些培训机构或者老师说幼儿园就可以开始学了,我觉得有点揠苗助长了(如果是天才那是例外)。

为什么我认为3年级开始学比较合适,理由有以下几点:

(1)编程里面有一些基本的运算,基本上要学过加减乘除基本运算之后才能更好的完成作品,2年级上学期学习乘法,下学期才开始学习除法。

(2)编程对于一些基本的逻辑判断、循环、坐标的理解等需要一定的逻辑思维能力,太小的孩子理解起来可能会比较吃力,8岁左右的孩子基本上已经有完整的逻辑理解能力了。

五、少儿编程入门语言的选择

前面说过编程语言有很多种,例如:Scratch(图形化编程)、Python、Java、C、C++等。就好比人类用中文、英文、法文来沟通一样,应该选择哪个作为少儿编程入门比较合适呢?

我个人建议,少儿如果刚开始学习编程,首选Scratch,为什么呢?

Scratch是麻省理工大学专门为儿童开发的一款图形化编程工具。在Scratch中,我们不需要写复杂的代码,而是通过拖拽一些积木块来完成编程,特别适合少儿编程入门。它通过直观的图形化编程界面,使得小朋友们可以更容易理解编程的基本概念,比如循环,条件语句,变量等。另外,通过使用 Scratch 创作游戏,动画等,可以极大的激发孩子们对编程的兴趣,帮助他们在创造和学习中提高思考和解决问题的能力。

而 Python,C++,Java 等文本型编程语言,虽然功能更强大,也是许多专业的程序员所使用的语言,但是它们的学习曲线对于少儿来说可能会比较陡峭。直接学习这些语言可能会让孩子们感到困难和挫败,甚至可能导致他们对编程失去兴趣。

我看网上有很多人建议孩子一上来就学C++,直奔信息学奥赛去了,我觉得有点太急于求成了,这种语言学习难度较大,可能让很多孩子一上来就觉得比较枯燥失去兴趣。(我工作的前7年都是用C/C++写程序工作的,我至今也没有觉得我把C++学通透了,我想对于大部分的孩子来说也并不是一件很容易的事情)

其实你用什么语言并不是最关键的,最关键的是你知道要表达什么?如何表达?也即最关键的还是这个思考的过程最重要。编程语言就是一种工具,用任何一种语言都可以实现你要表达的内容。

所以,对于大多数孩子来说,建议先从 Scratch 开始学习,等他们对编程有了基本的理解和兴趣后,再逐步过渡到 Python,C++,Java 等更高级的编程语言。同时,我们也要强调,学习任何技能,都需要时间和耐心,不要急于求成,让孩子们享受学习和创造的过程。

最后,可能有人会问,Scratch是通过拖拽一些积木块来完成编程的,是不是只能完成比较简单小儿科的作品?

其实在最开始我刚接触和了解Scratch的时候我也会有这种疑问,直到后面我深入了解之后,看到网上各种用Scratch制作的优秀作品,我对Scratch这个工具的强大还是很震撼的。文章的最后我放一些用Scratch制作出来的作品,大家看完之后心里应该就有答案了!

评论