讓我們想像一個情境:你最好的朋友因為車禍而癱瘓了,雖然意識完全清楚,聽得到也看得到,但是全身上下祇剩下一隻眼睛的眼皮還能依照自己的自主意識來動作,雖說是能夠動作,但其實也就是能夠勉強眨一下眼睛而已,身為他最好的朋友,你要怎麼跟他溝通?
讓我們嘗試各種不同的方法跟他溝通。首先,兩個人要溝通一般就是經過聽說讀寫這些方法來進行,你的朋友癱瘓了,但是聽與讀不成問題,我們可以順利的將訊息傳遞給他;問題在於他無法寫,也無法說,那麼他要怎麼把他的想法讓我們知道?
利用眨眼傳遞訊息
啊,你想到這位好朋友的英文程度很好,他還沒車禍前可以用流利的英文跟外國人聊天,所以你可以教他摩斯電碼,讓他用眨眼的方式英文字母,再慢慢幫他拼成英文單句,進而成為句子。比方說眼睛快眨一下 (記為.) 後跟隨著長閉一秒 (記為 ─ )為 A;─...為 B;─.─.為 C,讓他用眨眼的方式打電報與他人溝通。
不過你馬上否決掉這個想法,因為這位朋友雖然能眨眼,但眨起來也不是那麼順暢,很難區分他到底是眨.還是 ─,而且他的動作也沒辦法那麼連貫,所以這方法不適合他。
要不然找個人從 ABC 開始,依照英文字母順序往下唸,如果唸到他想要的字母就眨一下眼睛,然後唸字母的人再從 ABC 開始往下依序唸,不斷重覆這個過程,隨著字母一個一個拼接起來,我們就能與朋友溝通了。
上述的方法還真的有人用過,《潛水鐘與蝴蝶》的作者 Jean-Dominique Bauby 有天醒來發現自己雖然聽得到也看得到,但全身都無法動作,祇剩一眼可眨眼,他就靠著眨眼睛讓朋友幫他記錄下訊息的方式寫出了《潛水鐘與蝴蝶》這本書。
當然,找個人每次都從 ABC 開始往下唸這樣可以進行溝通,但是效率很差,最慘的情況下要唸到第 26 個字母才是正確答案,有沒有改進的方法?
調整字母的順序
我們首先想到的是每個英文字母出現的機率並不相等,E這個字母在英文單字中出現的機會非常高,而 Z這個字母出現的機率就非常低。
在《密碼和隱密寫作 Codes and Secret Writing》這本書裡面,密碼學家 Herbert S. Zim 提到英文字母使用頻率的順序是 ETAON RISHD LFCMU GYPWB VKJXQ Z,前面 12 個字母就佔了總使用次數的 80%,因此我們可以把出現機率高的字母排在前方,這樣很可能唸的前個字母就是正確答案,大幅提昇效率。
接續這樣的想法,我們還可以想到,最常使用的五個英文單字分別是 the、of、and、to、a,如果你的朋友第一個字母選的是 t,直接問他:『是要拼 the 這個單字嗎?』可能又可以省一點時間。
好的,過一陣子你可能會發現依照字頻高低順序 ETAON RISHD LFCMU GYPWB VKJXQ Z 來問還是效率不夠高,如果你學過一點資訊概念,你會想到其實最多祇要問 5 次就可以找到你朋友想要的那個字母。
如果你的朋友他想要的字母是 Z,利用字頻順序表,你還是要唸到第 26 個字母才是他要的,但運用二分搜尋法你最多祇要 5 次就能知道他想要的是 Z 這個字母。
讓我們來看一下哈佛大學 CS50 這門課的 David J. Malan 教授如何利用二分搜尋法從上千頁的電話簿中找到他要的人名 (順道一提,國一生物下學期第四章的二分岔檢索表也是這個概念)。
教導其他人這一套方法
到目前為止我們已經把選字母的效率提昇到極致了,但是我們雖然已經將選字母的效率提昇到最高,卻還有很多問題還待我們逐一解決。比方說,你的朋友可能因為眼睛痠了而眨一下眼睛,但是你卻誤會他要選擇你現在正唸到的這個字母,那就造成溝通錯誤了啊,所以你們在溝通的過程中還需要加上一個確認的步驟。
再來,你也是會累,會需要休息的,這時候就需要請另一個人來唸字母順序了。但是這個接手的人並不知道你已經想了那麼多方法來提昇效率,他祇能使用最原始的方法傻傻的從 ABC 開始唸,那不是又讓效率整個滑落下來了嗎?我們前面的努力都白費了啊。
所以你必須把你想到的方法一步一步寫下來,包含用什麼樣的字母順序來問、如何確認你朋友的眨眼是真的要選擇而不是眼睛痠,這些步驟都要寫下來,讓任何一個有空接手這個工作的人都能夠依循你的方法來溝通。
你可以想像,如果接手的人當中有個人看不懂你寫的方法一定會造成大災難,所以這個運作方法一定要寫得清楚明白、簡單明瞭、沒有模糊空間、老嫗能解,這樣你才能夠放心的把工作交給他人,自己去放鬆休息一下。
好的,讓我們整理一下我們剛剛做了哪些事。
運算思惟 Computational Thinking
首先,我們想到要與這個朋友溝通的時候並不是要同時進行聽說讀寫,我們要做的祇是讓朋友的想法能夠傳達給我們,並不需要他來說、他來寫,我們幫他寫下來也是可以的。所以這個地方,我們把一個看似很困難、無解的問題化簡成為我們可以解決的小問題了,這個步驟我們稱為:拆解問題 (Decomposition)。
然後我們發現祇要重覆唸英文字母讓你的朋友來選擇就可以達到最簡單的溝通效果了,這個步驟我們稱為:發現問題的規律、模式 (Pattern Recognition),我們的問題是要改進這個重覆不斷選字母的過程,讓它更有效率。
你有沒有發現,後來我們想到選字母方法其實還可以運用在其他地方,比方說,可以改用注音符號來進行。你的朋友雖然英文好,但是你的英文程度可能比不上他啊,用中文溝通可能會更方便一點,這時候改成讓他選注音符號可能對你來說會讓溝通變得容易一點。一開始我們的方法祇能選字母,後來還可以運用在注音符號上,不限於英文字母,這稱為:抽象化與通化 (Abstraction and Generalization)
最後,我們把這套方法寫下來,讓所有拿到操作手冊的人都能依循這個方式進行,這就是:演算法 (Algorithm)。
綜合上述四個步驟你會發現,我們使用方法就是這幾年大力推行的運算思惟 (Computational Thinking):
- 拆解問題 (Decomposition)
- 發現問題的規律、模式 (Pattern Recognition)
- 抽象化與通化 (Abstraction and Generalization)
- 演算法 (Algorithm)
這幾年因為 AI 話題的盛行,大家極力提倡運算思惟,像在 108 課綱就要求中小學要教學生運算思惟。你聽到這件事可能會覺得:『來了,又來了,又來一個換湯不換藥的東西了。不過就是換換名詞而已嘛,在教育現場是能有什麼改變?而且學生學這些是要做什麼用?一定要搞到每個人都寫程式才可以嗎?以後要讀文組的人學這個是要幹嘛?』
不過從上面的例子來看,運算思惟是一整套思考的方法,有很多現有的模式可以遵循,讓我們面臨新的問題時可以遵循這一套操作流程來解決困境,比方說運算思惟的第一步要求先將問題拆解,讓看似無解的大問題變成多個可以個別解決的小問題,這種思考模式無論是文組學生或是理組學生都用得上。
中小學教運算思惟的教材
好吧,運算思惟聽起來不錯,但是要怎麼教運算思惟?
我的好友翁佳驥 (網名:好馬) 翻譯了一本《不插電的資訊科學》,就是不用電腦,祇在一般的教室裡利用紙牌、圖卡、活動等方式介紹排序、資料驗證等資訊科學裡面重要的概念。
好友謝宗翔 (謝 KK) &顏國雄 (雄哥) 則在《不插電的資訊科學》這個基礎上發展出《偷插電的資訊科學》,教師可以選擇先在課堂上一些內容,再帶著學生到電腦教室驗證或直接帶到電腦教授進行授課。你可以從網頁直接下載上述兩本書的電子版。
為什麼要這麼麻煩?都在電腦教室上課不是就好了嗎?為什麼要這樣帶來帶去的?因為你知道的,學校單位常常要接受一些奇奇怪怪的指令而影響授課。
比方說,衛生署要求所有學生上網簽署不吸煙宣言、不吸毒宣言……最好這樣大家就乖乖不抽煙、不吸毒啦,但這樣衛生署才好像有在做事,才會有績效啊,所以硬是要學校配合做這種無聊又無效的工作;或是教育部要國三學生上網填志願 (這個確實跟教育有關),還有一大堆亂七八糟的單位給予學校奇奇怪怪的要求……
這些外來的要求都會用到電腦教室,原本在那裡上課的班級就沒電腦教室可用,得帶回一般教室上課,所以《偷插電的資訊科學》就發展出可在一般教室 &在電腦教室上課的兩種教學版本。
喔,抱歉岔題了。我想說的是,除了《不插電的資訊科學》&《偷插電的資訊科學》這兩本書之外,我覺得《思考的演算 (The Power Of Computational Thinking)》這本書也是資訊教師可以運用的教材之一。
其實,上面討論如何利用眨眼睛傳遞訊息的例子其實不是我自己想的,是《思考的演算》這本書第二章的內容,我祇是稍微補充了一小部份而已,書裡面介紹了更多運算思惟的應用方式,書中的這些例子很容易就可以運用在教學上。
像我就想到日後如果教資訊,我可以讓學生分組討論:『如何與全身癱瘓祇剩一眼可眨的人溝通?』每一組把討論的結果上台分享,吸取了其他組別的想法之後,再討論看看怎麼改進自己這組的方法,藉由討論,讓學生一步步優化這些過程,讓學生從中學習運算思惟。書中其他章節,如製造聊天機器人這些主題也都是讓學生可以實際操作,並從其中瞭解運算思惟的題材。
這一陣子出版了許多與演算法相關的書,但看過多本演算法書籍,我還是比較推薦這本《思考的演算》,因為他不僅止於介紹演算法而已,他是帶領讀者運用這些方法去解決問題,我覺得這更有意義。而且這本書的預設讀者就是高中生,所以內容簡單,經過教師修改過後要運用在國中小也很容易,推薦閱讀。
仍然有優化的空間
最後,在《潛水鐘與蝴蝶》作者 Jean-Dominique Bauby 剛開始寫書的那個時候他還不知道眼球追踨術這種高科技的方法,所以他祇能依靠這些低科技的方法溝通。後來他用眼球追踨術來選字就快多了,也不需要有個人在旁邊唸字母,他自己就可以搞定。
另外前面提到選了第一個字母 t 就聯想到單字 the,這不就是聯想輸入法嗎?因此,利用電腦的聯想功能也可以提昇輸入效率。也就是說,我們現行採用的解決方式隨著科技的發展還是有持續優化的空間。
但目前藉由眼球追踨術 &聯想輸入我們就已經可以大幅提昇溝通的效率,所以你可以盡情地吃喝,不需擔心腦血管破裂中風的問題,反正就算祇剩一隻眼睛的眼皮可以眨動,你還是可以與他人溝通。放心吃吧!! (大誤)