本課程旨在帶領同學進入演算法的研習。演算法是資料結構的延續。學習過演算法才能設計出好的程式。我們在這門課當中將教導同學各種演算法的設計方法、演算法的複雜度觀念與分析、NP-完備理論、以及如何設計演算法解NP-完備問題等。學習這門課後,學生將在程式設計、演算法的設計與選擇上有明顯的專業素養。週次 課程內容
第一週 第一章 介紹
第二週 第二章 演算法與問題之分析
第三週 第二章 演算法與問題之分析
第四週 第三章 貪婪演算法 (繳交第二章作業)
第五週 第三章 貪婪演算法
第六週 第四章 淘汰與搜尋法 (繳交第三章作業)
第七週 第五章 分而治之法 (繳交第四章作業)
第八週 第五章 分而治之法
第九週 期中考 (繳交第五章作業)
第十週 第六章 動態規劃
第十一週 第六章 動態規劃
第十二週 第七章 NP-完備理論 (繳交第六章作業)
第十三週 第七章 NP-完備理論
第十四週 第七章 NP-完備理論 / 第八章 處理NP-完備問題
第十五週 第八章 處理NP-完備問題 (繳交第七章作業)
第十六週 第八章 處理NP-完備問題
第十七週 第八章 處理NP-完備問題
第十八週 期末考This course is designed to lead students into the study of algorithms. Algorithms are a continuation of data structures. Only by learning algorithms can you design good programs. In this course, we will teach students the design methods of various algorithms, the concept and analysis of complexity of algorithms, NP-complete theory, and how to design algorithms to solve NP-complete problems, etc. After studying this course, students will have obvious professional qualities in programming and algorithm design and selection. Weekly course content
Week 1 Chapter 1 Introduction
Week 2 Chapter 2 Analysis of Algorithms and Problems
Week 3 Chapter 2 Analysis of Algorithms and Problems
Week 4 Chapter 3 Greedy Algorithm (Submit Chapter 2 Assignment)
Week 5 Chapter 3 Greedy Algorithm
Week 6 Chapter 4 Elimination and Search Method (Submit Chapter 3 Assignment)
Week 7 Chapter 5 Divide and Conquer (Submit Chapter 4 Assignment)
Week 8 Chapter 5 Divide and Conquer
Ninth week mid-term exam (submit Chapter 5 homework)
Week 10 Chapter 6 Dynamic Programming
Week 11 Chapter 6 Dynamic Programming
Week 12 Chapter 7 NP-Complete Theory (Submit Chapter 6 Assignment)
Week 13 Chapter 7 NP-Complete Theory
Week 14 Chapter 7 NP-Complete Theory / Chapter 8 Dealing with NP-Complete Problems
Week 15 Chapter 8 Dealing with NP-Complete Problems (Chapter 7 Assignment Submitted)
Week 16 Chapter 8 Dealing with NP-Complete Problems
Week 17 Chapter 8 Dealing with NP-Complete Problems
Week 18 Final Exam
在資訊科學裡,演算法指的是解決一個特定計算問題的流程。這個流程清楚定義了一個可執行步驟的順序,依次計算問題的輸入,得到輸出結果。在這個課程裡面,同學們將透過範例問題的分析,學習到一些常見的演算法設計理念,與評估演算法優缺點的技巧。 1. 透過課堂講解,了解演算法的理論與應用。 2. 透過作業練習,掌握設計與分析演算法的技巧。
In information science, an algorithm refers to a process for solving a specific computational problem. This process clearly defines a sequence of executable steps that sequentially calculate the input to the problem and obtain the output. In this course, students will learn some common algorithm design concepts and techniques for evaluating the advantages and disadvantages of algorithms through the analysis of example problems. 1. Understand the theory and application of algorithms through classroom explanations. 2. Master the skills of designing and analyzing algorithms through homework exercises.
演算法(Algorithms)第二版,戴顯權著,滄海書局
Algorithms (Second Edition), written by Dai Xianquan, Canghai Bookstore
評分項目 Grading Method | 配分比例 Grading percentage | 說明 Description |
---|---|---|
小考一小考一 Quiz 1 |
15 | |
期中考期中考 midterm exam |
30 | |
小考一小考一 Quiz 1 |
15 | |
期末考期末考 final exam |
30 | |
出席與作業出席與作業 Attendance and homework |
10 |