這篇拿來記錄一下我的大學助教生涯(2017~2018),並在文章最後提供了我上課時給學弟妹用的加強班講義。
我從大三開始,開始擔任高大資工的程式課程助教(大一必修課程),系上這門課有一個特色就是,助教會利用晚上的時間開設程式加強班(非強制參加),加強修課同學的程式實作能力然後我的加強班的講義都是自己製作(為了好玩不要讓內容太死板,每學期的風格我都弄得會不一樣xD)
關於加強班
在109級(我是107級)開始,這門課被分為上下學習(當初我修的時候只有一學期),上學期主要在教導同學C語言的基本概念(變數、流程控制、迴圈、函式……),下學期則是訓練同學的程式能力,旨在通過系上的畢業門檻(CPE,一次兩題或累積四題)。
在加強班開設的規劃上,上學期我習慣配合白天教授的上課進度;下學期的部分則比較隨興,我會依據自己的喜好來決定要教什麼內容給他們(隨便教),不過雖然是這樣說,這兩年我下學期大部分都是在教Linked list、大數運算、stack & queue、backtracking、DFS…這些稍微有點難度的資料結構和演算法。
[gallery ids=”2387,2388,2389,2390” type=”rectangular”]
在教加強班最慘的是大三那年,由於教授公務繁忙,有時候會叫助教去代他白天的正課,很不幸的三年級我的必修課衝到了大一的程式必修課,跟系上求助的結論是已經定了無法更改…,造成有時候必修我就必須跟老師請假去大一那邊上課,這真的很慘…為了推甄必須穩住自己的課業,所以得花上不少時間自己想辦法補回來沒聽到的部份。下學期老師則是幾乎白天的課都要我去,可是大三下的必修仍然跟大一課程衝到,無奈之下只好跟學長求助,變成兩位助教一起帶當時的大一學弟妹(真的很感謝當時那位學長願意幫忙,不然我真的要撞牆了)。後來升上大四就沒有這個問題了。
關於競程
我是大一升大二的暑假開始接觸競技程式的,那時暑假跑去參加的交大的NCTU PCCA,了解了何謂程式競賽,也學了一點資料結構和演算法回來。但由於那時候系上的競程風氣很差,系上根本沒幾個人會想要出去比程式競賽,我連想組個隊出去都有不小的難度。大二時也有跟教大一程式程式設計的教授談過這個話題,希望系上是否能幫忙帶動一些程式競賽的風氣,不過教授當時似乎對此沒有很有興趣…(題外話,後來在學弟妹的努力下,系上陸續有些結果出來,此時教授才開始重視這一塊…想想真令人心寒)
後來有些有興趣的學弟陸續進來高大資工,所以想說也是時候了,便成立了一個社團給有興趣的學弟妹加入,順便利用助教的權限在大一上課時推推系上競程的風氣。大一下學期的課程我和一些人自掏腰包辦一個小組賽給大一學弟妹體會一下程式競賽大概是怎麼一回事,前幾名請他們吃東西當作獎勵(雖然兩年都是肯德基)。
關於成果
後來成立了社團後,系上參加對外競賽的隊伍明顯變多了,每個月的ITSA也越來越多學弟妹主動參加,也有熱心的學弟願意幫大家借教室讓大家可以聚在一起考,這是我最感動的一件事。對外競賽也得到了兩次桂冠盃闖關組的佳作(一年是我跟學長一起參賽拿的,另一年是我和學弟組隊拿下的)。
[gallery ids=”2392,2393” type=”rectangular”]
系上最重視的CPE部分,這兩年在學弟妹很爭氣地努力練習下,連續兩年大一就有半數同學通過系上的畢業門檻。 這讓教這門課的教授很是開心,還叫我做了一個數據圖表給他去對外演講如何提升學生的程式能力,由於圖表是我做的所以偷偷放一下。
最後,很慶幸自己有有這個運氣可以當上程式加強班助教,這兩年利用加強班增進了自己的表達和報告能力(還是覺得我講得很爛的學弟妹就抱歉了xD),也因為助教的關係跟學弟妹比較熟(不然大四基本上沒有什麼機會認識大一的人),這一年有很多加強班都沒開了(大二的資料結構和OOP),但仍希望程式設計的加強班能夠一直延續下去,好好幫助剛進入大學的學弟妹培養好程式設計的基礎。
所有的加強班講義我放在我的github上,給任何有需要的人參考,只求使用時附註來源: 高大資工程式加強班講義(109~110級)