核心概念
技術
邏輯
計算機程式設計
除錯
簡介
你是否曾經想要一個可以做所有家務的機器人助手?科幻小說已經向我們展示了幾十年的這種機器人,但它們仍然無法使用! 到底是什麼耽誤了這麼久?在這個專案中,你將研究為“機器人”程式設計以執行簡單的家務任務(例如製作三明治)時遇到的一些挑戰。
背景
電影和電視中充滿了可以像人類一樣看、感覺和行動的機器人。它們可以飛行、說話、奔跑、跳躍和做許多其他事情。 然而,在現實世界中,機器人的能力要有限得多。人類非常擅長製造機器或編寫計算機程式,這些程式可以比人類更好或更快地完成一項特定的事情。例如,我們有計算機程式可以在國際象棋等遊戲中擊敗人類,或者包括《危險邊緣》在內的電視遊戲節目。 有機械臂可以在工廠中快速組裝汽車,比人們更快、更準確。你甚至可以購買自動清潔地板的機器人吸塵器!
關於支援科學新聞
如果你喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,你正在幫助確保有關當今塑造我們世界的發現和想法的具有影響力的故事的未來。
但是,想象一下,你拿起任何這些機器人,要求它執行簡單的家務,例如疊衣服或做晚飯。 它們做不到!需要專門構建和程式設計它們來執行這些任務。在這個專案中,你將專注於這個問題的程式設計方面。計算機程式是一組供計算機或機器人遵循的指令。計算機非常字面化,會 精確地 遵循指令,即使你在編寫指令時犯了錯誤。對於人類來說可能簡單或顯而易見的事情,例如製作三明治,對於機器人來說根本不明顯。必須 精確地 告訴機器人做什麼。在這個專案中,你將為一個人編寫一個“程式”來製作花生醬和果凍三明治。你將要求這個人“像機器人一樣思考”並非常字面地理解你的指示。製作三明治很簡單 - 這應該很容易,對吧?你可能會感到驚訝!
注意:構建一個可以完成人類手所能做的一切的機器人——例如在不破壞它們的情況下撿起形狀各異的物體——這是另一個完全不同的問題。在這個專案中,你將要求志願者像機器人一樣行動,因此你不必擔心構建機器人。有關構建機器人手的專案,請參閱“更多探索”部分中的連結。
材料
麵包
花生醬
果凍
刀
盤子
紙巾
志願者
鉛筆和紙
可以容忍少量混亂的表面
準備
考慮一下你製作花生醬和果凍三明治的步驟。將其分解為一系列步驟,一次一步。
將此過程寫成編號列表(步驟 1,步驟 2…)。確保你包括 所有 步驟,即使你認為這些步驟是顯而易見的。
步驟
將你書面的步驟和其他材料交給你的志願者。你的志願者可能已經知道如何製作花生醬和果凍三明治。解釋說你需要他們假裝以前從未做過三明治。你希望他們 精確地 按照你書面的指示去做。他們需要像機器人一樣行動,並執行指令告訴他們的任何操作——即使這會導致錯誤。他們也不應假設任何遺漏的步驟。
仔細觀察你的志願者遵循該步驟的過程。 他們犯了什麼錯誤嗎?如果有,在你的程式的哪個步驟?寫下步驟以及發生的問題。
現在你需要透過修復程式碼中的錯誤來“除錯”你的程式。根據你觀察到的任何錯誤的註釋,編寫一個新版本的程式,並要求你的志願者再次嘗試。 他們是否犯了與上次相同的錯誤?是否出現新的錯誤?
重複除錯過程,直到你的志願者成功製作出普通的花生醬和果凍三明治。 它花了多少次嘗試?
額外: 你也可以嘗試使用口頭命令而不是書面指示來完成此專案。
額外: 嘗試使用其他家務來完成此專案,例如洗碗、疊衣服或打掃房間。
觀察和結果
你可能會非常驚訝地發現,起初,你的志願者沒有按照你認為非常簡單的一組指令進行操作。你製作三明治時會採取很多微小的步驟,這些步驟你可能會自動執行,而不會過多考慮它們,並且你可能忘記將它們包含在你的程式中。例如,如果你的程式只是說“將花生醬塗在麵包上”怎麼辦?這對你來說似乎足夠明顯。但是,你的志願者可能做了愚蠢的事情,例如用手指將花生醬塗在麵包袋上!但是請記住,你的志願者是一個需要非常具體指令的機器人。你沒有指定他們應該用 刀 來塗抹花生醬,或者他們需要先從袋子裡拿出一片面包!
在此專案中,可能會發生許多其他簡單的錯誤——例如使用刀的錯誤端,沒有先取下罐子的蓋子,將麵包片的錯誤面朝向彼此等等。每次你發現錯誤時,都必須更改程式以進行糾正並再次嘗試。可能需要多次嘗試才能完全除錯你的程式!
清理
如果你的程式碼中有很多“錯誤”,這個專案可能會變得有點混亂!使用溼紙巾清理任何灑出的花生醬和果凍。
更多探索 用紙程式設計:用手寫的計算機程式讓你的朋友迷惑,來自 大眾科學 構建人造手,來自 大眾科學 學習技巧科學:研究記憶助記符,來自 大眾科學 適合所有年齡段的科學活動!,來自科學夥伴
此活動由 科學夥伴 合作提供
