限制溝通

譯者:林晉寬

版權聲明:
Computer Science activities with a sense of fun: Created by Paul Curzon, and Peter McOwan Queen Mary University of London for Teaching London Computing: http://teachinglondoncomputing.org 

本教材以創用CC 3.0 姓名標示-非商業性-相同方式分享釋出(creative commons 3.0 BY-NC-SA)
https://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh_TW 

原文教案與教材連結:
https://teachinglondoncomputing.org/resources/inspiring-unplugged-classroom-activities/the-locked-in-activity/
https://teachinglondoncomputing.files.wordpress.com/2014/01/activity-lockedin.pdf

活動名稱:限制溝通 Locked-in

教學時間: 20~30分鐘,可用於更長的活動。

教學單元:

      • 什麼是演算法?(What is an algorithm? )
      • 搜尋演算法: 循序搜尋法(Search algorithms: linear search)
      • 比較演算法(Comparing algorithms)
      • 運算思維(Computational Thinking)

教學目標: 這活動目標是介紹基本問題解決的運算思維,進而了解演算法是什麼、循序搜尋法是什麼以及如何比較演算法的效率。他也解釋了運算思維不僅僅是為了製造解答,而是為人類解決問題。試試看設計各種能讓有閉鎖症候群的人能夠溝通的演算法,鎖定綜合症是種完全癱瘓的中風者,他們有視覺、聽覺和思考能力,但卻不能說話。有鎖定綜合症的人如何寫一本書呢?

對象: 11歲以上,2~上百人皆可

課前準備: 不須特別準備,一本‘The Diving Bell and the Butterfly’ by Jean-Dominique Bauby 十分有用。

活動設計:

向學生說明,你要探討電腦科學家如何解決問題,而現在就是要來解決一個與人切身先關的問題。描述閉鎖症候群的生活:有完整的心理能力,但身體卻完全癱瘓。他可能因中風而隨時意外地降臨在任何人身上,其中比較幸運的人,可能還勉強可以眨單邊眼。一個聰明的腦袋被困在一個沒用的身體,能感受到一切卻無法溝通。

告訴學生這個活動正是關於電腦科學家如何幫助患有閉鎖症候群的病人。但今天不用科技,而是利用一點運算思維,你要探索如何幫助有閉鎖症候群的人溝通。

跟學生說明,有一本很勵志的書是”The Diving Bell and the Butterfly”,是一本Jean-Dominique Bauby的自傳,內容是在他在醫院的床上醒來,發現自己患了閉鎖症候群。

如果你有這本書,可以把它拿給同學讀。

這本書裡,他描述閉鎖症候群患者的生活。Bauby確實有辦法能溝通,不只是寫書,還能和醫護人員、朋友和家人講話,而他全部能做的是只有眨單眼。在沒有任何技術幫助,而只有一個幫手幫他寫字的狀況之下,他卻能做到這些事。

他到底如何辦到的?

1. 讓班級建議Bauby可以與助手以眨眼溝通。

可能的建議包括:

(a) 眨眼的次數,代表每個字母,1次代表A,2次代表B。

(b) 使用摩斯密碼

(c)助手念出字母A~Z,他眨眼,當助手唸到他想要的字母時。

指出同學正在像電腦科學家思考­-用運算思維-提出問題,讓同學和 你一起討論優缺點。

Bauby 使用上述最後一個方法,透過說話來說明這本書的前幾個字: “Through the frayed …”,這包含了助手念字母A、B、C到T,Bauby眨眼,然後助手寫下T;助手開始重新念A到H,Bauby眨眼,寫下H……反覆重複。

2.讓同學分組,嘗試用這種方法跟對方溝通。

3.跟同學討論成果如何-仍有許多問題要解決,他們有想到哪裡可以改善嗎?他們能想到一個可以真正改善問題的方法嗎?

可能的問題建議包括:

(a) 如何處理字母額外的符號,例如標點符號、數字……等。

(b) 當不小心眨錯眼時該做什麼?

建議的改進可能包括

(a) 在完成之前猜測一個字(這基本上和預測性發簡訊是一樣的)例如A-N-T-E 猜測是 antelope.

(b)改變字母的順序,最常用的前面,(E是最常用字母所以放第一)。

4.現在讓同學找出用這種方法寫這本書需要花多長時間,指出我們可以用問題的數量(讀者要說的字母),當成我們測量所需時間的方法,專注於溝通一個字 母,讓他們想想哪一個字母將是

(a).最好的例子(最少問題可以解決)?字母A只要一個問題。

(b).最壞的例子(最多問題才能解決)?字母Z需要26個問題。

現在讓同學想想整本書之中每個字母平均需要問多少次問題?(大概13次)A可能對應到Z,B可能對應到Y……。

這意味著如果我們將這本書中的字母數乘以13,我們就會得到一個還算準確的估計,關於需要多少工作來完成這本書。如果我們知道問一個問題需要多久,我們就可以得到一個估計的時間(每個問問題的時間乘上問題數)。


總結

我們已經看到當一個人只能眨眼的時候可以怎麼跟人溝通。必須使用兩人都知道的演算法,Bauby使用的演算法是搜尋演算法的變體。在搜尋演算法中,你可以假想東西一個一個排成一排,然後開始照順序找,直到找到為止,若最後沒有找到,那你知道他並不在那裡面。

我們看到一個簡單的方法去評估演算法,看他們多快可以完成工作,我們可以找出最好和最壞的情況,他們給我們最好和最壞可能的底線,我們也可以找出平均時間,讓我們可以估計工作時間長短。

用這方法和有閉鎖症候群的人溝通,我們需要一種演算法,把人跟成兩組,一組負責溝通,一組負責寫下字母,電腦科學家稱他為網路傳輸協定(protocol),兩台電腦透過溝通時,需要雙方都同意的網路傳輸協定,這是十分相似的問題,他們能做的就是送出0和1(沒眨眼和眨眼)。

在這段過程中,我們用了很多運算思維。我們用演算法思維來設計出一個演算法:一套解決問題的規則。我們也思考了這些方法可能碰到的問題,更進一步試著依此改良,而自然的納入不同問題的解決方式(預測接下來的字可以加速我們打字的速度,而類似的方法也改進了我們的程式)。而我們也運用一個簡單的分析來判斷我們想出來的幾個解決方法到底是好是壞。在想這些的過程中,我們完全沒有碰到任何與電腦、電子電路有關的任何東西,因為運算思維本來就不只是用在電腦上,他其實真正在做的事情就是解決人所遇到的問題。

變化和延伸

1.這個活動本來設計是為了和「20個問題」一起使用,裡面用了更快的演算法來解決相同問題,剛剛討論過Bauby的方法和變化,指出最糟只需要問五個問題就可以知道是哪一個字母,而不會平均需要問13次。向學生說明,透過轉換問題(從A照順序問到Z→先從最常用字母開始問或二分法),可以說每個人都知道如何問正確的問題,若不太知道怎麼問問題,你可以去玩玩看「20個問題」…一旦這活動完成,再讓班上同學回到閉鎖症候群,他們可以想出一套相似的問題始在5個問題內找出想要的單字嗎?

2.把這活動直接和循序搜尋法作連結,直接用陣列來應用循序搜尋法,如果同學都會寫程式的話,讓他們寫一個可以搜尋陣列的程式。

3.使用效率分析法建議的解決方法,例如使用A眨眼一次、B眨眼兩次……這種演算法,最高效率的情形,最糟和平均的情形,和Bauby的方法相比大概需要眨幾次眼?

4.對會寫程式的小組,要他們寫能夠實踐這演算法的程式和創造一個程式原型,讓患有鎖定綜合症的人能夠使用。在屏幕上應該閃出各個字母,眨眼與否應該被模擬成空白鍵是否有按,它可以被用來和鎖定綜合症溝通的人記錄字母。

延伸閱讀

運算思考:搜尋然後說

這活動與「20個問題」作結合,被寫在同個小冊子,以下為可用連結

http://teachinglondoncomputing.org/resources/

與其他活動連結

以下活動於teachinglondoncomputing.org皆可使用。

「20個問題」

玩20 questions然後看你是否已經知道有效率的搜尋演算法。

在搜尋演算法中,這活動介紹把大問題分割然後各個擊破的方法,他也介紹了效率演算當成比較演算法的一個方法。

The intelligent piece of paper

參加智能測驗對一張有智慧的紙(?)

在還沒了解搜尋演算法之前,這是個對於什麼是演算法和電腦程式的好介紹,也可以當作討論電腦是不是聰明的開始。

Winning Games: the perfect Tic-tac-toe player

創造一串能讓所有人玩Tic-tac-toe的指令。

這是一個對於活動from the intelligent piece of paper好的發展,現在創造你屬於自己的,他介紹程式設計和探討電腦能不能贏得像西洋棋一樣無聊的遊戲,強調設計程式來解決問題而不是單純寫程式語言。