Algorithms

演算法

本課程是由 國立陽明交通大學電機工程學系 提供。

The study of algorithms is at the heart of the computer science.

This course focuses on fundamental results in this area, including the unifying principles and underlying concepts of algorithm design and analysis.

We expect everyone to be comfortable reading, even writing, proofs. Several programming assignments will be given to embody the ideas.

Moreover, we hope that everyone can learn general problem-solving techniques.

Intended audience:
1. who are interested in computer science
2. who are computing something
3. who are learning problem-solving techniques

課程用書:
J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2006.
(J. Kleinberg, 20 Best Brains under 40, Discover Magazine, 2008)

為求學習成效完美,請購買課本!

授課教師 電機工程學系 江蕙如老師
課程學分 3學分
授課年度 103學年度
授課對象 大學生
預備知識 1. Data structures
2. Discrete mathematics
3. Computer programming in C
4. Computer programming in C++
課程提供 課程影音   課程綱要   課程行事曆 

週次課程內容課程影音課程下載
第一週課程介紹線上觀看MP4下載
第一週Chapter 1 Introduction (1/2)線上觀看MP4下載
第二週Chapter 1 Introduction (2/2)線上觀看MP4下載
第二週Chapter 2 Algorithm analysis (1/2)線上觀看MP4下載
第三週Chapter 2 Algorithm analysis (2/2)線上觀看MP4下載
第三週Chapter 3 Graphs (1/4)線上觀看MP4下載
第四週Chapter 3 Graphs (2/4)線上觀看MP4下載
第四週Chapter 3 Graphs (3/4)線上觀看MP4下載
第五週Chapter 3 Graphs (4/4)線上觀看MP4下載
第五週Chapter 4 Greedy algorithms (1/5)線上觀看MP4下載
第七週Chapter 4 Greedy algorithms (2/5)線上觀看MP4下載
第七週Chapter 4 Greedy algorithms (3/5)線上觀看MP4下載
第九週Chapter 4 Greedy algorithms (4/5)線上觀看MP4下載
第九週Chapter 4 Greedy algorithms (5/5)線上觀看MP4下載
第十週Chapter 5 Divide and conquer (1/2)線上觀看MP4下載
第十週Chapter 5 Divide and conquer (2/2)線上觀看MP4下載
第十三週Chapter 6 Dynamic programming (1/3)線上觀看MP4下載
第十四週Chapter 6 Dynamic programming (2/3)線上觀看MP4下載
第十四週Chapter 6 Dynamic programming (3/3)線上觀看MP4下載
第十五週Chapter 7 Network flow (1/2)線上觀看MP4下載
第十五週Chapter 7 Network flow (2/2)線上觀看MP4下載
第十六週Chapter 8 Beyond Polynomial running times (1/2)線上觀看MP4下載
第十六週Chapter 8 Beyond Polynomial running times (2/2)線上觀看MP4下載
第十七週Chapter 9 Linear Programming線上觀看MP4下載

課程目標

The study of algorithms is at the heart of the computer science.
This course focuses on fundamental results in this area, including the unifying principles and underlying concepts of algorithm design and analysis.

We expect everyone to be comfortable reading, even writing, proofs. Several programming assignments will be given to embody the ideas.

Moreover, we hope that everyone can learn general problem-solving techniques.

Intended audience:
1. who are interested in computer science
2. who are computing something
3. who are learning problem-solving techniques

 

課程章節

主題 內容綱要
Introduction Stable matching and some representative problems
Basics of algorithm analysis Asymptotic order of growth, case study on stable matching
Graphs Connectivity, traversal, bipartiteness testing, topological sorting
Greedy algorithmsInterval scheduling, shortest paths, minimum spanning tree, (Huffman codes)
Divide and conquerMergesort, recurrence relations, counting inversions, finding the closest pair of points, (convolutions & FFT)
Dynamic programming Weighted interval scheduling, memoization/iteration, segented least squares, subset sums & Knapsacks, RNA secondary structure, sequence alignment, shortest paths 
Network flowMaximum-flow and min-cut, bipartite matching, airline scheduling
NP and computational intractabilityPolynomial-time reductions, satisfiability, NP, NP-completeness, graph coloring
PSPACEOptional
Approximation algorithmsOptional
Local search 
Randomized algorithmsOptional
Algorithms that run forever Optional


課程書目

§ Required text
J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2006.
(J. Kleinberg, 20 Best Brains under 40, Discover Magazine, 2008)

§ Reference book
S. Dasgupta, C. Papadimitriou, and U. Vazirani, Algorithms, McGraw-Hill, 2007.

 

評分標準

項目百分比
Homework assignments15%
Programming assignments10%
Projects25%
Two open book in-class tests25%+25%

本課程行事曆提供課程進度與考試資訊參考。

學期週次
上課日期
參考課程進度

第一週

09/15、09/17
  • 課程介紹、Chapter1
第二週09/22、09/24
  • Chapter1、Chapter2
第三週09/29、10/01
  • Chapter2、Chapter3
第四週10/06、10/08
  • Chapter3
第五週10/13、10/15
  • Chapter3、Chapter4
第六週10/20、10/22
  • 停課
第七週10/27、10/29
  • Chapter4
第八週11/03、11/05
  • 停課
第九週11/10、11/12
  • Chapter4
第十週11/17、11/19
  • Chapter5
第十一週11/24、11/26
  • 期中考週
第十二週12/01、12/03
  • 期中考題檢討
第十三週12/08、12/10
  • Chapter6
第十四週12/15、12/17
  • Chapter6
第十五週12/22、12/24
  • Chapter7
第十六週12/29、01/31
  • Chapter8
第十七週01/05、01/07
  • Chapter9
第十八週01/12、01/14
  • 期末考週