C++進階:資料結構-APCS、LeetCode

C++進階:資料結構-APCS、LeetCode

本課程為銜接 C/C++ 或 Python 基礎班之進階課程,授課內容著重在介紹常見多種資料結構及圖論相關之演算法,參考書目為臺灣許多大學所使用的教科書:Introduction to Data Structure,期望在課程中帶領學員了解資料結構的原理與應用,並且逐章練習相關 LeetCode 面試題與 APCS實作題 。同時也會介紹 C++ STL 裡的各式容器,例如: vector、stack、queue、list、map、set 分別使用到哪些資料結構、在不同的情況下應該優先使用哪一種。

資料結構代表函式間的介面、資料的儲存、封裝、存取過程,適合的資料結構可以大幅提高演算法的效率,因此在程式設計的過程中,選擇適合的資料結構是一項重要而且基礎的工作,同時也是程式設計師或資工系學生的必備技能之一,像是資料庫常見的索引值,函式間的記憶體分配,或是作業系統的運作本身都脫離不了資料結構,另外,資料結構也是演算法的根本。

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

課程大綱

Class 01. C++快速複習
Class 02. 資結演算法入門
Class 03. 複雜度估算(Complexity)
Class 04. 抽象資料型別(Abstract Data Type)
===Homework 1===
Class 05. 陣列(Array)
Class 06. C++ STL簡介
Class 07. 向量(Vector)
Class 08. 字串(String)
Class 09. 鏈結串列(Linked List)
===Homework 2===
Class 10. 堆疊(Stack)
Class 11. 佇列(Queue)
===Homework 3===
Class 12. 雜湊表(Hash table)
Class 13. 二元樹(Binary Tree)
===Homework 4===
Class 14. 二元樹相關應用
Class 15. 二元平衡樹
===Homework 5===

※課程內容將視實際上課情形加以增減
※本課程評分方式為課後習題、LeetCode指定題數、APCS歷屆試題

適合對象

想了解資料結構與演算法、有面試軟體工程師或刷題需求者、準備升學APCS考試。建議國高中以上並有任一程式語言基礎(C/C++,Python佳)。

開發環境

Visual Studio Code、Codeblocks

近期班次

講師介紹

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

(一) 經歷

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

(二) 研究領域

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

(三) 使用語言

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

(四) 教學經驗

2016年至本班教學,累計授課時數至2022年8月18日為2340小時

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

 

(六) 教學經驗 於本訓練班授課時數累計至2022年6月8日為2280小時