2015年3月8日 星期日

Coding for fun 快樂寫程式指導手冊:第三堂課

第三堂課 建立樂團 (課程網址:http://coding4fun.tw)

章   節
內   容  與   指  導  說  明
3-1 迴圈 Loop 是什麼呢?Loop 就是對指令(instruction)或序列(sequence)做重複執行。

  • 什麼是 instruction?在 Scratch 中,一個積木就是一個 instruction。
  • 什麼是 sequence?sequence 就是一連串的指令。在 Scratch 中,就是一連串的積木。

在 Scratch 中,最常使用到 Loop 積木是 「重複 10 次」與「不停重複」。我們可以在這兩個積木中,塞入一個或一個以上的積木。
3-2 事件 Event 是什麼呢?就是一件事導致另一件事發生。當某個事件發生,就採取對應的動作?例如:

  • 媽媽叫你,於是你回應
  • 警報器響了,於是大家逃出建築物
  • 按電視遙控器,於是電視轉台

「媽媽叫你」、「警報器響了」、「按電視遙控器」都是事件的產生,有了這些事件,我們採取了對應的動作。那麼在 Scratch 中有哪些機制來達成事件的觸發呢?
請學生打開事件積木﹐看看哪些積木符合這個特質。請先探索看看,後面會作說明。
3-3 事件積木 在事件積木中,我們看到有 8 種積木。
前面三種積木「當綠旗被點一下」、「當按下OO鍵」與「當角色被點一下」已經使用過了。

  • 「當背景切換為__」:前面說過,舞台可以有好幾個背景,當背景被切換的時候,角色可以有對應的動作,比方說,他移動到新的位置,或是消失不見等等效果。
  • 「音量值大於__」或是「計時器大於__」或是「視訊動作大於__」,同學可以試試看,課程後面會作說明。
  • 「當我接收到__」訊息,在後面的課程會作說明。

所以在事件積木中,有 6 個積木會處理事件,上面是圓滑線的積木,同學都找到了嗎?
3-4 平行
平行這個概念,和我們數學所說的平行並不相同。在設計程式的時候,平行表示「事件」同時發生。比方說
  • 我一邊 (吃飯) 一邊 (聽音樂)。
  • 小明一邊 (走路) 一邊 (唱歌)。

請同學下載範例,這個範例說明平行的意義。其中有三段程式,這三段程式同時會做各自的動作,都是由「當綠旗被點一下」這個事件所觸發。在每段程式一開始,我們會給一個設定好的值,讓他一開始的時候就準備好。(這是 reset,3-10 會講解。)

下載 範例
3-5 平行
上個例子中,有三個事件同時進行。那麼在 Scratch 中,有沒有限制多少個事件可以同時進行?
理論上可以有很多的事件同時進行。但是如果事件過多,每個事件分配到的時間就相對地變少,執行速度可能因此變慢。
同學初期寫程式的時候,可以盡情的發揮。但是當程式變得很複雜的時候,請同學再回頭想想這個問題。
3-6 debug
什麼是 Debug?de 表示去除,bug 是小蟲。Debug 就是去除程式中作怪的小蟲。程式中為什麼會有作怪的小蟲呢?其實這是有典故的。
圖片中的主角是 COBOL 程式語言的創始人 Grace Hopper,她是傑出的女性程式設計師。她正站在一個大型的主機前面。以前的電腦就是這麼大,跟人一樣高呢。很難想像吧!
當時有ㄧ天因為天氣很熱,為了讓大型主機可以散熱,他們就把窗戶打開,結果很不巧地飛來了一隻蛾被打死在裡面,造成機器當機,連帶著所有需要機器計算的工作都沒辦法進行。經過一整天的檢查,最後是 Hopper 找到那隻罪魁禍首的蛾,她在筆記中寫下:「就是這個 bug,害我們今天的工作無法完成。」
後來每當老闆問為什麼你的程式沒寫好時,所有人都把問題推給了 bug,一直到現在,只要碰到電腦程式的瑕疵就被稱為 bug。消除這些 bug,就叫做 debug。
後面我們要進行遊戲,看看你是否有 debug 的功夫。
3-7 Debug it!-1
3-8 Debug it!-1 解說
Debug 進行的方式可以是單人,或是小組進行。當同學解答出來的時候,可以請他擔任小老師教其他同學。對初學者來說, debug 並不容易。可以告訴同學這些題目有難度,解不出來沒關係;解出來真的很厲害,表示他前面學得很好喔。不要讓學生因為解不出來而感到挫折。
3-7:第一個挑戰的預期效果是:當點綠旗的時候,Gobo 和 Scratch Cat 要開始跳舞。但是卻只有 Scratch Cat 開始跳舞?Gobo 怎麼了,為什麼不跳舞呢?請同學debug!
Debug 時,同學一定要看清楚預期效果是什麼,才能把正確的 bug 找出來。 
3-8:解說影片。

下載 專案
3-9 Debug it!-2
3-10 Debug it!-2 解說
3-9:第二個挑戰的預期效果是:當點綠旗的時候,Scratch Cat 應該要出現在舞台的左側,而且說「我在左邊」;滑到舞台的右側時,要說「我在右邊」。第一次點綠旗時運作正常,可是第二次就出現問題了。請同學 debug!
3-10:解說 reset,就是在程式一開始執行時,設定好初始的狀況。這個 bug 產生的原因就是沒有設定初始的位置。

下載 專案
3-11 Debug it!-3
3-12 Debug it!-3 解說
3-11:第三個挑戰的預期效果是:按空白鍵時﹐Scratch Cat 應該要翻轉,也就是要轉向。但是按空白鍵時,卻什麼也沒發生?請同學 debug!
3-12:解說,原來是因為程式執行太快,眼睛看不到效果。可以使用各種方法來解答,鼓勵學生有不同的想法喔。

下載 專案
3-13 Debug it!-4
3-14 Debug it!-4 解說
3-13:第四個挑戰的預期效果是:當 Scratch Cat 被點一下的時候,應該在舞台上來回移動。但是 Scratch Cat 是轉向了,卻是上下顛倒的。請同學 debug!
3-14:解說影片。

下載 專案
3-15 Debug it!-5
3-16 Debug it!-5 解說
強調只要同學改的效果跟解答一樣就可以了,解法不一定要相同。因為 coder 有不同的想法很正常,而且是被鼓勵的。
3-15:第五個挑戰的預期效果是:當綠旗被點一下的時候﹐Scratch Cat 應該要同時顯示「說」的泡泡並發出聲音「喵~喵~喵~」。但是「說」的泡泡發生在聲音之前﹐而且 Scratch Cat 只發出一聲「喵~」。請同學 debug!
3-16:解說影片。

下載 專案
3-17 內功 聲音積木 讓孩子探索聲音積木中的所有積木。可以任意組合,看看有什麼作用。等一下有小測驗等著大家喔。
3-18 小測驗
3-19 解說一
3-20 解說二
3-21 解說三
進行聲音積木的測驗。鼓勵孩子通過所有的測驗,如果沒辦法完全答對也沒關係,下面有解說。看完解說後,再回頭試試這些功能。
3-19:節奏就是設定拍子的長短,每分鐘 60 拍的意思就是 1 拍 1 秒鐘。「彈奏鼓聲」可以設定鼓聲與拍子的長度,「休息」的意思和休止符的意義是相同的。
3-20:解說 Scratch 中的音符與樂器。音符可以選擇聲音的高低,也可以選擇各種不同的樂器。
3-21:解說如何錄製聲音,如何編輯;也可以從 Scratch 內建的聲音檔案做選取;以及如何調整聲音的音量。

下載 內功之聲音積木
下載 範例
下載 範例
下載 範例
3-22 加入mp3 在 Scratch 中,可以加入聲音檔案,只要附檔名是 .wav 或是 .mp3。
如果想從網路上的 youtube 抓音樂,這段影片教學生如何輸入 youtube 網址後,下載影片的聲音檔(mp3形式)。如果 mp3 的檔案太大,有可能 Scratch 2.0 讀不進來,這時候請把 mp3 檔案轉為 wav 檔案。影片中都有詳細的使用說明。

youtube->mp3 網址
mp3->wav 網址
3-23 合奏 介紹如何做出合奏。一邊是主旋律,另一邊是鼓聲。鼓聲也就是打擊樂器,可以讓音樂聽起來更豐富。

下載 範例
3-24 建立樂團 提供學生三個樂團的檔案,給學生一些想法。請同學下載玩玩看。

樂團一
樂團二
樂團三
3-25 作業
這是第三個作業。
首先想一想,樂團是什麼樣子?當然要有聲音囉!
可以任選上一章節的範例改寫成「建立樂團」,或是自行製作。
請將作業繳交到 http://scratch.mit.edu/studios/475523
作業對學生非常重要,透過作業,孩子才能練習學到的程式積木。如果是一群學生,告訴他們,下次上課會分享他們的作業內容,請用心完成。請同學將作業上傳到作業網址。

作業網址

沒有留言:

張貼留言