這個學期轉眼間就結束了,這段期間我總共修了 19 學分的課程,外加旁聽一堂 3 學分的課。這學期有個比較大的改變是,選課時我有意識地將上課時間避開週一,如此一來我就能夠體驗週休三日的生活。雖然客觀來說,週休三日能夠讓課業壓力稍微降低,但是這學期我依然備感壓力,也許因為線性代數,總讓我必須付出大量時間複習。
農村生活臺語會話
週二 9:10 ~ 11:10|通識 A8|學分 2
這是一堂適合「會說」臺語的學生來修的課,課程目標是提供學生練習說臺語、使用臺語的機會,同時了解臺語有哪些學習資源。課堂的前幾週,老師簡單介紹羅馬拼音、聲調等發音規則;接著有不少活動,包括自我介紹、介紹學校可食作物以及用臺語玩桌遊。另外有大約三次的課程邀請了校外人士,分享與農村有關的主題。期中期末有簡單的小報告,期中的個人報告主題是「農村生活體驗」或是「農村職業分享」;期末的團體報告主題則是用臺語介紹桌遊,可以自行設計或是使用現成桌遊。
經過一學期的課程之後,我感覺臺語口說有變得稍微流暢一點,在做報告的過程中也學會了一些常見但是我不會說的字。老師上課很認真,準備了很多活動,但是我覺得成效不佳。根據上課的觀察,不少同學在打筆電、滑手機或是讀自己的書,只有被老師點到了才會說幾句台語。此外有少數團康活動是全班一起進行的,同時間只能有一個人發言,其他沒有發言的同學等同被浪費時間。
也許是因為這門課的經驗不足,抑或是口說課天生的缺陷,導致對於學生而言,學習上的「時間效率」不佳。不過老師每堂課都不斷地嘗試與改變,我相信這堂課會變得更好。
線性代數
週二 13:10 ~ 16:20|必修|學分 3
這是資工系必修課,這門課的風格和一般的線性代數課程不同,老師不從矩陣開始,而是藉由抽象代數與集合的概念,證明並推廣每個定理。課程一開始講解群體場,定義線性獨立與線性組合,之後推廣出各式各樣的定理。
上這堂課可以體驗到何謂「持續加速」,發車時的慢速,讓人以為這將是輕鬆的數學列車,每個觀念講解結束後,老師都會慢下來回答同學產生的疑問。隨著時間行進,同學們的背仍緊貼椅背,列車還在加速,原來我們搭上了高鐵。這時老師不再主動慢下來,只能依賴少數同學要求老師降低車速,重新解釋一次剛剛經過的概念,這才讓全班得到喘息的空間。到了後段,老師發現距離目的地還很遠,時間似乎不夠了。於是油門催到底,拉破時速表,此時不再減速,任何要求一概以「不懂也只能繼續」回應,終於在最後一堂課衝過 Friedberg 第六章。
老師的上課風格是著名的「隨機客」風格,沒有同學知道課程大綱,就連老師也不知道會教什麼,就連考試也都不知道會考什麼。就這樣邊上課,觀察進度後,滾動調整考試範圍、學期末要教到哪裡。
沒有作業,只有三次期考決定學期成績。評分標準幾乎全黑箱,學生只能知道自己的考試成績,其餘佔分比例、分數落點等一概不公開。學期開始時,老師說:「相信我」表示自己會依照公正的標準給分。期考內容全部都是證明,約有一半是課堂中證明過的,另外一半則是要用課堂所學,推廣證明新的陳述。
一學期下來,每週課後都要花費約四個小時複習,考前一週更要花費超過十二個小時。但是我不僅僅學到線性代數的知識,也學到了很多證明的技巧,是非常扎實的一門數學課。
資料科學概論
週三 9:50 ~ 12:10|系外選修|學分 3
這門課是生物機電學系開設的選修課,內容包括簡短的 Python、資料視覺化、影像處理、機器學習、深度學習。老師會將上課時間延後至 9:50 開始,上課時老師帶著同學邊做邊學,下課後都有一份作業,難度每週上升,最難的部分是影像處理。期末報告是自己或是兩人一組訓練圖片分類的模型,依照模型準確率、書面報告以及上台報告三個部分給分。評分標準是作業 88% 以及期末報告 12%。
這堂課我翹掉了幾週,因為前面的部分比較容易,自己看投影片就懂了,加上老師也表示考量到教室空間,能自己完成的話不用出席也沒關係。到學期中開始進行期末報告的組隊時,我為了找組員而到教室上課,後來發現可以自己做所以沒有找組員。但是在那堂課,我發現對於課程的內容,我開始有聽課的需求了,於是這之後的每堂課我都有出席。
學期結束後,我在使用 Python 上變得熟悉了,並且也能夠使用常見的函式庫,做到影像處理、機器學習與深度學習,非常有成就感。
英文段落寫作
週三 15:30 ~ 17:20|基本能力課程|學分 2
外語教學中心開設的課程,內容圍繞在單一段落寫作,在一個段落內包括主題、論點、支持理由以及總結,並教學寫出各類文體。
兩次個人作業與兩次小組作業共佔 40%、上課表現佔 30% 以及期末考佔 30%。每次作業都會經過擬草稿、寫作中心輔導員給建議,最後繳交最終段落。期末考和學測作文差不多,但當天使用自己的筆電作答,不可使用字典以外的網路資源。
上課時老師會帶我們看範文,並進行課堂問答,分析文章的結構。但是上了這麼多光說不練,不如讓我們更多的寫作練習機會。此外,老師每次進行問答的時候都會死守作者那一方,常常出現很明顯沒有對錯之分的問題,但老師總是跟我們說作者是對的;或是作者可能根本沒有那個意思,但老師總是穿鑿附會。
這學期下來,我還是學到了不少的寫作知識,包括如何寫出不空泛也不會太具體的主題句,也學到如何編排佐證來強化論點。
系統程式設計
週四 9:10 ~ 12:10|必修|學分 3
這門課著重於 Unix 系統提供的 API,介紹如何透過這些 API 用 C 語言實現系統底層邏輯,包括檔案讀寫、Process 溝通、多執行緒等。
作業佔分 40%,總共有四份手寫與四份程式,手寫的部分主要是複習上課學過的概念,題數不多也很簡單;程式部分需要根據題目的需求寫出程式,重點都是如何使用 API、節省 CPU 資源以及程式間溝通等,不太需要處理錯誤。考試佔分 60%,分為期中考與期末考,幾乎都是觀念題,著重在於找出程式裡可能出現問題的部分,以及想出遇到系統問題怎麼辦,例如在 Linux 中因為開太多程式不能登入的問題。
寫程式作業是最好玩的時候,難度不高但做出來的程式很有成就感。通常程式碼只會有大約兩百行,這是因為需要像堆積木一樣,組合各種 API 來達成需求;而不是像解題一樣,程式碼數量是來自於問題的複雜度。
演算法設計與分析
週四 14:20 ~ 17:20|必修|學分 3
這門課與線性代數由同一位老師授課,評分標準也相同,都是三次考試加黑箱。學期開始時一樣先打下基礎,從數學的角度分析 Big O 開始,接著講解問題的時間上下界,剩下的時間都在介紹歷史上著名的問題與演算法,並說明了 P 與 NP。
考試時和線性代數也很像,主要證明上課學到的演算法的正確性以及複雜度,也有些題目要求想出新的演算法來解決新的問題,並分析正確性與複雜度。考試中最累心的是證明正確性,大部分演算法的正確性都很明顯,但若要使用數學的語言來證明的話,便是困難的問題了。
日文二上
週五 10:20 ~ 13:10|系外選修|學分 3
這堂課是標準的日文課,每上完一課的下一週會有單字小考,這些小考佔成績的 40%,剩餘的部分是期中考與期末考。每一課的每個文法,老師都會先用自編文法講義講解,講義上有不少有趣的小補充,比起看著課本依樣畫葫蘆更容易理解。接著會帶我們唸課本的句子並各自練習課本的小習題,之後老師會按照座位依序,指定一位同學唸出自己的答案。
這學期的課程我更注重於口說的重音與腔調,每次跟著老師唸句子時,我都會注意每個單字的音調起伏,以及句子中的停頓。期中期末考時,最難的部分是聽力測驗,老師在播放音檔前沒有仔細說明題型,題目卷上也沒有充足的說明。我們只能聽著極快的語速、猜測題型、理解內容後並作答,唯一的補償是音檔會播放兩次。此外,聽力難度我認為以指數型成長。日文一的聽力測驗基本上聽到單字就能選答案了,這學期期中考要聽對話選出符合情境的答案,期末考甚至沒有選項,要完成填空題,並根據時態與文章類型選擇變化與文體。
前瞻資訊科技上
週五 14:20 ~ 17:20|系內選修|學分 3|旁聽
這堂課由多位老師共同授課,每位老師會針對自己的研究領域,簡單地說明兩個禮拜,讓同學對該領域有初步的理解。另外每兩週也會有一份作業,大部分是動手寫程式的作業。一般來說我只會去聽每位老師的第一週,只有對該領域比較有興趣時才會去聽第二週。