一、課程說明(Course Description)

*欲加簽本課程的同學,請務必在開學第一周前加簽,並參加第一次課堂上課。



**本課程可以參考網路解答或使用AI的解答,但禁止直接抄襲。



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


AI 使用規則: 有條件開放,請註明如何使用生成式AI於課程產出 Conditionally open; please specify how
generative AI will be used in course output







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











課程大網:











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











14. Dynamic Programming







15. Greedy Algorithms







16. Amortized Analysis











VI. Graph Algorithms











20. Elementary Graph Algorithms







21. Minimum Spanning Trees







22. Single-Source Shortest Paths







23. All-Pairs Shortest Paths











VII. Selected Topics







33. Machine Learning Algorithm (option)







34. NP-Completeness







35. Approximation Algorithms















二、指定用書(Text Books)











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







edition, the MIT press, 2022.















三、參考書籍(References)











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







edition, Jones and Bartlett, 2010















四、教學方式(Teaching Method)











課堂投影片教學。











五、成績考核(Evaluation)











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











2. 作業 (紙本)











3. 期中考











4. 期末考











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