每週有一次跟孩子獨處,聽她講學校的事很是開心,D也談到學校課程的安排上她的看法。以下我用舉例的是為免對某些課有針對性,所以我還是用資訊系的程式設計課程的安排為例。
課程雖說應該是由每一個老師來決定該上哪些內容,但如果前後有相關,應該要在開課時顧及連續性,也就是如果是不同老師來上,要先講好。舉例來說,如果一個系決定C為主要語言,那麼最好連續學期的安排都以C一路上到C++,從最簡單的語法,指標,自訂型態到物件導向,也讓學生實作某些已經在語言中有的函式,並比較一下自己做的與人家做的之間的差異。如果決定是Python或是其他語言,也最好是如此。不然就會有每學期老是從最簡單的語法開始講起的狀況,該深入的部分都還沒講到學期就結束了。
有的課程很像學鋼琴,學樂器這東西就是不能斷掉,一但斷掉要再接回來往往跟剛學一樣,來回幾次大概就把學習的信心給毀了。程式設計雖然不像學琴這麼嚴重,但是幾個月沒寫手感就會差很多。所以她建議不要中間空一學期,應該要每學期都有排要「真的」寫程式的課。
很多課程名稱是「XX程式設計」,但是其實就是用人家的工具拉一拉,一行程式都不用寫。舉例來說,做網頁的工具很多,如此一來學生就不太會去讀HTML了,導致一沒有工具就什麼都不會了。這讓學生以為自己真的會寫網頁了,其實是什麼都不會。我聯想起PTWA辦的自走車比賽,有的學生以為自己會寫程式了,但是其實是什麼都不會,因為老師都幫他弄到只要改參數就好。
D也談到他們的老師以分組的方式有著不錯的效果。每一組會安排一位比較強的同學為組長,如果是三個人,就發一題比較難,兩題簡單的。組長除了把自己的那題解完,要負責教另外兩位,上台講解要算平時成績而負責上台講解的一定是比較弱的組員,逼得大家要合作,會的要教不會的。如果連組長都不會,就來問老師。這樣的上課方式雖然進度會很慢,但是以他們學校學生的程度,上得慢無所謂,盡可能讓更多人有學習到比較重要。這是我考慮以後要在我的課堂上使用的方式。
最後是我對D提出的看法,我認為一個段落不需要全懂(就是很熟練或是過度練習),只要基本的習題會做就可以讓這個學生往前進到下一個階段,因為下一階段通常比較難,只是需要隔一段時間就回來驗證一下。這個跟學琴類似,技巧上,如果能彈蕭邦,莫扎特的奏鳴曲就可以彈(音樂性是否好另當別論)得夠好,但是如果一直停在彈莫扎特的曲子,往往會連莫扎特都彈得不夠好,所以很多鋼琴老師會讓學生練很難的練習曲,但是目標並不是練習曲本身。
所以在適當時間點,應該要用專案來培養學生能寫比較大的程式的能力,不然就會一直停在只能解題的程度,嚴格說這就不算是會寫程式了。
上述與D的對談,適用於很多課程的安排。
最後是,差異化教學一直是教育專家所希望做到的,礙於資源有限確實有點難,但是現在正值少子化,如果少去老師很多額外的工作,讓老師多一點專注在教學,比較可能往這個方向做。
與一位老師談到,同時也在KIPP/KIST中看到,混齡教學的實踐,讓有能力往前衝的往前衝,一時還沒辦法的就多給他一點學習時間。當不是用年齡來分年級時,就不會有所謂「留級」的不好想法,讓比較慢的孩子也能學好才是教育最重要的事,而不是趕進度以及一直在考試與評量。
如果能這麼做,很多孩子也才不會學得那麼痛苦,甚至是放棄學習。