演算法實戰班

演算法實戰班

本課程將指導學員學習重要的資料結構與演算法。我們以 Princeton 出版社的演算法教科書 [0] 為主軸,佐以 LeetCode [1] 相關的題目為輔,精選適當難度的題目提供給已具備基礎程式能力的學員提升解決問題的能力。此課程亦適合作為高中 108 課綱程式訓練之先修或課輔 [2, 3],並涵蓋 APCS 大學先修程式檢定考試的內容。本課程的最後導入實務上會使用到的隨機演算法、近似演算法、狀態機等相關的主題,增加學員在資訊領域上的廣度。



[0] Robert Sedgewick and Kevin Wayne, Algorithms, 4/e, 2011.
[1] LeetCode
[2] 十二年國民基本教育課程綱要國民中學暨普通型高級中等學校 - 科技領域
[3] APCS 大學程式設計先修檢測

課程大綱

0. 演算法分析 (analysis of algorithms: time complexity)
1. 串鏈 (linked list)、堆疊 (stack)、佇列 (queue)
2. 二元搜尋樹 (binary search tree) 與紅黑樹 (red-black tree)
3. 雜湊 (hashing) 與雜湊表 (hash table)
4. 無向圖 (undirected graph) 與有向圖 (digraph)
-- 深度優先搜尋 (depth-first search, DFS)
-- 廣度優先搜尋 (breadth-first search, BFS)
-- 拓樸排序 (topological sort)
-- 最小生成樹 (minimum spanning tree)
-- 最短路徑演算法 (shortest path)
5. 字串 (string)
-- 基數排序 (radix sort)
-- 字典樹 (trie)
-- Knuth-Morris-Prat (KMP) 演算法
-- 正則表示法 (regular expression)
-- 霍夫曼樹 (Huffman tree)
6. 動態規畫 (dynamic programming, DP)
7. 貪婪演算法 (greedy algorithms)
8. 組合搜尋 (combinatorial search) 與回溯法 (backtracking)
9. 隨機演算法 (randomized algorithms)
-- 亂數生成演算法
-- 蒙地卡羅演算法 (Monte Carlo algorithms)
-- 拉斯維加斯演算法 (Las Vegas algorithms)
10. 近似演算法 (approximation algorithms)
11. 計算理論 (computing theory)
-- 有限狀態機 (finite state machine)
-- 圖靈機 (the Turing machine)
-- NP 完備問題 (NP-complete problems)

註0:更新於 2024-06-15。
註1:課程內容將根據當時上課狀況會有適當調整,詳見課程網頁

適合對象

本課程適合掌握基本程式能力並想加點演算法技能樹的學員;不限程式語言,若具備 C、C++、Java、C#、JavaScript 等語言能力者佳,Python 使用者亦可;必要能力為迴圈 (loop)、陣列 (array)、與遞迴 (recursion),已初步認識結構 (struct)、類別 (class)、物件 (object) 等概念者佳。

開發環境

任何瀏覽器且有網路的環境下皆可進行練習。

實體課程注意事項

本班為實體課程,常見QA詳情連結

校園防疫措施詳情連結

公務員全程參與課程學習後可於課程結束後申請登錄公務人員學習時數

課程影片觀看期限至課程結束後一週關閉

(一)退費期限:開課日後⅓時數內,詳情連結

(二)查詢結業狀況:結業名單連結

近期班次

  • 第434期 招生中

    課程類別:2025寒密下午班

    開課日期:2025.01.13 ~ 2025.01.23

    上課時間:

    週 (一)(二)(三)(四) 1:45 PM ~ 5:30 PM

    學費:新生新台幣6500元整

    注意事項:
    1. 每週星期一至星期四:13:45 ~ 17:30 (3.75 H) ;週五不上課
    2. 共八堂課

  • 講師介紹

    (一) 經驗

    臺灣大學 腦與心智科學研究所 兼任研究助理 (2014.8--present)
    臺灣大學 資訊工程學系 資訊系統訓練班 講師 (2014.1--present)
    中國信託商業銀行 全球金融商品交易處 期貨自營部 實習研究員 (2014.1--2023.9)
    臺灣大學 資訊工程學系 課程助教:計算理論、離散數學、財務演算法 (2012.9--2024.7)

    (二) 學歷

    臺灣大學資訊工程研究所 博士
    交通大學電信工程研究所 碩士
    中央大學電機工程學系 學士

    (三) 研究興趣 / 專長

    Financial Engineeering, Quantitative Finance, and Algorithmic Trading
    Analysis & Design of Algorithms
    Statistics, Data Science, Machine Learning / Deep Learning
    Computing Theory and Programming Languages
    System Design & Administration and High Performance Computing

    (四) 教學特色

    中文授課,課程教材以英文為主。適合規劃出國求學或對科學 / 技術理論有興趣的學員。
    2014 年至本班教學,累計授課時數至 2024 年 8 月 12 日為 11850 小時。