撰文者:黃以文 (AA 競程首席講師)
源起
在九月中旬,老闆交派我一個任務:在十月 2 日至十月 7 日去中國成都外國語學校協助一個由我們交流過的機構舉辦的資奧六天集訓營。第一次聽到這個消息時是想要推辭的,畢竟我每週都有好幾堂 AA 競程課程要準備,除此之外也還有好多私人的工作要做,哪來的時間準備這樣一個盛大的集訓營。不過最後老闆說服了我,因為這將會是一次不可多得、過去也不曾有過的經歷 — 幾乎整個營隊都由我講課。大家可以想像一下,台清交等學校所舉辦的程式競賽集訓營中,所有課堂及考試全由同一位老師所準備!沒錯,這就是我將承受的挑戰。
成都外國語學校在資奧的表現
首先介紹一下成都外國語學校(簡稱成外)在競程上的表現。
在中國的資奧選拔中,每個省都會選拔一些人進入省隊,然後再從每個省的省隊中選拔一些人進入下一個階段。其中成外是中國四川省的一所學校,歷年來在四川省的綜合表現約為第二,第一的是曾經出過許多中國 IOI 選手的成都七中,所以若拿台北的學校做對比,成都七中會對應到建中,成外則是對應到師大附中。雖然說成外的綜合表現並不是四川最頂尖的,可是今年成外有兩個特別厲害的選手,在四川排名是前兩名,其中一個還是全中國的第一名,非常厲害,但他們兩位都沒來參加這次的集訓營,這也讓我壓力稍微小一些。
「普及組」與「提高組」
這次集訓營共分為兩個組別:「普及組」和「提高組」,這兩個組別分別對應了中國某個和資奧有關的考試 — NOIP 的兩個組別,其中普及組是面向國中生,提高組是面向高中生,在提高組表現優異即有機會進入省隊。
想必大家也會困惑這兩個組別的題目難度如何,請看以下說明:
- 普及組共有四題,共 3.5 小時。和台灣的 APCS 題目難度差不多,從最近一場普及組考試最難的一題恰巧和台灣 APCS去年的考試最後一題一模一樣這點即可看出。但是普及組涉及的知識比台灣 APCS 列的大綱還要多,可想像為得再多學會一些有名字的基礎演算法的台灣 APCS 比賽。
- 提高組也有四題,共 4 小時。一二題的難度約為台灣 TOI 初選的第四第五題,而三四題的難度大概是 TOI 選拔中一二階裡比較難(那些不會超過 1 個人拿滿分的題)的模考題。
這兩個組別的考試規則都是像台灣的 APCS 一樣,賽後才會判定參加者的程式碼是否正確。(我在講課前花不少時間在研究這兩個組別的難度如何,深怕自己出的模擬賽難度不正確 ಠ_ಠ)
集訓營的流程
集訓營共六天,每天由老師講課一個早上或是一個下午,時長 3~4 個小時,成外有分配主題給老師,實際講課內容則由老師自己安排,剩下時間由學生自行練習或是進行模擬測試,六天內共進行 4 場測試。
我負責的是前兩天的普及組和後四天的題高組,還要負責普及組和提高組各兩次模擬考試。
普及組的學生組成
普及組的學生們的年紀大概是小學五年級至國中一年級,共有 70 人左右,他們都已經學了大概半年至 1 年的程式語言以及一些初級的演算法。這些情報是由成外的老師告訴我的,同時成外的老師也特別強調,要講的盡可能簡單,因為大多學生基礎都還不太行。所以學生們真實程度如何有待我上課時自己判斷了。
普及組的兩天
第一天我負責早上的講課以及下午的模擬測驗。被分配到的主題是「搜索及其優化」,對應到 AA 競程的課程內容是 Level 1 的第三、四堂課左右。所以我事前就把 AA 競程的課程內容抽取一小部份整理成新的投影片當作教材。
上課地點是在一個空曠的演講廳,學生們並沒有電腦可用,所以只能聽我講課或是和隔壁同學戲鬧(據我觀察只有一半左右的學生對聽課有興趣)。我就按照我平時在台灣的上課方式講課。雖然是按照平時的講課方式,但呈現出來卻有很大的不同,因為當我問:「大家有沒有想到什麼做法,有的話可以舉手發表唷!」的時候會有非常多人搶著舉手,在台灣講課這樣問時通常大家幾乎都沒動靜 (*゚ロ゚)!!(老闆事後安慰我說:這是因為他們年紀還小,年紀比較大之後發表欲就不會這麼強了)。這並不是代表這裡小孩都很聰明,因為大部分時候學生們的回答都是錯誤的,只有少數一兩個人有辦法答出正確的答案,大多數同學們都是憑直覺猜作法和答案,或是想到可能對解答有幫助的線索就想舉手發表出來。雖然多數同學是無法想到正確答案,但我覺得在學演算法初期這樣的態度挺好的,解題的過程就是「大膽猜測,小心求證」,首先要有豐富的想像力,能想像出各種演算法的可能性,之後再慢慢從中篩選出可能性更高的作法,並用數學方法證明。至少他們有積極的在做「大膽猜測」這一步,並且勇敢地講出來,雖然是錯的,但可以和老師討論,看看有沒有辦法做些修正而變成正確做法。等他們經驗更豐富,數學證明的能力更扎實後,相信就能有更扎實的思維能力了。
第一天早上的講課進行得非常順利,和學生們的互動也挺好的,這天我就觀察出學生們的程度了,除了最經典的問題外,只要腦筋需要轉一下的題目,幾乎所有學生都不會,且大家的數學推理能力也尚未成熟,不知道怎麼分辨一個作法的正確性。其實這樣也挺正常的…畢竟大家年紀還小嘛 (=v=),期望多數國小年紀的小孩子能夠有著高中學生的思維能力才不正常吧(ー_ー)!!,能夠在國小時期就有非常強的數學思維能力的應該是極少數,對於多數小朋友們來說還是得慢慢培養的。
下午的測驗內容我選了 1 道基礎數學題和 3 道和早上上課內容有關的題,很多學生都覺得題目很簡單,不多做檢查就早早就交卷,但實際上多數人表現都很差,4 題中能完整答對兩題以上的就只有 3 個人,這也充分驗證我上完課後對他們的觀察:「只會猜答案而無法仔細驗證作法的正確性」,希望這次考試能讓他們學到教訓。
由於第一天過程很順利,所以我在普及組的第二天也按照同樣的步調講課,第二天講的內容是「二分與貪心」,這主題是我們 AA 競程 Level 1 裡的內容,所以第二天的授課內容我也按照第一天的方法如法炮製,大家的表現也和第一天差不多,沒什麼值得一提,連下午的表現也仍然差不多,畢竟只有一天很難期待大家程度能有多大改變吧(ー_ー)!!
第二天晚上和成外的老師們聚餐,有個老師拿了一個家長發的訊息給我看,這位家長說:「小孩和他說台灣來的黃老師比講得比曾老師還好,不知是不是喜新厭舊」,成外的老師告訴我曾老師是成都裡最出名的教普及組的老師之一,能看到這樣的訊息挺感動的,也讓我對自己的教學設計更有信心,是受小朋友們所喜愛的,也期望我的教學能夠真正讓這些小朋友們有所成長。
提高組的學生組成
提高組的學生約有 50 個,年紀從國中二年級到高中三年級都有。事前有聽說,在場的最優秀的學生年紀才國中二年級。
提高組第三天
集訓營的第三天我轉而負責提高組,前兩天是由四川省隊裡的一位同學負責講課。聽說學生們對他講課的反饋是:「老師和我們是不同世界的,完全無法理解老師的思維…」聽到這樣的反饋我也有點擔心,會不會他們對我的課程內容也有同樣的反饋 _(:зゝ∠)_不管啦,反正我都已經決定好要講什麼了,先根據大家上我的第一堂課的反應再調整內容吧。
這天我被安排的行程是在早上講「基礎算法」,我決定以 AA 競程 Level 2 課程裡的 「二分搜(II)」 來當作這堂課的內容,「二分搜(II)」是有關二分搜得更進階知識和相關變形,上課前其實我有點擔心這個講題對大家來說有些簡單,但沒想到竟然剛好適合大家的程度,幾乎我講的每道題都沒有人做過,且有很多我要介紹的知識也都是大家都不會的,而且大家也沒能一看完題沒多久就想出來,或是有些題目雖然有些人能猜得到作法,可是卻沒有人能證明作法的正確性。於是我大概就看得出大家普遍的程度了,雖然他們都知道多數基礎演算法,但對於演算法的應用還有待加強。
關於學生們上課發言的踴躍程度已不及普及組,看來老闆說的普及組之所以發言踴躍是年紀還小的關係是真的 >_< 取而代之,這些學生們會拱著身邊厲害的同學起來發言,而不是搶著自己發言,所以我還是能聽到他們學生的作法。另外還有當我講的作法和他們自己想到的做法不一樣時,他們也會主動發表自己的想法,可見其實他們也不是不想發表,可能只是不想搶去老師的風采吧 >_<
上完課結束後,就聽到一些同學邊喊著:「上了三天終於有聽懂的內容啦」邊走出教室,聽到這樣的意見真不知道該哭還是該笑 (ー_ー)!!也有人和我說,在中國不會有老師像我這樣在二分搜這樣的主題講那麼久,肯定是沒幾分鐘就帶過,看來我的教學非常獨樹一幟呢,希望是好的那種。
今天的下午是讓學生們自己練習,我給學生們相關的練習題單後就回旅館休息了。
提高組第四天
提高組第四天早上是我安排的考試,考試的內容和昨天的教學內容無關,就真的只是模擬測驗。看了大家考試成績後我更具體的知道大家的程度,50 人中能把最簡單題做全對的只有 17 人,考慮到有些人可能是粗心寫錯,大概就只有 20 人基礎能力及格吧,比我原先預期的慘很多 (T_T)
下午則是講動態規劃,只有講三個小時,大致上和第三天用同樣的步調進行,不過這次的講課內容我還沒在 AA 競程講過,也講了不少比第三天難度還高出不少的問題,我前一天晚上是有預習過一些我以前寫下來的相關資料,但是越講卻越覺得不對勁,發現我以前寫的資料裡好像還是有一些事情沒考慮清楚,或是明明有更好懂的分析方法,自己以前卻沒想到。這正所謂教學相長,有些知識當自己要教別人的時候自己才會更理解。
今天的課程得到的評價為:「老師講課挺有條理的,由簡入深,講到最後還會把自己講懵了!」
提高組第五天
由於前一天我把自己給講懵了,所以我做了深刻反省,這天還是講我已講過,特別熟悉的東西好了。
第五天是早上上課,主題為「圖論」,下午學生們自己練習,我今天也是把 Level 2 的關於圖論的部分內容拿出來講,其中有些部分還蠻基礎的,但我問有多少學生原本就會這些基礎的東西的時候,約只有十幾個人舉手,看來和前一天考試能做出第一題的人數差不多呀…看來他們雖然來參加同一個營隊,程度還是非常參差不齊呢,於是我今天早上約有一半時間把比較基礎的東西再講一次,剩下一半時間在講更進階的難題。某次我講完比較難的題目後,問大概有多少人能聽懂,結果大概只有 10 個左右,嗯… 真不知道是我講的不夠仔細,還是真的太難所以才那麼多人聽不懂 ఠ_ఠ
提高組第六天
今天是集訓營的最後一天,提高組早上考試,下午講解考試內容後就是營隊結訓典禮了。
早上考試我特地擺了台灣今年 TOI 初選的第三題(今年只要做出這題就能進入一階),看看能有多少人做對,結果共有 8 個,也就是說,如果這些學生來參加台灣的 TOI 初選,至少有 8 個人能進到 TOI 一階,仔細想想這算是蠻不錯的結果,畢竟成都最優秀的競程選手都跑去了成都七中,而成外卻還能有這麼多個能有進入 TOI 一階的實力,更何況,來參加此營隊的人年紀大都是國二到高一,最強的一些高二生們都沒來,這在台灣應該是很難想像吧,不過他們程度也就這樣了,再更難些的第三第四題沒有人做出預期的時間複雜度作法,其中第三題還是前一天講過的題目的類似題,但也只有 4 個人有做出前一天教的方法所能得到的部分分。看來大家現學現賣的能力還不足呢。
下午講解完後就進入了結業式,提高組成績第一名的人是個才國中二年級的學生!!!也就是在開課前事先被告知的那位最優秀的學生。其實由歷來中國和世界各地的優秀選手即可看出,若真的有競程的天份,其實在國中二年級左右就能展現出來了,但在台灣上高中以前是很難深入接觸競程的,有些可惜。
結語
經過這六天的集訓營,讓我再度肯定我至今為止的教材內容,也讓我再次思考訓練學生的方式是否欠缺了什麼,以及我到底該怎麼安排時間來幫助學生們成長更快。
此次成都之行,也非常感謝老闆以及成外的老師們對我的能力的信任,把課程內容完全交由我安排。相對地,食衣住行方面則由老闆和成外的老師們安排得非常穩妥,我只需要為授課內容操心,專注於自己的工作上。
期許這次的經驗能讓我更縝密的思維,更精進自己的教學模式。