核心概念
计算机
计算机编程
问题解决
简介
你可能每天都在使用计算机程序。每次你上网、玩电子游戏或使用智能手机时,你都依赖于计算机程序。你知道你可以在不需要使用计算机的情况下学习一些编程知识吗?在这个有趣的活动中,你将编写一个“程序”——一套指导志愿者找到迷宫出路的指令。你能帮助他们找到出路而不撞墙吗?
背景
计算机程序是一系列指令或命令,告诉计算机做什么。例如,当你在计算机上打字时,有一些命令指示它在你按下键盘上的某个键时在屏幕上显示特定的字符。电子游戏的程序可能有不同的指令,告诉游戏在你按下控制器时移动屏幕上的角色。Web浏览器有指令告诉它当你鼠标点击不同的按钮时该做什么。计算机程序可以做的事情还有很多很多。你能想到更多吗?
计算机非常擅长遵循指令——但这可能会导致一个问题:如果人类程序员不小心给了计算机错误的指令,会发生什么?计算机不能自己思考——它会继续遵循给它的指令,即使这些指令是错误的!这可能会导致程序“崩溃”,或无法按预期运行。计算机程序员将计算机代码中的错误称为“bug”,而查找和删除这些错误的过程称为“调试”。在这个项目中,你将编写一套指导志愿者在迷宫中导航的指令,使用诸如“向前移动”、“向左转”和“向右转”之类的命令。如果你在指令中犯了错误,志愿者将“撞”到迷宫的墙上,你将不得不调试你的程序并再次尝试!
材料
方格纸
尺子
铅笔
志愿者
准备工作
支持科学新闻报道
如果你喜欢这篇文章,请考虑订阅我们的获奖新闻报道来支持我们。 订阅。通过购买订阅,你正在帮助确保关于塑造我们当今世界的发现和想法的有影响力的故事的未来。
使用一张方格纸创建一个适合矩形网格的小迷宫。迷宫的所有墙壁都应该是垂直或水平的——没有对角线或曲线。
从一个小的、易于解决的迷宫开始。(你以后可以做一个更难的。)
确保迷宫有明确标记的“开始”和“结束”点。
步骤
想象一下你是一个正在穿过你的迷宫的人,从“开始”点开始。在一张单独的纸上,一步一步地写下你如何穿过迷宫的指示。例如,使用诸如“向前移动两个方格”、“向左转”和“向右转”之类的命令。继续写指示,直到你有足够的指示到达迷宫的“结束”标记。
可选:如果你愿意,你可以画箭头来表示你的方向指令,而不是写出文字。写出逐步的指令需要一段时间吗?这个过程与绘制迷宫相比如何?
现在,将你的迷宫、指令和铅笔交给你的志愿者。指示他们完全按照你的指示穿过迷宫,即使他们发现错误。他们不允许自己解决迷宫或更改指示。
仔细观察志愿者是否通过遵循你的指示成功完成了迷宫。他们是否撞到任何墙壁或一路到达终点线?
如果你的志愿者一路到达终点线,那么恭喜你!你的程序没有任何错误。尝试制作一个更大、更复杂的迷宫并重新开始。
然而,如果你的志愿者撞到了迷宫的墙壁,你需要调试你的程序!仔细地一步步追踪你的程序,看看哪里出了问题。你是否让他们多走了一个街区,或者过早地转弯了一个街区?仅仅一个错误就可能使你的整个程序失效,并导致稍后崩溃,所以请仔细检查!
在你发现错误之后,重写你的程序。如果你只需要更改一两个步骤,你可以直接擦掉它们,而无需重写整个程序。
让你的志愿者再次尝试迷宫,遵循你的新程序。他们这次解决了吗?如果不是,请继续调试你的程序,直到他们解决迷宫。为你的迷宫指令查找和修复错误的过程有多困难?
额外:计算机程序是用许多不同的“语言”编写的,这些语言都有略微不同的格式,但都有非常相似的基本概念。例如,一些计算机程序在标点符号和拼写方面有所不同——这称为程序的“语法”。你能想出另一种“语言”来完成解决迷宫的相同任务吗?例如,使用相对于纸上的绝对方向定义的命令怎么样,例如“向上移动”、“向下移动”、“向左移动”和“向右移动”;而不是像站在迷宫中的人一样向左或向右转?虽然这两种语言不同,但你能看到它们是如何用于做同一件事的吗?
额外:尝试使用更复杂的迷宫进行此项目,包括对角线或曲线。如果你不再依赖矩形网格进行移动,你将如何编写程序?你需要引入哪种语言?(提示:你也可以尝试引入新命令,例如“向前移动直到到达十字路口”或“向前移动直到撞到墙壁”。)
额外:不要在纸上使用迷宫,而是编写一个程序来引导一个人穿过你的房子或学校。他们能否仅按照你的指示从一个房间移动到另一个房间而不撞到墙壁?
[中断]
观察和结果
你可能会发现,一个程序中早期的一个错误就可能导致崩溃。在解决迷宫时,几乎没有犯错的余地——如果转错一个弯,你可能会——字面意义上——撞到墙壁而崩溃,或者你可能会迷路!
你是否曾经使用过崩溃的计算机程序或玩过有故障的视频程序?你是否觉得这种体验令人沮丧?这就是为什么公司在向公众发布程序之前要进行大量的调试和测试——即便如此,有时他们不得不在发现错误后发布程序的“补丁”或“更新”。
更多探索 来自科学伙伴的适合所有年龄段的科学活动!
Scratch,麻省理工学院提供的儿童友好的学习编程方式
来自科学伙伴的计算机科学项目创意
这项活动与科学伙伴合作推出