課程代碼 |
G0D01901
|
課程中文名稱 |
演算法
|
課程英文名稱 |
Algorithms
|
學分數 |
3.0
|
必選修 |
必修
|
開課班級 |
四技資工三甲
|
任課教師 |
鄭淑真
|
上課教室(時間) |
週一
|
第2節
|
(W0607)
|
週一
|
第3節
|
(W0607)
|
週一
|
第4節
|
(W0607)
|
|
課程時數 |
3
|
實習時數 |
0
|
授課語言 |
1.華語
|
輔導考證 |
無
|
課程概述 |
本課程使用C++虛擬碼來介紹演算法,包含演算法的設計與複雜度分析。針對某些問題提出了多種解決的技巧。
|
先修科目或預備能力 |
必須先修讀過程式設計課程才能選修此門課。
|
課程學習目標與核心能力之對應
|
編號 | 中文課程學習目標 | 英文課程學習目標 | 對應系指標 |
1
|
1.能瞭解各種演算法所適用之工程問題
|
|
1 工程知識
|
2
|
2.能夠閱讀程式碼,並瞭解各種演算法之步驟,開發完整的程式
|
|
2 資訊能力
|
3
|
3.能使用適當的程式語言進行程式設計
|
|
3 實務能力
|
4
|
4.能講演示範其解決方法,呈現所得之結果
|
|
5 報告溝通
|
5
|
5.能針對工程問題有效辨識適當的解決方法
|
|
6 辨識構思
|
6
|
6.能瞭解全球與社會的脈動、培養自我適應社會環境變遷的能力。
|
|
10 社會人文
|
|
就業力培養目標 |
|
校指標 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
專業知識 |
實務技能 |
資訊能力 |
整合創新 |
外語能力 |
熱誠抗壓 |
表達溝通 |
敬業合群 |
人文素養 |
服務關懷 |
|
20% |
20% |
30% |
0% |
0% |
10% |
10% |
0% |
10% |
0% |
|
系指標 |
1 |
3 |
2 |
4 |
9 |
6 |
5 |
7 |
10 |
8 |
|
工程知識 |
實務能力 |
資訊能力 |
規劃整合 |
外語能力 |
辨識構思 |
報告溝通 |
管理合作 |
社會人文 |
職業倫理 |
|
20% |
20% |
30% |
0% |
0% |
10% |
10% |
0% |
10% |
0% |
|
中文課程大綱 |
1. 演算法複雜度分析與量級(Order)的概念 2. Divide and Conquer 各個擊破演算法 Binary Search二元搜尋法,Merge Sort合併排序法,Quick Sort快速排序法,Strassen矩陣相乘演算法 3. Dynamic Programming動態規劃 二項式係數,Floyd’s Algorithm佛洛伊德最短路徑演算法,TSP售貨員旅行問題 4. Greedy Algorithm貪婪演算法 Minimal Spanning Tree最小生成樹,Prim與Kruskal演算法,Dijkstra最短路徑演算法,排程,Knapsack背包問題 5. Backtracking回溯 n-皇后問題,Knapsack背包問題 6. Branch and Bound分枝界線演算法 Knapsack背包問題,TSP售貨員旅行問題
|
英/日文課程大綱 |
1. Algorithms: Efficiency, Analysis, and Order 2. Divide and Conquer Binary Search, Merge Sort, Quick Sort, Strassen 3. Dynamic Programming Binomial Coefficient, Floyd’s Algorithm, TSP 4. Greedy Algorithm Minimal Spanning Tree, Prim, Kruskal, Dijkstra, Scheduling, Knapsack Problem 5. Backtracking n-queens problem, Knapsack Problem 6. Branch and Bound Knapsack Problem, TSP
|
課程進度表 |
1. 演算法複雜度分析與量級(Order)的概念(6 hrs) 2. Divide and Conquer 各個擊破演算法(9 hrs) Binary Search二元搜尋法,Merge Sort合併排序法,Quick Sort快速排序法,Strassen矩陣相乘演算法 3. Dynamic Programming動態規劃(9 hrs) 二項式係數,Floyd’s Algorithm佛洛伊德最短路徑演算法,TSP售貨員旅行問題 Midterm Exam 4. Greedy Algorithm貪婪演算法(9 hrs) Minimal Spanning Tree最小生成樹,Prim與Kruskal演算法,Dijkstra最短路徑演算法,排程,Knapsack背包問題 5. Backtracking回溯(6 hrs) n-皇后問題,Knapsack背包問題 6. Branch and Bound分枝界線演算法(9 hrs) Knapsack背包問題,TSP售貨員旅行問題 Final Exam
|
課程融入SDGs |
|
期考調查 |
期中考(第9週)考試方式 |
|
期末考(第18週)考試方式 |
|
其他週考試考試週次與方式 |
|
|
教學方式與評量方式 |
課程學習目標 | 教學方式 | 評量方式 |
1.能瞭解各種演算法所適用之工程問題 |
課堂講授
|
筆試
(
平時
)
筆試
(
期中
)
筆試
(
期末
)
|
2.能夠閱讀程式碼,並瞭解各種演算法之步驟,開發完整的程式 |
課堂講授
|
筆試
(
期中
)
筆試
(
期末
)
實作
(
平時
)
|
3.能使用適當的程式語言進行程式設計 |
實作演練
|
實作
(
平時
)
|
4.能講演示範其解決方法,呈現所得之結果 |
實作演練
|
口試
(
平時
)
|
5.能針對工程問題有效辨識適當的解決方法 |
課堂講授
|
筆試
(
期中
)
筆試
(
期末
)
|
6.能瞭解全球與社會的脈動、培養自我適應社會環境變遷的能力。 |
課堂講授
|
實作
(
平時
)
|
|
指定用書 |
書名 |
演算法—使用C++虛擬碼Foundations of Algorithms—using C++ Pseudocode
|
作者 |
蔡宗翰 譯
|
書局 |
碁峰
|
年份 |
|
國際標準書號(ISBN) |
|
版本 |
|
請同學尊重智慧財產權,使用正版教科書,不得非法影印,以免觸犯智慧財產權相關法令
。 |
參考書籍 |
|
教學軟體 |
|
課程規範 |
|