演算法實戰班

演算法實戰班

本課程將指導學員學習重要的資料結構與演算法。我們以Princeton的演算法教科書 [0, 1] 為主軸,佐以LeetCode [1] 相關的題目為輔,精選適當難度的題目提供給已具備基礎程式能力的學員提升解決問題的能力。此課程也適合作為高中108課綱程式訓練之先修或課輔 [2, 3]。



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

課程大綱

0. 演算法分析 (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)、Knuth-Morris-Prat (KMP) 演算法、正則表示法 (regular expression)、霍夫曼樹 (Huffman tree)
6. 動態規畫 (dynamic programming, DP)
7. 組合搜尋 (combinatorial search) 與回溯法 (backtracking)
8. 貪婪演算法 (greedy algorithms)
9. 隨機演算法 (randomized algorithms)
---- 亂數生成演算法、蒙地卡羅演算法 (Monte Carlo algorithms)、拉斯維加斯演算法 (Las Vegas Algorithms)
10. 平行計算 (parallel computing)
11. 計算理論 (computing theory)
---- 圖靈機 (Turing machine)、P 與 NP 問題、NP-complete 問題
12. 量子計算 (quantum computing)

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

適合對象

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

開發環境

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

近期班次

  • 第373期 停開一期

    課程類別:373假日班下午

    開課日期:2022.12.10 ~ 2023.01.15

    上課時間:

    週 (六)(日) 1:00 PM ~ 4:20 PM

    學費:新生新台幣6500元整

    注意事項:

    12/31(六) -1/1(日) 元旦連假不上課,課程日期已順延。

    因1/7(六)補班,不上課

    此期課程共9堂課,一堂課上3小時20分鐘。

    學費調漲公告,詳情連結

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

    本班會視疫情滾動式調整為同步遠距教學。(會再另外EMAIL通知學員),詳情連結

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

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

    停止報名

  • 第376期 招生中

    課程類別:寒假密集班下午

    開課日期:2023.01.04 ~ 2023.01.17

    上課時間:

    週 (一)(二)(三)(四)(五) 2:00 PM ~ 5:00 PM

    學費:新生新台幣6500元整

    寒假密集班優惠方案:

    即日起至12/10前繳費,可享1000元的學費優惠折抵,12/11至12/25繳費,可享500元的學費優惠折抵。(原訓練班優惠資格可以一起使用)

    繳費優惠期限至:12/25 23:59 截止 12/26恢復原價計算。

    *使用方式: 1.若有優惠資格請先選擇好 2.轉帳時請依照轉帳期限的優惠折扣自行扣除該金額,再進行轉帳即可。

    注意事項:

    1.限定「轉帳」方式繳費以判定繳費日期!敬請留意!

    2.若「轉帳」超過優惠期限,會請學員補繳差額。

    3.繳費完,務必回傳繳費證明至官網信箱 才是完成報名。

    注意事項:

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

    本班會視疫情滾動式調整為同步遠距教學。(會再另外EMAIL通知學員)

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

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

  • 講師介紹

    • 國立臺灣大學資訊工程學 博士候選人

    • 交通大學電信工程研究所 碩士

    • 中央大學電機工程學系 學士

    (一) 服務經驗

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

    (二) 研究興趣

    • Financial computing
    • Analysis and design of algorithms
    • Quantitative finance, econometrics, and algorithmic trading
    • Statistics and machine learning
    • Computing theory and programming language design

    (三) 程式語言

    • MATLAB, Java, C, C++, Python, C#

    (四) 教學特色

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