資料結構與演算法

Data Structures and Algorithms

教授:林軒田、蔡欣穆
撰稿:常洧丞、蔡孟衡

選課方式

系上必帶,所以一定選得到,而且採一類加簽(登記就會上)所以會湧入大量外系同學一起修,去年系上140人左右,DSA卻有450人修。

課程內容

資料結構從基礎的陣列、linked-list、stack、queue到hash table、平衡樹都有,演算法則會教二分搜、排序、基礎圖論、字串匹配,還有分析演算法效率的工具,如 big-O 等。

授課方式

實體上課但不點名,但由於人實在太多,今年開了三間教室,教授會在大講堂講課並在其他兩間小教室直播,用 slido 跟大家互動,學期初人多時若想現場目睹教授英姿的可能要提早去搶座位,上課會錄影,缺席或想回去溫習都可以看。 其中有幾周因為活動所以課程內容要自行看影片,課堂活動有軟體開發、大地遊戲跟 Kahoot ,跟一般上課不同,活動一定要實體到場參與。

作業方式

這學期有五份大作業(包括 HW0),每份作業有三週左右的時間寫,內容包含手寫題與程式題,手寫題通常是按照題目指示做簡單操作、描述演算法跟手寫 pseudo code,程式題則是用 git 提交程式並在 Online Judge 上評測,同一題一天只能提交五次,所以上傳次數需慎用。 除了大作業外,每週還會有 mini-Homework,與當週進度內容有關,死線在期考後,提交方式同大作業程式題。 後半學期每周還會有 with-lecture quiz,在 NTU COOL 作答,內容也是當周進度,很快就能做完,可當作當周的簡單複習。

考試方式

考卷為紙筆考試,題目跟作業手寫題類似,題目會依難度分一到三星級,二、三星題分數比一星題多,但星級是教授眼中的難度所以還是僅供參考,可以帶大抄,頁數考前會公佈,這次期中四頁期末十頁。

計分方式
項目期中期末作業課堂參與(課堂小作業、課堂活動)
占比20%20%40%20%
修課心得

身為一個稱職的資工系學生,大一下不是在寫 DSA 作業,就是在寫 DSA 作業的路上。 DSA 是資工系非常熱門的一堂課,有很多的外系同學慕名而來。但即使 DSA 是一堂很熱門的課,修這門課卻一點也不輕鬆。作業方面,無論是程式題或者手寫題,都需要思考好一段時間才知道該怎麼下手,這時候你的真強者同學以及TA們就是你最好的大腿,大家請一定要好好抱穩;考試方面,期中、期末的難度不低,要熟悉自己大抄上寫的內容,並且要融會貫通,可能還要會一點通靈技巧 (? 最後,希望大家透過 DSA 學習管理時間,養成在死線前繳交作業的好習慣 (x