有家长问:“编程到底学什么?学习制作动画、游戏?培养逻辑思维能力?掌握编程技能?”
那么,今天就和大家详细聊聊这个问题吧~
关于编程,你到底学到了什么?
首先我们先来了解一下什么是编程~
事实上,编程就是与计算机对话,使用计算机“理解”的语言,告诉它我们想让它做什么。
那么,与计算机交谈和与人交谈有什么区别呢?
例如,如果我想喝咖啡,我可以对孩子说:“儿子,给我倒杯咖啡吧!” 那么如果想让计算机理解这句话我该怎么说呢?
我必须首先告诉它哪个是“杯子”,哪个是“咖啡”,以及“倒”是什么意思,然后告诉它如何倒。 比如,先左转75度,向前走两米,左臂下垂50度……
找到了? 人类本质上是感性的、随意的、没有纪律的,但计算机却不是。
计算机,这个新时代的高科技“掠食者”,是理性的、严谨的、严格的。 我们和它沟通的时候,每一步都必须给出准确的指示,它会严格按照你说的去做,绝对不会做任何事情。 任性或者在不注意的时候悄悄偷懒。 (很听话,从不偷懒的好孩子)
那么,如果我们想让计算机听懂我们所说的话,我们也必须让自己变得理性、严谨、善于分析,否则谈话的结果就会完全“偏离”我们的想法。
当孩子尝试从计算机的角度思考问题时,他们也在学习和锻炼所谓的编程思维。
因此,学习编程不仅仅是掌握一项技能、培养兴趣,更重要的是掌握一整套高效解决问题的思维模式。
那么什么是编程思维呢?
相信很多家长朋友都听过“编程思维”这个词,但都有一种“它就站在你面前,但你却不熟悉”的感觉。
编程思维就是在编程中使用的思维。 如果你学习了编程,你就会掌握编程思维。 如果你学了数学,你就会掌握数学思维。 如果你学艺术,你就会掌握它......(我相信你已经可以回答这个问题了)
事实上,编程思维是一种“理解问题——寻找路径”的高效思维过程。 它由四个步骤组成:分解、模式识别、抽象和算法。
(1)分解——锻炼孩子拆解复杂问题的能力
分解是将一个大的、复杂的问题分解成更小的步骤,这些步骤更可执行、更容易理解。
比如,这位年轻的学生想做一个关于飞机战斗的小游戏,所以他自己写了项目计划,并一步步拆解了他想要实现的每个功能。
没想到这么小年纪,“骨头也能这么神奇”。 结构清晰,真是连大人都眼睛一亮啊~
有的同学利用我们之前提到的思维导图来分解逻辑步骤,一点一点理清自己的想法。 (参考:)
我们平常看起来是一个很简单的效果,但是要实现却需要拆解相当多的步骤! 在编程的过程中,不断地训练孩子们对复杂巨大的问题进行拆解和合理化。
别小看这个练习,它是解决问题的基础。 只有分解清楚了,接下来的实现才有“可能”。
也会给你的学习带来很大的帮助! 通常体现在复习题或者读题的能力上。 一旦你的分解能力强了,以后解决数学问题、阅读理解、写作或者制定计划都会很容易。
例如,当面对具有挑战性的数学问题时,具有良好分解能力的孩子会列出解决问题的清晰步骤。 他们会一步步解决问题。 哪怕最后不一定能彻底解决,但他们也能清楚的知道自己的进展。 。
分解能力差的孩子就没那么幸运了。 当遇到问题时,他们的大脑会变得一团糟,不知道从哪里开始。 但如果他们不知道如何做,他们就不能将问题留空。 他们只能写自己想到的东西……
(2)模式识别——发现并整合“重复模式”的能力
“模式识别”简单来说就是找到相似的模式并有效地解决分割问题。 我们在经验库中调用以前类似问题的解决方案,并应用它们来解决它们。 你认识到的模式越多,解决问题的速度就越快。
例如,现在我们需要画100只猫,你会怎么做? 找到100只猫并一只一只地复制? 或者找到猫的“模式”?
如果是后者,您可能想知道猫有头发、眼睛、尾巴和四条腿。 然后,根据这个“模式”,你就可以“批量”画猫了——不用每次画新的动物,只需要改变局部特征:黄白条纹的猫或者黑猫、有条纹的猫。长尾巴猫或短尾巴猫。
你有没有感觉自己的效率瞬间飙升?
在编程的过程中,孩子们一直在做这样的训练,发现一些可重复的单元,将它们整合起来,让计算机重复它们。
很多孩子解决问题很快,正是因为他们善于发现和总结“可重用的规则”。 他们脑子里有一个“方法库”,里面有各种规则。 遇到类似情况时,可以直接调用,无需重复。 从头到尾思考一遍,不仅可以节省时间,还可以避免错误。
(3)抽象性——人们深度学习的能力
抽象,简单地说,就是找到问题的本质,过滤掉其他不相关的因素。
这实在是很难解释。 让我们看一个例子。 当我们看到这个房子时,我们看到的是:
豪华别墅
但在建筑师眼中,它可能是这样的:
建筑师可以通过自己的经验抽象出房子的具体结构。
懂编程的孩子也有这个能力。 他们以前只是玩游戏,但学习编程后,他们能看透游戏的表象,看到背后实现的步骤,明白游戏的本质,突然觉得“玩游戏就是玩傻”。 你可以通过创造游戏来学习知识。”
实现从“游戏玩家”到“游戏发明家”的华丽蜕变!
正如电影《教父》中所说:“半秒能看清事物本质的人,和一辈子都看不清事物本质的人,注定有着完全不同的命运。”
(4)算法——高效解决问题的能力
算法是解决问题的一种方法。 基于之前对问题的一系列理解,设计了一个逐步的解决路径来解决整个问题。
在实际解决问题的过程中,最关键的两个能力是“逻辑思维”和“查错纠错”。
逻辑思维能力
逻辑思维中有一个非常重要的原则叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思是“互斥且完全穷举”,即“不重复、不遗漏”。
右图符合MECE原则,左图不符合
在编程算法中,处处需要考虑MECE原则。 解决数学问题时也适用同样的原则 - 我们需要确保答案中考虑了所有情况,并且这些情况既不被省略也不重叠。
孩子们拆解完步骤后,需要思考如何“通过改变坐标位置来移动角色”、“利用循环和条件判断让角色达到想要的重复动作”等,并整理代码合理地贯穿整个计划。 。
期间必须明确、严谨、细致,否则结果可能达不到要求。
例如,正确代码显示的五角星动态图像是这样的:
只要交换两行代码的顺序,结果就变成了这样:
可见,如果走错一步,结果就会大不相同。
相信很多家长对此都有切身的体会。 经过几节课的学习,孩子们做题、做事都变得更有条理了。
思维更加严谨、摆脱粗心最直接的体现就是回答问题的准确性大大提高。
检查纠错能力
在编程过程中,如果任何一行代码写错了,都不会达到预期的效果。 没办法~程序本来就是这么“顽固”的。
如果出现问题,孩子就要过一遍执行效果,梳理逻辑,找到问题,一点一点改正。 然而,程序中的错误往往不会立即被发现。 很多孩子急得哭着想要改正错误。 最终,他们在试错中探索、前进,获得了喜悦和成就感。 俗话说“程序折磨我”。 千百次,但我对待他就像我的初恋一样。”
这样的训练时间长了,孩子的耐心、观察力、专注力即使不愿意也会得到提高,也会培养出抵抗挫折而不“玻璃心”的能力。
在这个过程中,孩子会逐渐明白一个道理:犯错并不可怕。 犯错误并不是失败的标志,而是成功的必要过程。 这是一个可以修复的小问题(bug)。 生活中没有什么是难以生存的。 如果你克服了困难,你就会成为一个真正的强者!
编码从根本上改变了孩子对错误和失败的理解。 养成勇于挑战的心态,对于培养孩子的成长心态非常有帮助。 (参考:)
最后,借用苹果CEO史蒂夫·乔布斯的话:“每个人都应该学习编程,因为它教会你如何思考。”
编程,以孩子喜欢的方式,培养高效的做事视角,潜移默化地提高孩子解决问题的能力。
现在,你喜欢吗~
福利时刻
▼
在“雅航聊编程”公众号对话框中回复“书籍”即可获取4本少儿编程书籍电子版下载链接!
点击“寻找”,帮助核桃编程!
评论列表