課程名稱 |
演算法設計與分析 Algorithm Design and Analysis |
開課學期 |
101-1 |
授課對象 |
資訊工程學系 |
授課教師 |
蘇雅韻 |
課號 |
CSIE2136 |
課程識別碼 |
902 25800 |
班次 |
01 |
學分 |
3 |
全/半年 |
半年 |
必/選修 |
必帶 |
上課時間 |
星期四6,7,8(13:20~16:20) |
上課地點 |
資102 |
備註 |
限學士班二年級以上 且 限學號單號 且 限本系所學生(含輔系、雙修生) 總人數上限:98人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/1011algorithm |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
所有軟體程式要跑得快,除了要能充分利用硬體的資源,使用的演算法與資料結構扮演程式執行效能的重要角色。這門課將延續上學期的資料結構,有系統的介紹各種類型的演算法,以及如何判斷一個是否有快速的演算法存在。課程的目標是讓同學除了能夠了解並且分析既有的演算法,並且能夠運用所學,在需要解決問題時有能力設計出符合效能的演算法。 |
課程目標 |
本課程的目標在於讓修課同學:
瞭解常用的演算法設計法則並能實際運用於程式設計中
.熟悉並能運用分析演算法執行時間及複雜度的方法
.熟悉NP-complete或NP-hard之問題定義及證明推導
.對資訊軟體產業中程式設計及開發所使用的方法及工具有初步認識
.了解並能運用課程中其他所講授之進階演算法,如多執行緒演算法之設計
|
課程要求 |
|
預期每週課後學習時數 |
|
Office Hours |
|
指定閱讀 |
|
參考書目 |
教科書:Introduction to Algorithms, Third Edition, Cormen, Leiserson, Rivest and Stein, the MIT Press
|
評量方式 (僅供參考) |
|
週次 |
日期 |
單元主題 |
第1週 |
9/13 |
Introduction & Basics
|
第2週 |
9/20 |
Asymptotic notations & recurrences
|
第3週 |
9/27 |
Divide and conquer |
第4週 |
10/04 |
Dynamic programming |
第5週 |
10/11 |
Professor out of town for conference |
第6週 |
10/18 |
Dynamic programming and greedy algorithms |
第7週 |
10/25 |
Midterm review, homework review
|
第8週 |
11/01 |
Elementary graph algorithms |
第9週 |
11/08 |
Midterm |
第10週 |
11/15 |
No class due to 校慶 |
第11週 |
11/22 |
Minimum spanning trees |
第12週 |
11/29 |
Shortest paths I |
第13週 |
12/06 |
Shortest paths II |
第14週 |
12/13 |
All pairs shortest paths |
第15週 |
12/20 |
Maximum flow |
第16週 |
12/27 |
NP-complete |
第17週 |
1/03 |
Final review |
|