用遊戲教小小孩學會寫程式!

對於小小孩與低年級,要帶他們玩的是簡單的邏輯流程圖,也就是一直線容易判斷的流程圖。由簡單的概念帶他們玩,之後等小孩遇到較難的問題,思考時,他也能自己延伸思考變化,到時我們視情況引導小孩,將想法用稍微複雜的邏輯流程圖描繪出來。

用桌遊教導孩子寫出程式

邏輯流程圖最早是在1921年發表出來。現在也廣泛在工作上應用,像是 SOP 標準程序、系統分析,決策分析等。

而帶小孩學習寫程式,是一步一步來的,我採用桌遊的方式進行

1.    介紹邏輯流程圖的符號、應用時機和方式
2.    演算符號介紹
3.    解析問題與語意
4.    將解法用文字逐步描述出來。若小小孩無法用文字寫出,可以請他用圖畫畫出並且用口語描述,由大人將她描述的意思用文字逐步寫下。
5.    依據上述文字描述步驟,畫出邏輯流程圖
6.    依據邏輯流程圖,寫出虛擬程式碼(pseudo code)
7.    依據虛擬程式碼程式碼
 
小小孩也能學習邏輯流程圖
正題開始介紹,對於小小孩(幼兒園)以及低年級。要如何帶他們認識邏輯流程圖。
剛奧運結束,我們就以這個時事作為教學,配合時事與環境教學是最棒的時機。
首先帶小孩去認識什麼是奧運,這項四年一度的競賽起源。
可以參考這個影片,

 

對於小小孩與低年級,要帶他們玩的是簡單的邏輯流程圖,也就是一直線容易判斷的流程圖。由簡單的概念帶他們玩,之後等小孩遇到較難的問題,思考時,他也能自己延伸思考變化,到時我們視情況引導小孩,將想法用稍微複雜的邏輯流程圖描繪出來。

然後請小孩畫出五隻動物(可以給他們形容詞:厲害、漂亮、喜愛等),準備來參加動物奧林匹克運動會囉,看看哪隻動物最後是全能運動選手。

假設她們畫出了大象、毛毛蟲、貓咪、蝴蝶、青蛙。每隻動物都做成一張卡片(立體圖卡更好)。

比賽項目則是跳高、跑步、長距離游泳。(比賽項目,家長可以自己發揮創意增加或變化)。並在每個比賽項目寫上數字(1,2,3,4)。

遊戲規則:我們要依照比賽數字大小,從1比賽到4。若可以通過比賽,則可晉級到下一個比賽項目,無法完成比賽則淘汰出局。誰最後可以參加完所有比賽項目就是全能選手。每參加各單項比賽項目時,選手必須先報到,以免選手可能想要棄權,不參加比賽)

再來我們就要介紹邏輯流程圖的符號囉

  這個「橢圓形」用來表示起點與結束。如程式或專案的開始/結束。(「Terminal」start / end )
  這個「斜四角形」用來表示輸入資料和輸出資料(input / output data,我們常簡寫成 I/O)。
  這個「長方形」用來表示處理(process)
  這個「菱形」用來表示判斷與決策(decision),判斷結果只有兩種答案,分別是對(True)和錯(False)。
  這個「箭頭」用來表示流程進行方向,有順序性。
 

接下來,我們請小孩寫下或口語描述整個比賽過程,參考如下。視小孩理解表達能力,細節可調整,沒有標準答案,重點在邏輯和流程。

1.    比賽開始「Terminal」
2.    參賽選手報到(參賽選手有大象、毛毛蟲、貓咪、蝴蝶、青蛙)「輸入資料 Input」
3.    跳高比賽。「處理 Process」
4.    通過跳高比賽選手可進行下一關進行參賽選手報到(大象、貓咪、蝴蝶、青蛙)。而大象和毛毛蟲無法跳高,則出局。「判斷 Decision」
5.    跑步比賽。「處裡 Process」
6.    通過跑步比賽選手可進行下一關進行參賽選手報到(貓咪、青蛙)。而蝴蝶不會跑步,則出局。「判斷 Decision」
7.    長距離游泳比賽。「處理 Process」
8.    通過長距離游泳比賽選手是青蛙。而貓咪因為不能長距離游泳,則出局。「判斷 Decision」
9.    青蛙通過所有比賽,是全能選手。「輸出資料 Output」
10.    結束「Terminal」

再來我們依據上面的文字流程描述,畫出邏輯流程圖,參考如下。


 
 
我是用紙板及A4紙 裁切上面的流程圖的符號圖形。之後再用筆寫上去。若能帶小孩製作成立體關卡或是手作關卡道具(跑道、洗手台、跳高平台),會更有趣。我的方式是製作出很多空白符號形狀的卡片,最好用顏色強化分辨(相同功能用同樣顏色),讓小孩如同拼圖般的方式,選圖卡,知道前後順序關係,將圖卡連起來。熟練點,就讓小孩練習直接在紙上畫出邏輯流程圖。


至於流程,必須視小孩現況理解能力,逐一增加細節。

重點是邏輯和流程,細節是逐步增強的,不需要一次就到位。

要講細節,會沒完沒了的,小孩的好奇及感興趣,反而會降低

保持遊戲有趣性,是最重要的。

讓小孩熟悉什麼時候要使用輸入資料?什麼時候要處理資料?什麼時候要進行判斷?用什麼去做判斷?

當團體教學時或兩兩一組時,可以讓一個小孩設計邏輯流程圖,另一個小孩當作執行者,依照他夥伴的邏輯流程圖執行動作。

舉例:對於小小孩,邏輯流程圖這樣就行了。
 


 
小孩理解表達能力再進步一點,可以再解釋如下
 
 
進階玩法:
•    改變 process 。例如:製作「合作」 process 長方形的卡片,我是直接在上面寫「+」,就如兩人三腳合作闖關,比如,青蛙和毛毛蟲合作,就可以通過跳高比賽(小孩自己會發揮想像力,毛毛蟲站在青蛙上),但是大象無論跟誰合作,都無法通過比賽。家長和小孩,可以發揮創意製作各種有趣的 處理 process 卡片。這部分可以配上 Triz 玩,我以後的文章會介紹。


 
•    調整 decision。例如:比賽順序或是改變判斷條件。
 
而待小孩熟悉邏輯流程圖的思維與應用,我們來看看如何帶小孩用邏輯流程圖學習數學(解題)和怎麼應用。
由於低年級和幼兒園小孩目前熟悉的算式是加減算式。
因此我以這個簡單算式為例
題目:姊姊給了妹妹 5 顆糖果、媽媽又給了妹妹 3 個糖果,那麼妹妹會拿到幾顆糖果呢?
解析題目的流程如下
1.    細心讀懂理解整個題目。「處理 Process」
2.    判斷這是什麼樣的題目。「判斷  Decision」
3.    將這大問題拆解成多個小問題,並且寫下重要資訊。「處理 Process」「輸入資料 Input」
4.    針對每個小問題,決定要用什麼樣的算式子(加減乘除)和計算方式來解題。「判斷 Decision」
5.    解答。「Process 處理」
6.    驗證。「判斷 Decision」
7.    寫下或回答答案。「輸出答案 Output」


因此我們實際將演算糖果題目演算過程寫下來,之後才能依照演算過程畫出邏輯流程圖,之後可將它轉換成程式。

1.    妹妹現在手上得到的糖果數是 一個大大的問號,我們把這個問號取名叫做 Sum 總和,當然可以取任何名稱,用來表示你現在手上有幾個糖果。而妹妹一開始並沒有得到任何糖果噢,所以是 0 顆,也就是 sum = 0。這其實有兩個專有名詞:把手上糖果數取名:專有名詞稱為變數 variable。而把這個變數在一開始設成為,專有名詞稱為 初始化 initialization,但不需要告訴小小孩,理解邏輯與流程才是重點。「處理 Process」

2.    輸入得到的糖果數量。「輸入資料 Input」
3.    將得到的糖果相加。「處理 Process」
4.    寫下 sum 總和的答案。「輸出資料 Output」


畫出流程圖如下,


 
最後,我們可以用這個來帶小孩來玩一些遊戲,如 姊姊身高120公分,妹妹身高100公分,妹妹站在姊姊頭上,會不會比身高180公分的爸爸還要高呢?就是讓小孩多練習「輸入、輸出 I/O」、「處理 Process」、「判斷 Decision」,讓他們熟悉這些邏輯流程圖的符號與應用時機。

我會帶小孩在生活上多練習 IPO 。什麼是 IPO,請參考這一篇 智慧家居-建築物篇

對於如何用邏輯流程圖解析中高年級、國高中等題目,後續我再介紹。


 
STEAM 用愛陪伴小孩 粉絲頁:https://www.facebook.com/steamparents

圖片提供:C.K. Tseng
數位編輯:吳羽茜

本站提供網路意見交流,以上文章屬作者個人意見,不代表未來親子學習平台立場