C++進階:演算法-APCS、LeetCode

C++進階:演算法-APCS、LeetCode

(※ 本課程難度較高,加上課程較為密集,建議熟悉C/C++並且對資料結構有基本認識)
本課程為銜接 C/C++ 基礎班之進階課程,授課內容著重在介紹常見多種演算法:排序、搜尋、分治法、貪婪演算法、動態規劃、廣度優先搜尋、深度優先搜尋、最小生成樹、網路流、最短路徑。
演算法(algorithm)把解決問題的思路具體化,利用定義清楚的指令於解決數學計算、資料處理、自動推理,也同時比較評估做法的優劣。
參考書目為臺灣許多大學所使用的教科書:Introduction to Algorithm,期望在課程中帶領學員了解各式演算法的原理與應用,並且逐章練習相關 LeetCode 面試題與 APCS實作題 。

授課時間的分配約為課堂講授(40%)、範例程式碼講解(25%)、學生練習(35%),本門課另有5次作業供學員練習,期望同學可以從大量實作與練習中形成肌肉記憶並熟悉常見資料結構的使用。

課程大綱

Class 01. 演算法入門
Class 02. 複雜度估算(Complexity)
Class 03. P 與 NP 問題
Class 04. 排列 (Sort)
===Homework 1===
Class 05. 搜尋 (Search)
Class 06. 分治法(Divide and Conquer)
===Homework 2===
Class 07. 貪婪演算法(Greedy Algorithm)
Class 08. 動態規劃(Dynamic programming)
===Homework 3===
Class 08. 圖論(Graph)
Class 10. 廣度優先搜尋(BFS)
Class 11. 深度優先搜尋(DFS)
===Homework 4===
Class 12. 最小生成樹(Minimal Spanning Tree)
Class 13. 網路流(Flow Network)
Class 14. 最短路徑(Shortest Path)
===Homework 5===

※本門課第一堂簡介與複雜度介紹與資料結構班相同
※課程內容將視實際上課情形加以增減
※本課程評分方式為課後習題、LeetCode指定題數、APCS歷屆試題

適合對象

想了解演算法、準備大學課程、有面試軟體工程師或刷題需求者、準備升學APCS考試。建議國高中以上並有任一程式語言基礎(C/C++,Python佳)、修習過資料結構或有相關概念之學生。
(※ 本課程難度較高,加上課程較為密集,建議熟悉C/C++並且對資料結構有基本認識)

開發環境

Codeblocks

實體課程注意事項

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

校園防疫措施詳情連結

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

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

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

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

近期班次

講師介紹

(一)學歷

  • 國立臺灣大學電機工程學碩士學位
  • 國立臺灣大學機械工程學學士學位
  • 國立臺灣大學醫學系學士班

(二)經歷

  • 台大醫院見習醫師
  • IRHOCS 2015國際機器人實作競賽手臂機器人組 冠軍
  • 2015 上銀智慧手競賽佳作
  • 2020 iT邦幫忙鐵人賽 Blockchain組 冠軍

(三) 研究領域

  • 電腦視覺 機器學習 區塊鏈 智能合約

(四) 使用語言

  • C/C++,R,Python,PHP,Solidity

(五) 教學經驗

  • 2016年至本班教學,累計授課時數至2024年3月1日為2,970小時,為資深講師。

(六) 相關著作 區塊鏈生存指南:帶你用 Python 寫出區塊鏈!