課程資訊
課程名稱
演算法設計與分析
Algorithm Design and Analysis 
開課學期
101-1 
授課對象
資訊工程學系  
授課教師
蘇雅韻 
課號
CSIE2136 
課程識別碼
902 25800 
班次
01 
學分
全/半年
半年 
必/選修
必帶 
上課時間
星期四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