一、課程說明(Course Description)



先修:計算機程式語言設計(一)及(二)、資料結構



目的:讓學生具有發現問題、定義問題、設計程式以解決問題的能力,並加強學生的邏輯思考能力。



課程大網:



I. Foundations



1. The Role of Algorithms in Computing

  2. Getting Started

3. Growth of Functions

4. Divide and Conquer



II. Sorting and Order Statistics



6. Heapsort

7. Quicksort

8. Sorting In Linear Time

9. Medians and Order Statistics



IV. Advanced Design and Analysis Techniques



15. Dynamic Programming

16. Greedy Algorithms + Branch-and-Bound Algorithm

17. Amortized Analysis



VI. Graph Algorithms



22. Elementary Graph Algorithms

23. Minimum Spanning Trees

24. Single-Source Shortest Paths

25. All-Pairs Shortest Paths

26. Maximum Flow (option)



VII. Selected Topics



34. NP-Completeness

35. Approximation Algorithms



二、指定用書(Text Books)



T. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, 3rd

edition, the MIT press, 2009.





三、參考書籍(References)



Richard Neapolitan and Kumarss Naimipour, Foundations of Algorithms, 4th

edition, Jones and Bartlett, 2010





四、教學方式(Teaching Method)



課堂投影片教學。



五、成績考核(Evaluation)



1. 課堂表現 (含隨堂考)

2. 作業 (紙本及程式)

3. 小考

4. 期中考

5. 期末考

(以上成績百分比,將視課堂狀況決定)