[評價] 109-2 林軒田/蔡欣穆 資料結構與演算法

作者: kamelus (駱駝)   2021-06-28 19:14:19
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 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諮詢助教往往能得到很有用的回饋,且每位助教的風格都蠻不一樣的,
很有趣。
總而言之,課程對同學的要求不低,在給予紮實的訓練之餘,也提供了豐富的課堂體驗,使
同學在修課過程中不僅獲得成長,還可以得到不少樂趣。一學期下來我覺得自己收穫很多,
很值得。
作者: fshjlin (廢渣)   2021-06-28 19:34:00
推DSA
作者: Alex548291 (ARS·L)   2021-06-28 19:43:00
推 作業題目都很有趣 實作很多有趣的資料結構
作者: rrro (小傑)   2021-06-28 22:24:00
真榮幸 XD
作者: Lyu7 (永遠的初學者)   2021-06-28 23:00:00
推推
作者: tonyflu (Tony)   2021-06-28 23:48:00
推 雖然我寫作業寫到快瘋了QAQ
作者: imveryscared (新手上路)   2021-06-29 01:04:00
被電爆的我:
作者: Inglenook (城市苦守)   2021-06-29 11:28:00
推,但覺得作業不太友善,尤其是用C手刻很多東西很麻煩
作者: Xiphity (XK)   2021-06-29 17:30:00
推推
作者: a127000555 (arvin)   2021-06-30 03:03:00
回: 用C的原因為避免大家只會使用STL而不知其原理及時間複雜度
作者: agenuinedrea (Leo)   2021-06-30 11:53:00
超感謝老師跟助教用心,讓我這個外系生也可以跟上課程進度
作者: Alex548291 (ARS·L)   2021-06-30 12:32:00
用C才好阿 畢竟這堂叫資料結構 當然要手刻才對
作者: bingruuu   2021-06-30 13:12:00
推,但我的立場比較持平,作業loading、最後FP、期末考、hw3尬在一起真的是快死掉,真的要審慎評估QQ
作者: Python (CSPR)   2021-06-30 13:38:00
推推
作者: GiftjokerPTT (CuriousJoker)   2021-06-30 19:47:00
推 真的很謝謝助教能讓我問那麼多問題QQ
作者: derek901018   2021-07-01 09:52:00
好課不得不推
作者: karmel (吳承宇)   2021-07-01 16:44:00
推教授助教用心!!!但這門課真的好難QQ感覺成績應該不好看final project沒寫出來只有交報告感覺完蛋QQQQQQQQQQQQQQQ
作者: michael1118 (麥口)   2021-07-12 23:29:00
推 修過ada還是收穫不少

Links booklink

Contact Us: admin [ a t ] ucptt.com