程式設計,對於大專院校資訊相關科系的學生們,一直都是頗困擾的科目,學校可能採用艱深難懂的原文書,課堂老師解說的語法段落可能過於抽象,難以理解,撰寫專案程式可能發生編譯錯誤,不知哪個環節出錯?
遇到較進階的演算法與資料結構相關課程時,更是頭痛,時間複雜度如何推算?快速排序法和氣泡排序法何者較佳?雜湊函數如何應用?
好在,現今國中小學在資訊教育課程中所接觸到的程式設計,沒有這麼困難!為培養孩子的思考及運算邏輯,國中小學的資訊教育,開始了程式設計課程,透過麻省理工所開發出來的Scratch程式,可以讓孩子們不需記憶許多的程式語法,任何一個毫無基礎的孩子,只要透過簡單訓練,就可以像玩積木的方式,快速拼湊出一個簡單的小小程式,而每個語法積木,本身就有中文化,且透過凹凸形狀的拼湊,隱含著除錯機制,所以製作簡單的專案程式,不再那麼困難。
筆者目前任教於新北市瑞芳區九份國小,在新北市的分類,九份屬於偏鄉學校,全校學生僅有26位(中高年級22位),雖然位在山區,實際上與都市地區的孩子相比,資訊落差較不明顯,也由於科技進步,網路資訊流通迅速,智慧型手機普及率漸高,加上九份老師們在教學的經營耕耘努力下,九份孩子,在電腦基礎操作技巧上並不輸給都市地區的孩子。
本校在本學年度的資訊課程規劃,除了自由軟體及電腦操作技巧應用外,依照各年級的程度,陸續加入與程式設計及思考邏輯的相關議題。
中年級除了自由軟體操作及網路應用之外,三年級下學期期末導入較富有故事性的模式及關卡較少的打寇島網站,透過讓孩子在玩故事闖關遊戲過程中,初步接觸積木式程式設計的概念。四年級從上學期起,導入code.org網站的20小時課程,以及簡單的程式設計資料結構的邏輯推理問題,學習基本的思考邏輯。
高年級,由於在前幾學期時,已接觸過code.org的闖關模式,對於程式設計上有一定的概念,五級年開始學習結構化程式設計的思考模式,將問題由大切割至小,繪製流程圖,透過Scratch程式設計小遊戲,例如:鯊魚吃小魚,射擊遊戲,數學計算問題。未來則規畫六年級可以協同合作完成小專案,甚至參與新北市每年舉辦的Scratch程式設計比賽,認識Scratch與Arduino的相關應用等等。
由於本校屬於偏鄉小校,在教學現場來看,雖然比較容易掌握學習的進度,但孩子們還是有基本操作技巧及課堂上的迷思,常見的情況如下:
1、導入流程圖的概念
程式流程圖的概念,在於表達出程式的處理過程,只是流程圖的圖示及使用較為嚴謹,一板一眼,結構化程式設計的模式是由上而下,由大問題切割到小問題,逐一攻破,但對於孩子而言,容易分不清楚程式開發的需求及問題分析,在執行過程中,使用心智圖及雛型法可能會較佳,先有基本功能,再逐步思想延伸,持續擴充。
2、電腦課=電玩課?
孩子貪玩是天性,更何況網路上充滿許多聲光效果極佳的小遊戲,只要透過網際網路的搜尋即可獲得,有些孩子到了電腦課只想要玩樂,師長的授課不見得會專心聽講或者實作,這種狀況是難免;在課堂前需要明訂相關規矩並徹底實施,老師的操作不宜太過複雜及解說太久,這個部分真的需要多花心思去提昇及每個孩子的專心度。
3、檔案系統觀念
筆者曾在國中、都市小學、偏鄉小學都有任教的經驗,在電腦課的教學現場中,最常發生孩子在實作完成後,儲存檔案完卻找不到檔案的情況,不管是國中或國小的孩子,都曾發生過類似狀況,有的國中孩子甚至不知道什麼是存檔,要去哪裡找?什麼是複製?什麼是貼上?什麼叫做刪除?所以,在本校的資訊課程也融入介紹檔案存檔架構的觀念,期許孩子們能早日建立並養成檔案分類歸檔的習慣,日後才能減少整理檔案的冗長時間。
4、電腦常識的誤區
曾有孩子說:「老師,我的電腦沒有google!」(其實是這位孩子的電腦桌面上沒有Google 公司所開發出來的Google chrome網頁瀏覽器,孩子把Google搜尋引擎當成是一個桌面程式)。也有孩子說:「老師,為什麼電腦螢幕變黑了?」(其實是電腦螢幕閒置一段時間,螢幕進入省電模式,進入休眠狀態)。有些日常生活中,成人習以為常的電腦操作習慣,可能因此認為孩子應該也瞭解,實則不然,越是基礎,越容易被忽略,還是需要在一開始的電腦概論就得打好基礎。
回首這學年至今以來的課程規劃及執行,仍有很多值得修正的地方,以上僅是幾個常見的問題,在此分享的個人拙見,堪稱野人獻曝,經驗不足,也算是個人的經驗小結,期許日後的課程教學日益更好。