國立嘉義大學112學年度第2學期教學大綱

課程代碼11223470012上課學制大學部
課程名稱演算法導論 Introduction to Algorithms授課教師 (師資來源)王皓立(資工系)
教學型態部別日間部
課程類別專業必修課程部校定系定
授課學期數1開課系所資訊工程學系
開課班級數1新開設課程
國外學校合作遠距課程課程線上平台網址elearning.ncyu.edu.tw
預計總修課人數60教師信箱haoli@mail.ncyu.edu.tw
學分(時數)3.0 (3.0)上課班級資工系2年甲班
先修科目必選修別必修
上課地點圖書資訊大樓 A31-217 授課語言國語
證照關係本程程可為資訊相關證作基礎準備。晤談時間星期1第1節~第4節, 地點:理工大樓-618
永續發展目標[SDGs]之關聯性優質教育; 工業化、創新及基礎建設
課程大網網址https://web085004.adm.ncyu.edu.tw/Syllabus/Syllabus_Rpt.aspx?CrsCode=11223470012
備 註
本課程之教學主題、內容或活動是否與性別平等議題有相關之處:否本課是否使用原文教材或原文書進行教學:是

◎系所教育目標:
為配合國家建設及產業發展之需要,本系以培育中高級資訊科技人才為目的。在教學理念上除了注重理論的探討之外並強調實際動手的能力,以期培育出具有深厚學識基礎並能實際應用的資訊科技人才。在專業必修中涵蓋基礎理論、電腦硬體、作業系統、資料結構及計算機網路等方面,並有畢業專題製作,使學生紮實基礎,同時課程包含四個專業學程,兼顧學術及實務之分流與訓練。分別為一:軟體工程及知識工程學程、二:互動多媒體學程、三:網路及資訊安全學程、四:資訊系統開發實務學程,以期作為日後升學就業的準備。
◎核心能力關聯性
1.應用數理邏輯推理之能力4 關聯性稍強
2.發掘、分析及解決問題之能力3 關聯性中等
◎本學科內容概述:
本課程前段會介紹The Complexity of Algorithms的基礎知識,後段會介紹各類不同的演算法策略,包含:The Greedy Method, The Divide-and-Conquer Strategy, Tree Searching Strategies, Prune-and-Search和Dynamic Programming。每個策略會說明其概念,以及延申出的各種演算法。
◎本學科教學內容大綱:
1.The Complexity of Algorithms的基礎知識 2.演算法策略: The Greedy Method 3.演算法策略:The Divide-and-Conquer Strategy 4.演算法策略:Tree Searching Strategies 5.演算法策略:Prune-and-Search 6.演算法策略:Dynamic Programming
◎本學科學習目標:
這門課的教育目標有三:
1 建立演算法領域紮實的基礎
2 訓練學生設計演算法解決問題的能力
3 並使其熟悉演算法的分析方法,進而能延伸至各樣的研究領域。
◎教學進度:
週次主題教學內容教學方法
01
02/20
課程介紹介紹本課程目標、進行方式、配分比例、與內容大綱。講授。
授課方式:面授
02
02/27
Ch 1. Introduction of Algorithms/認識演算法基本知識第一章Introduction of Algorithms
1 何謂演算法
2 為何要學演算法
3 介紹演算法實例
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
03
03/05
Ch 2. The Complexity of Algorithms and The Lower Bounds of Problems//認識分析演算法的複雜度第二章The Complexity of Algorithms
1 什麼是演算法的複雜度
2 在最佳情況下來分析演算法
3 在最差情況下來分析演算法
4 在平均情況下來分析演算法
操作/實作、講授。
授課方式:遠距(非同步)
04
03/12
Ch 2 insert sort,binary search//以例子學習演算法的複雜度1 在最佳/最差/平均情況下來分析insert sort
2 在最佳/最差/平均情況下來分析binary search
3 演算法複雜度的估計
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
05
03/19
Ch2 select sort, quick sort/以例子學習演算法的複雜度1 在最佳/最差/平均情況下來分析select sort
2 在最佳/最差/平均情況下來分析quick sort
3 在最佳/最差/平均情況下來分析2d ranking finding
操作/實作、講授。
授課方式:遠距(非同步)
06
03/26
Ch2 lower bounds of problems/認識評估問題困難度的方法1 介紹lower bounds of problems
2 在最佳/最差/平均情況下來分析sort problem
3 介紹提高lower bounds of problems的技術
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
07
04/02
校外研習活動 (放假)校外研習活動 (放假)操作/實作、講授。
08
04/09
Ch 3. The Greedy Method/認識貪婪演算法1 介紹貪婪演算法基本觀念
2 介紹Minimum spanning trees的兩種方法
3 介紹Dijkstra’s algorithm
操作/實作、講授。
授課方式:遠距(同步)
09
04/16
期中考期中考期中考。
授課方式:面授
10
04/23
Ch 3. The Greedy Method/學習貪婪演算法的實例1 介紹2-way merging problem
2 介紹Huffman codes
3 介紹minimal cycle basis problem
操作/實作、講授。
授課方式:遠距(非同步)
11
04/30
Ch 4. The Divide-and-Conquer Strategy/認識個個擊破演算法1 介紹個個擊破演算法基本觀念
2 介紹Closest Pair Problem
3 介紹2-D Maxima Finding Problem
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
12
05/07
Ch 4. The Divide-and-Conquer Strategy/認識個個擊破演算法1 介紹Convex Hull Problem
2 介紹Voronoi Diagram
3 介紹Fast Fourier transform
操作/實作、講授。
授課方式:遠距(非同步)
13
05/14
Ch 5. Tree Searching Strategies/學習樹狀搜尋演算法實例1 介紹Tree Searching Strategies基本觀念
2 介紹Boolean Satisfiability Problem
3 介紹Hamiltonian Cycle Problem
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
14
05/21
Ch 5. Tree Searching Strategies/學習樹狀搜尋演算法實例1 介紹DFS/BFS/Hill Climbing
2 介紹Best-First Search Strategy
3 介紹Personnel Assignment Problem
操作/實作、講授。
授課方式:遠距(非同步)
15
05/28
Ch 6. Prune-and-Search/認識分割演算法1 介紹分割演算法基本觀念
2 介紹selection problem
3 介紹線性規劃問題
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
16
06/04
Ch 7. Dynamic Programming/ 認識動態規劃演算法1 介紹動態規劃演算法基本觀念
2 介紹費氏數列
3 介紹Forward/Backward Approach
操作/實作、講授。
授課方式:遠距(非同步)
17
06/11
Backtracking Strategy/認識回溯演算法1 介紹回溯演算法基本觀念
2 介紹8皇后問題
3 介紹排列問題
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
18
06/18
期末考期末考期末考。
授課方式:面授
◎課程要求:
本課程須具備程式語言(C/C++ or python)實作能力。
本課程須了解資料結構(tree, linked list, graph)及實作。
◎成績考核
課堂參與討論15% : 本課程每週課程都會點名。
期中考15%
期末考15%
作業/習題演練55%
◎參考書目與學習資源
教科書:
Introduction to the Design and Analysis of Algorithms(A Strategic Approach)
by R. C. T. Lee, , S. S. Tseng, R. C. Chang, Y. T. Tsai

McGraw Hill 2005 旗標圖書 02-23963257



參考書:

1. Introduction to Algorithms

by Cormen, Leiserson, Rivest, 2nd Edition, MIT Press (開發圖書) ISBN: 0-262-03293-7

2. Computer Algorithms,

by Horowitz, Sahni, and Rajasekaran, Computer Science Press Inc., 1998

3. Algorithm Design: Foundations, Analysis, and Internet Examples

Michael T. Goodrich, Univ. of California, Irvine, Roberto Tamassia, Brown Univ.

ISBN: 978-0-471-38365-9
◎教材講義
請改以帳號登入校務系統選擇全校課程查詢方能查看教材講義
適合修習對象:本課程須具備程式語言(C/C++ or python)實作能力。
本課程須了解資料結構(tree, linked list, graph)及實作。
本課程會配合演算法主題,使用leetcode平台上的題目進行練習與作業。
教學方式: ■提供線上課程主要及補充教材 ■提供線上非同步教學 ■有線上教師或線上助教 ■提供面授教學, 次數:3次, 總時數:9.0小時 ■提供線上同步教學, 次數:15次, 總時數:30小時 ■每週上課時數(遠距教學):2.17小時
學習管理系統: 1、提供給系統管理者進行學習管理系統資料庫管理 ■個人資料 ■課程資訊 2、提供教師(助教)、學生必要之學習管理系統功能 ■最新消息發佈及覽 ■教材內容設計、觀看及下載 ■成績系統管理及查詢 ■進行線上測驗及發佈 ■學習資訊 ■互動式學習設計(聊天室或討論區) ■各種教學活動之功能呈現
作業繳交方式: ■提供線上說明作業內容 ■線上即時作業填答 ■作業檔案上傳及下載 ■線上測驗 ■成績查詢
上課注意事項:
本課程看影片與寫程式作業將占據不少珍貴的睡眠時間,修習前請作好心理準備。
本課程採取遠距(非同步與同步)上課,第一週、期中考與期末考採用實體。
本課程學習指引:
每週同學先自行觀看教學影片並完成作業,上課時間(採用MS teams)則進行重點說明,抽點,作業檢討,回覆問題。
若是對影片或作業有疑問,可在每週回饋區告訴老師,老師會在同步上課時解說。
實作leetcode程式若有困難,都可在leetcode討論區,google,youtube找到參考答案,請參考後再自行嘗試。
1.請尊重智慧財產權、使用正版教科書並禁止非法影印。
2.請重視性別平等教育之重要性,在各項學生集會場合、輔導及教學過程中,隨時向學生宣導正確的性別平 等觀念及尊重多元性別,並關心班上學生感情及生活事項,隨時予以適當的輔導,建立學生正確的性別平等意識。