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

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

For perfect learning results, please buy textbooks!

Instructor(s) College of Electrical and Computer Engineering Prof. Hui-Ru Jiang
Course Credits 3 Credits
Academic Year 103 Academic Year
Level College Students
Prior Knowledge 1. Data structures
 2. Discrete mathematics
 3. Computer programming in C
 4. Computer programming in C++
Related Resources Course Video   Course Syllabus   Course Calendar 

WeekCourse ContentCourse Video
Ch0 系統工程概論
Fundamental Concepts of System Engineering
Watch Online
Ch1 可變結構系統理論 (1/2)
Variable Structure System Theory
Watch Online
Ch1 可變結構系統理論 (2/2)
Variable Structure System Theory
Watch Online
Ch2 順滑模態原理 (1/2)
Sliding Mode Theory
Watch Online
Ch2 順滑模態原理 (2/2)
Sliding Mode Theory
Watch Online
Ch3 順滑模態控制器設計 (1/2)
Sliding Mode Controller Design
Watch Online
Ch3 順滑模態控制器設計 (2/2)
Sliding Mode Controller Design
Watch Online
Ch4 線性非時變系統之順滑模態控制法則設計 (1/3)
Sliding Mode Controller Design of LTI Systems
Watch Online
Ch4 線性非時變系統之順滑模態控制法則設計 (2/3)
Sliding Mode Controller Design of LTI Systems
Watch Online
Ch4 線性非時變系統之順滑模態控制法則設計 (3/3)
Sliding Mode Controller Design of LTI Systems
Watch Online
Ch5 輸出回授型之順滑模態控制器設計
Output-Feedback Sliding Mode Controller Design
Watch Online
Ch6 機械手臂之順滑模態控制器設計 (1/2)
Sliding Mode Controller Design of Robotic Manipulators
Watch Online
Ch6 機械手臂之順滑模態控制器設計 (2/2)
Sliding Mode Controller Design of Robotic Manipulators
Watch Online
Ch7 虛擬根值法之順滑模態控制
Pseudo Eigenvalue Method
Watch Online
Ch8 旋轉式倒立單擺之積分型順滑模態控制
Integral Sliding Mode Controller Design of a Rotary Inverted Pendulum
Watch Online
 

課程目標

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
  • 期末考週