❝ 神話故事裡、日常生活裡、程式設計裡的Forever Loop|希臘神話 X Scratch 兒童程式設計課

本次系列課程希望以希臘神話為主要內容,搭配 Scratch 程式設計進行內容轉譯,讓學習程式本身不再是照本宣科或是斷裂式的學習個別功能,而是以具體的方向與內容創造出效果需求,讓科技變成輔助內容的工具,使想法具現化。

一、神話的起源

在課程的一開始,我們從「神話故事的類型與緣由」來開啟第一階段的討論,針對神話故事,孩子們大多提到阿拉丁、神燈精靈等電視或圖書中常見的主角元素。「希臘神話」在此還沒有被提及。

接著我們一起思考,「神話」是真的發生的故事嗎?它的來源又是什麼?

幾乎每個孩子聽到這邊馬上就搖頭,表示神話就是假的,是虛構的,並且可能是因為當時的人太無聊,所以就自己編一下故事,最後變成了傳說、神話。

接者,我們簡單帶過「世界各國神話」,例如:北歐神話、中國神話、埃及神話、羅馬神話等較具代表性的幾種,同時說明:神話中的劇情內容,很大一部份會影響該地區的信仰、生活習慣,或是價值觀,並且最後將主題聚焦於「希臘神話」。

常見的希臘神話故事角色

在希臘神話中,常見的諸神無數,而幾乎每個神都有其代表的領域或象徵,像是宙斯:天空之神,雅典娜:智慧之神、阿波羅:太陽神,當然也有非神的人類名留神話中,例如:以「潘朵拉的盒子」故事聞名的主角潘朵拉,便是其中之一,到此階段,先建立孩子們對於希臘神話中的各個元素的想像。

二、希臘神話閱讀與討論——反抗命運的薛西弗斯

認識了希臘神話的背景後,我們再將焦點放在其中一則小故事-「薛西弗斯與巨石」。

Sisyphus – Titian (c1488-1576) – Prado Museum

薛西弗斯原本是一座柯林斯衛城的國王,平日與眾神關係密切,一天,宙斯將河神的女兒綁架,恰巧被薛西弗斯看見,河神不知所措,著急的來詢問薛西弗斯,打著如意算盤的薛西弗斯,要求河神給予柯林斯衛城一整年的水源,否則不告訴他實情,河神不得已只能投其所願,後來,河神得知是宙斯擄走了自己女兒後,便氣的跑去找宙斯理論,而宙斯因為薛西弗斯的「告密」行為感到非常憤怒。

一氣之下,將薛西弗斯打入地獄,並且給予他最嚴重的懲罰:「讓他重複做同一件事,又沒有收穫與希望」,於是宙斯便想到了一個方法,他使用神力迫使薛西弗斯沿著山坡推動一塊巨石,但每次推到山頂前,巨石就又會滾落山腳,薛西弗斯就必須回到山腳,再推一次巨石,週而復始,永無止境。

(一)、開放式的思考與討論

故事講到這邊,孩子們對於薛西弗斯的遭遇各有各的理解,有些人覺得他活該,因為他告訴河神宙斯的秘密,而宙斯本身就是個性霸道的神,所以不應該實話實說;有些人覺得他很可憐,因為他只是做了他自己覺得對的事情,雖然過程中還是不忘自己的好處,但也不致於遭受到這麼嚴重的懲罰。

可以發現,平心而論,每種答案都是「有可能的」,因為神話故事本身並沒有描述這些問題背後的答案,而是嘗試讓讀者去詮釋這些內容。

(二)、打破固有的思考習慣

除上述的情境討論,我們也用其他面向的方式刺激孩子們的思考模式,例如:會不會其實薛西弗斯是開心的?如果是的話,你覺得原因是什麼?透過「假設性問題」,激發孩子們不同角度的思考,盡可能地擴增對於這些人事物互動的想像,並且再試著用自己的言詞描述,這也是本次系列課程非常著重練習的一環!

(三)、為何假設性問題值得練習思考

假設性思考的重要特性在於,經由討論假想情況所呈現的道德議題能夠有意義的提供道德考量與建議,以之幫助我們理解、甚至解決實際生活中或理論上有爭議的道德議題,此外,假設性思考是現實與虛幻的融合結果,因而可以顯現出純粹現實思考所無法呈現出的許多評價特性。因此透過不偏離主題過多的假設,將能刺激孩子進行不同角度的評析,進而產生多元開放的思維模式。

三、與自我生活的連結——討論生活中必要的重複

繼前面的劇情與假設性問題的討論,我們再針對薛西弗斯「重複性地」做著一樣的事情進行一連串的思考,接著便將學習的視角拉回到自己身上-「當這些重複性發生在日常時,會是什麼樣的存在?」。

在此我們使用幾個簡單的問題勾起孩子們這個部分的經驗連結,像是:「每天早上都要做的事」、「每天晚上都要做的事」、「每天都要做的事」,甚至是:「每隔一段時間要做的事」。

孩子們對於這種單純的「重複概念」皆能以自己的經驗出發做聯想,例如:刷牙、洗臉、吃飯、上廁所、洗澡、睡覺,甚至是滑手機…等,這些都是平常需要重複執行的動作。因此,

程式設計,或者說「運算思維」,其實恰恰與我們的日常生活息息相關。

藉由故事-劇情討論-與生活連結,這樣一連串的鋪陳與設計後,孩子們在此階段理解了「這些概念與自己的關係為何?」。

四、程式設計概念——無窮迴圈(Forever Loop)

進到Scratch程式介面後,我們先從整體的環境認識起,分別是「程式區」、「放置程式區」、「角色區」。並回憶薛西弗斯的故事:「薛西弗斯推著巨石上山坡」,而在一開始的專案中,並沒有「山坡」,因此,孩子們必須要先練習繪製一做自己想像中的山坡,作為專案中的第三個角色。

繪製一座山

這邊可以發現,每位孩子的山坡都不盡相同,而不同山坡將會導致寫程式時的不同做法,再來則是一步步討論與引導孩子們在 Scratch 中的基本技巧,分別為以下五點:

(一)、設定初始值(重複回到起點)

在 Scratch 的舞台中,不免有孩子不小心把自己的角色移動到其他地方,因此會需要「一開始的固定位置」,在這個部分我們一起認識到定位的用法,而角色則是先以薛西弗斯作為範例說明。

而要讓「程式運作」,我們需要有統一開始的設定,而在 Scratch 中,就是「綠旗」,因此我們試著使用一個綠旗的積木、以及一個定位的積木,讓薛西弗斯每次按綠旗時都可以定位到固定的位置。

(二)、xy座標定位與移動(將巨石推上山、滾落)
座標定位系統

然而,「要定位到哪裡?」,便是下一個問題,該如何判斷我的薛西弗斯現在的位置是哪裡呢?在、Scratch 中,所有的位置我們都可以用x,y座標來規定,讓電腦知道,現在你指的位置是哪裡,因此我們透過一個座標系統的背景理解不同位置的畫面,並且請孩子們觀察自己的薛西弗斯現在的座標在哪裡。

有了角色定位後,我們再回想故事中薛西弗斯推著巨石上山的劇情,效果我們這邊練習的是「滑行」。在使用這個程式前,也會需要先把要滑行的角色移動到該位置,確定該位置的x,y座標。

(三)、無窮迴圈(不斷推著巨石)
程式設計中的重複執行

最後,我們從「推動巨石三天」,一直到「永無止境」地推動巨石,來練習迴圈以及無限迴圈的用法。也讓整個「薛西弗斯與巨石」的故事透過Scratch 的方式重新演繹,讓孩子們能夠在程式設計與故事中取得共同連結。

五、總結

在課程的結尾,每個孩子都完成了可以讓薛西弗斯無窮無盡地推動著巨石上山,再滾落的程式效果,同時,未來可以延伸的部分可以是:「薛西弗斯的想法或所說的話」我們再次簡單複習了今天上課內容,讓孩子們帶著熱騰騰的記憶下課。

  1. 以自己的話描述薛西弗斯的故事內容
  2. 程式碼中:綠旗、以及定位的用法該如何使用
  3. 在 Scratch 中,x,y座標分別代表什麼呢?

在本系列課程中,我們試著透過這樣的方式,帶孩子們認識神話故事,同時讓學習程式效果本身有著具體的目標與需求,以避免單點式的技巧學習模式。

課程名稱:希臘神話XScratch程式設計
課程設計:祝令儒、陳亞馨
授課教師:祝令儒
撰文者:祝令儒
編輯:陳亞馨