現在學校六年級下學期上的電腦課程是Scratch 2,這是一門很有意義又有趣的課程,其實它就是要教小朋友們「程式邏輯」,並不一定六年級才可以學,外國有小孩子五歲就在玩了,只是深淺不同罷了!
本週的進度剛好提到了一個很重要的觀念,所以我把它寫下來。在Scratch 2中有一區「更多積木」裡頭的「製作一個積木」可有趣了,對應的是寫程式中的「重覆使用程式區段」也就是自訂函數的意思。
|
自己可以取積木的名字(自己命名涵數) |
自己訂作的函數還可以包含「參數」,這可就神了!不過要教到學生能懂實在不容易,畢竟有許多小朋友不太願意動腦~
前次課程,我們已經學會了讓程式畫正多邊形的方法,全部的程式碼都寫在一起,今天要教的觀念就是把某個特殊功能的區塊(譬如畫出正方形的積木群)獨立出來,並給它一個名稱,將來主程式中想畫正方形時,就「呼叫」這個名稱就好了!學生若真能理解這樣的概念那就夠了。
|
自己定義一塊積木 |
以下圖來說,將畫正方形的程式獨立出來,並設定含有一個「步數」的參數,接下來在主程式中這個區塊被呼叫三次(迴圈),並且傳入參數110
這個程式執行後就會畫出三個正方形,小朋友如果看得懂的話應該會覺得很有趣,而且知道有更多的彈性運用方式,若想畫出來的正方形有變化,就去修改相關函數區塊,這種元件化的作法也讓程式好維護,這是我想讓小朋友學會的。
我讓小朋友練習模仿「畫正方形」積木,自創一個「畫正六邊形」的可傳參積木,然後在主程式中呼叫它們。
今天的課程還有一個重點:偵測區的積木,除了計時器之外,今天最重要的是利用「提問」積木來得到使用者的輸入,並利用使用者輸入的答案來執行後續的程式
|
使用提問積木 |
最後我給小朋友出了一道題目:就是要他們寫出一個有能力畫正方形和正六邊形的程式,但程式一開始會詢問使用想畫幾邊形,若使用者填入4或6就會接著問:想畫幾個,隨後就按照使用者的心願畫出來,若一開始使用者輸入的不是4或6,程式也會很聰明地表示:「哈哈!我只會畫正方形和正六邊形啦!」然後結束程式…