计算机的秘密:执行指令的准确性与序列编码的重要性
《hello Ruby儿童编程大冒险》书中通过绘本童书的形式为孩子讲解什么是计算思维。书中以及网站上有一些活动以及游戏。更多精彩可以访问网站helloruby.com。
“作者希望孩子们理解和接受最基本的编程逻辑,以后就可以像搭建乐高积木一样,用轻松、创意的方式编写代码”
----华尔街日报
*孩子不一定要当程序员,但一定要具备“计算思维”:
分解问题
重复任务
寻找规律
制定计划
打破常规思维*

计算机的秘密:它们快速准确地执行指令,但它们无法独立思考。
以下是一些专业术语的解释
·顺序
成人世界的定义:
序列是一个连续的内存空间,用于存储多个值并按一定的顺序排列。每个值都分配有一个数字,该数字成为索引或位置。通过索引可以检索到对应的值。
书中的活动都是基于日常生活的例子。例如,“刷牙”的指令: 1. 进入卫生间; 2、拿起牙刷,挤上一点牙膏; 3、张开嘴开始刷牙,重复同样的动作,直到每颗牙齿都刷完; 4.如果牙齿上还有牙膏,可以用清水冲洗干净,然后离开浴室。
电脑说:请确保你给我的指令顺序正确!这样就会又快又准!
那么这个一步一步的指令就称为“编码”。
序列是一系列有序指令。
·分解
将问题分解为许多较小部分的过程称为分解。
小女孩Ruby并不害怕尝试新事物,因为她知道一个秘密:**所有的大问题都是由小问题组成的。 **这也是让我作为一个程序员受益最大的一种思维。在现实生活中,当我遇到问题时,我通常习惯于将其分解。当我一一看到小问题时,我就不觉得那么困难了。
程序员通常将编写的代码分成更小的程序块,以使其更易于理解和维护。我们在现实生活中经常会遇到分解,比如把肉、蛋糕或者游戏关卡分解成几个部分。
书中的活动:一张完整图片与破碎碎片的简单图片。找到缺失或多余的部分。或者让孩子们分解他们的图画,看看它是由哪些不同的部分组成的。
模式识别
成人世界的定义:
人类的识别过程是通过计算机技术自动或半自动(人机交互)实现的。比如人脸识别、语音识别等。
书中定义:找到问题的相似点或规律,才能有效解决问题。为了找到问题的模式,我们会寻找每个问题的相似点或相似点。
人类也一直在完成模式识别任务。比如,读书时,他们用自己认识的汉字、单词(大脑中的模式)来理解书本的内容。这整个过程也是一种模式识别。人的大脑在学习新知识的同时,也在调用大脑中先前储存的旧知识来理解新知识。这个过程,我理解,也是一种模式识别,所以模式化学习更容易让人理解和理解。记忆。
书中的模式识别活动是Ruby着装规则的一个例子。周一,我会穿圆点衣服;周二,我会穿……根据这样的规则,你可以找到符合她规则的衣服。
多变的
成人世界的定义:
变量申请内存来存储值,即创建变量时,会在内存中申请存储空间。内存管理系统根据变量的类型为变量分配空间,并且这个空间只能存储该类型的数据。
简单地说,变量是用于命名数据的标识符。变量分为三种类型:静态变量(类变量)、成员变量(实例变量)和局部变量。
静态变量(类变量)在方法体外部声明,用static关键字修饰,其作用域是整个类。成员变量(实例变量)在方法体之外声明,其作用域是整个类。
局部变量是在方法体中声明的变量。它们是在方法执行时创建的。当方法结束时,变量被销毁。作用域只是代码块,不能通过访问修饰符修改。局部变量没有默认值,如要使用该变量,必须为其赋值。
计算机非常擅长存储信息(或“数据”),这些信息可以是一个人的名字或一块蛋糕的重量。
变量就像一个带标签的框,您可以在其中存储项目的数据。
书中,鲁比的父亲给鲁比留下了四张线索卡,包括机器人的地址、企鹅在河边的真假提示,以及从雪豹到狐狸家的方向和步数。线索就像密码,四张线索卡就像变量,存储着不同类型的信息。也就是说,在使用计算机时,会产生并存储不同类型的数据。编程时,这些数据以变量的形式存储。有很多东西可以存储为变量: 1. 字符串; 2. 数值; 3.布尔值
·字符串:引号内的字符组合,包括字母、数字、空格键以及键盘上的其他字符,例如“Ruby”。
书中的活动是:鲁比认为她爸爸的键盘很神奇,因为里面藏着她和她最好朋友的名字。您可以根据不同的颜色找到它们的名字,也可以在网站上设计并打印自己的专属键盘。
·数量:如1、2、3或4.12
书中的活动是通过一系列的数学问题,回答数字等。Ruby的父亲留下的线索卡中,其中一张是100X4(我还是不明白这意味着什么)
·布尔值:只有两种表达式:True或False
布尔逻辑是用and/or/not连接表达式后做出的真假判断。
书中的活动是给出一张图,给出三个句子,判断是真是假。你也可以寻找你自己的玩具,并提出该玩具的三个特点。无论是真的还是假的,尽量做到难以分辨,让孩子猜哪个是真的。
算法
成人世界的定义
算法是指对问题解决方案的准确、完整的描述。它是一系列解决问题的明确说明。算法代表了描述解决问题的策略机制的系统方法。换句话说,对于一定的标准化输入,可以在有限的时间内获得所需的输出。如果算法有缺陷或不适合某个问题,则执行该算法将无法解决问题。不同的算法可能会使用不同的时间、空间或效率来完成相同的任务。算法的好坏可以通过其空间复杂度和时间复杂度来衡量。
书上说:算法是解决问题的一系列具体步骤。也就是说,按照计划一步步完成某件事。计算机喜欢用符号指令写出这些步骤,以便我们更容易理解。
鲁比接到父亲交给的任务后,很困惑。她决定先制定一个计划,然后按照计划去执行任务。该计划是一种算法:将宝石搜索分解为更小的步骤。编程时,可以使用算法来创建可重用的解决方案。 Google 和 Bing 的搜索引擎使用搜索算法对结果进行排序。
书中的活动是给出步骤和规则,并绘制每种算法所代表的不同模式。如:画线、直线、重叠、三色。
算法和序列的活动是使用上、下、左、右四个箭头将 Ruby 移动到终点。使用普通或快捷指令进行编写。程序由一系列指令组成,序列是一系列有序的指令。
数据结构
成人世界的定义
数据结构是指彼此之间具有一种或多种关系的数据元素的集合以及该集合中的数据元素之间的关系。
常用的数据结构包括:数组、栈、链表、队列、树、图、堆、哈希表等。
书中:
当你要处理大量数据时,如果将它们有序地排列起来,将会大大提高使用效率。我们将这些方法称为“数据结构”。
如果需要在同一个地方保存大量数据,可以使用数据结构来存储。数据结构就像一个大盒子,里面可以存储值、字符串、目录等数据,并且可以根据需要随时修改。有些数据结构允许您快速查找数据,有些数据结构使分类和组织更容易,而有些数据结构擅长保存顺序信息或使设置值更容易。
企鹅有一种秘密语言,但一旦你了解了这种语言的组成部分,你就能明白它们在说什么。
活动一:密语,按图破译。
活动二:午餐时间,根据提示对饭盒进行分类。
循环
重复执行的代码块。有些循环会永远执行(无限循环),有些循环有停止条件,例如计数器循环。当循环重复一定次数时就会停止,或者一直循环直到满足停止条件。
孩子更容易理解的语言:
一遍又一遍地做一件事情或一系列事情。 Ruby 构建了一个梯子,构建了一个部分,重复四次,就完成了。这个过程称为一个循环。
电脑说:我擅长一遍又一遍地做同样的任务而不感到无聊。我什至不需要吃饭或休息,我只需要知道什么时候开始,做什么,什么时候结束。
活动一:模式识别,发现规律问题
活动 2:循环:每个任务都有一系列标志性动作。你可以重复这些动作多少次?第一轮:一组舞蹈动作重复3次;第二轮:选择一组舞蹈动作并重复,直到您和您的伙伴一起鼓掌。第三轮:当你的伙伴捏鼻子时,重复鲁比的动作。
想一想,日常生活中有哪些事情是像循环一样不断重复的呢?例如:校园生活、日常行为习惯或者歌曲旋律?
选择
如果……那么……
如果……否则……
书中的活动 1:命令按钮、按什么颜色的按钮以及执行什么操作。你每天都会看到这样的计算机指令。
例如:按电梯、按微波炉按钮。
活动二:按照流程填写说明。
功能
一段可以重用来执行一些常见任务的代码。如果您有一段多次使用的代码,将它们转换为函数会非常有用。
书中的活动:对建造木筏的图片进行排序,并为该过程命名,以便 Ruby 记住下次如何建造相同的东西。
抽象
这意味着忽略不必要的细节。
就是把注意力集中在必要的事情上,分离出不必要的细节。地铁路线图是复杂真实路线的抽象,日历也是时间的抽象。事实上,编程语言也是抽象。