※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件):否
哪一學年度修課:
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
林軒田(上半學期)、蔡欣穆(下半學期)
λ 開課系所與授課對象 (是否為必修或通識課 / 內容是否與某些背景相關)
資訊系大一必修
δ 課程大概內容
[上半學期]
Arrays and Linked Lists
Performance Evaluation
Stacks and Queues
Heap
Tree(Traverse + BST)
Sorting
[下半學期]
String Matching
Linear-Time Sorting
Disjoint Set
Hashing
RB Tree
(Extra)The most beautiful code I never wrote.
Graph
B Tree
(Extra)Software engineering extra
Ω 私心推薦指數(以五分計) ★★★★★
沒時間寫作業者 ★
不擅於自己學習與查資料者 ★
有心學習願意花時間寫作業者 ★★★★★
喜歡追著助教問好問滿者 ★★★★★
喜歡翻轉教室者 ★★★★
η 上課用書(影印講義或是指定教科書)
Introduction to Algorithms (CLRS楓葉本)
μ 上課方式(投影片、團體討論、老師教學風格)
林軒田老師:全實體授課,課前會提供充滿許多空白的大綱投影片,上課時就會在上面邊畫
畫邊講解,上課的步調我覺得還蠻容易吸收的,不過有同學可能會覺得太慢。老師擅長從無
到有地引導著大家走過一個資料結構誕生的過程(會問說我們現在有什麼?這樣有什麼問題
?可以怎麼改?需要再加什麼? ),我很喜歡這個思考的過程,讓我們不僅能know what
也能know why,每個禮拜都很期待去上實體課嗚嗚。老師也喜歡跟同學們互動,除了會用sl
ido讓大家當場提問,有時看臺下同學沒精神時會故意寫錯內容,然後用自製的點名機抽人
來「大家來找碴」,不過答不出來老師也不會為難,或也可以喊pass跳過。
蔡欣穆老師:採翻轉教室,課程影片會預先上傳到NTU Cool要自己先看完,老師講解的方式
就比較偏直接講解,比如列出pseudocode或規則來說明,並搭配一些生活化的譬喻。而課堂
時間每次都會安排不一樣的活動,如解答課程內容疑問、玩Kahoot、做學習單、老師分享軟
體工程的知識,而最後一堂課是大地遊戲,雖然遇到疫情,教學團隊們還是想辦法用gather
town讓大家玩到,真心佩服,很用心又很好玩。
σ 評分方式(給分甜嗎?是紮實分?)
作業 30% (10% x 3次)
期中考 15%
期末考 20%
課堂活動 20%
期末專題 15%
很紮實的紮實分。
老師表示等第跟原始分的換算未必按照學校的標準。
ρ 考題型式、作業方式
[作業]
總共有三次作業,每次都是三大題手寫題(要輸出成pdf檔上傳到gardescope),再加上三
題程式題(要上傳到judge系統,每天只能上傳5次),且有約一個月的時間可以寫。程式題
要用C(非C++)寫,難度不低,通常是課堂內容的延伸,所以不免要花些時間額外查資料做
功課,但好處是可以多認識很多酷酷的資料結構。由於judge上有排行榜,總是可以看到有
神人在作業公布沒多久就都AC了,而普通人(如我QQ)往往要花上數十個小時構思、實作與
debug,但只要願意花時間並善加利用助教資源,都還是能寫出來的!(大部分的人都能做
出兩題,而每次約有1/2~1/5的人能拿到程式題滿分)
[期中考/期末考]
皆為open book,大致上是每個主題出個幾題這樣,有些可能要你修改一個pseudocode去達到題目想要的東西
、證明時間複雜度、設計一個演算法 等等,總之還蠻靈活的,我覺得不太容易QQ。期末考
有比較簡單一點。
[課堂活動]
1. 課堂習題:課後或隨課堂影片會用cool的「線上測驗」功能出一些跟課堂內容有關的練
習題,基本上有上課就寫得出來,很簡單
2. Kahoot:在課堂中參加Kahoot並完成cool上的課後測驗
3. 學習單:課堂時間會公布一個學習單,裡頭有一些手寫題要把答案交到cool上,跟一題
程式題要交到judge,但都不難、旨在複習(?)
4. 大地遊戲:參與教學團隊精心準備的大地遊戲,若無法參加者要寫一份cool上的練習題
作為替代
[期末專題]
三人一組。這次的主題是給一堆信,要實作指定的一些分析信中資訊的function(比如要算
出兩封信內容的Jaccard similarity),並丟到judge上去跑分,總之就是想辦法利用所學
的資料結構,程式跑得越快分數越高。
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
加簽習慣:
今年開成超大班課程,為一類加選,老師說預計最多能收500人,印象中最後好像有300多人
選課
修課基礎:
一定要會C,因為作業要用C寫。我是外系來修的,在寒假時看著小傑老師的影片和P教授的
《由片語學習C程式設計》這本書自學,然後judge girl題目刷一刷,這樣作業還算寫得出
來。
Ψ 總結
雖然課程難度不低,但能感受到老師一直支持著push著大家(?),想辦法幫助同學們學習
,slido 也是有問必答,軒田老師常常在課堂中作鼓勵之語,我每次聽完心中都有一種很安
心的感覺xD,我想也是因為這份安心感而給我繼續前進的勇氣吧。此外也能感受到老師們也很想給同學們一點課堂以外的東西,像是自我學習與
團隊工作的重要、分享軟體工程界的見聞等等,都是很可貴的收穫。
另外值得一提的現象是在cool討論版上討論題目的風氣頗盛,除了助教會留言回覆之外,也
會有很多熱心的同學分享自己的想法或幫別人解惑,我很喜歡這樣的氛圍,有大家一起成長
的感覺,我想也是因為大班課才有機會創造出這樣的環境(之前修商管程設時也有一樣的感
動QQ),希望以後能有更多類似性質的課朝這個方向發展><。
此外為了支援這學期的大班課,助教團隊多達二十多人,平日每天都有開TA hour,當作業
卡關時,去TA hour諮詢助教往往能得到很有用的回饋,且每位助教的風格都蠻不一樣的,
很有趣。
總而言之,課程對同學的要求不低,在給予紮實的訓練之餘,也提供了豐富的課堂體驗,使
同學在修課過程中不僅獲得成長,還可以得到不少樂趣。一學期下來我覺得自己收穫很多,
很值得。