C++ 演算法與程式解題入門

C++ 演算法與程式解題入門

不論是面試大型軟體公司、參加程式解題競賽或考取資訊能力檢定,程式解題 (Problem solving) 的能力對於想以軟體開發為生的人來說越來越重要。在美國矽谷,程式解題力已經是進入 Google、LinkedIn 等軟體公司的基本門檻。而台灣也透過資訊能力檢定 (APCS, CPE) 、資訊能力競賽等形式來培養相關的能力。本課程透過概念講解跟實作練習,除了深入淺出解題時常見的演算法也介紹如何利用強大的 C++ 標準庫來把程式寫得又快又好。適合想深入學好程式設計、準備大學資訊相關科系的先修、將來想參加比賽或進行面試準備的你。

課程大綱

『入門班』課程內容包含:
- 程式解題 (Problem solving) 介紹
- C++ 的輸出與輸入處理
- 各式程式解題與測驗系統的介紹
- C 風格的陣列與其應用題型
- 暴搜法、貪心法與雙指標法
- 求極值、線性搜尋與計數
- C 風格的字串與其應用題型
- C++ 的字串 (string) 與其應用題型
- C++ 的動態陣列 (vector) 與其應用題型
- C++ 的迭代器 (iterator) 與泛型演算法的使用

---------------------------------------------------------------------------------------
『 C++ 演算法與程式解題 』系列各班別說明:
---------------------------------------------------------------------------------------
【入門班】 初學程式語言但沒有程式解題經驗,幫助剛上完語言基礎課或自學者起步
講解程式解題與輸入輸出的處理
講解計數,暴搜、雙指標、貪心 (greedy) 等常見基礎演算法
講解陣列與字串的應用
※ 如果只上過資訊系統訓練班的基礎語言課程,建議從這門課開始上
---------------------------------------------------------------------------------------
【初級班】 有過程式解題經驗或已經經常在寫程式
迅速複習入門班的內容 (不用先上過入門班)
講解演算法複雜度並練習分析 (complexity analysis)
講解雜湊表的應用
講解排序 (sorting) 的各式演算法
介紹遞迴 (recursive) 與分治法 (divide-and-conquer)
※ 如果平常已經有在寫程式 (在學校或工作),建議從這門課開始上
※ 題目難度約為 LeetCode 解題網站的 Easy
---------------------------------------------------------------------------------------
【中級班】上過初級班或已經經常在寫程式
講解遞迴與分治法 (divide-and-conquer)
講解二元搜尋法 (binary search)
講解遞迴的複雜度分析 (complexity analysis)
講解遞迴與記憶法 (memorization)
講解動態規劃 (dynamic programming)
※ 如果平常已經有在寫題目 (準備考試或面試),建議從這門課開始上
※ 題目難度約為 LeetCode 解題網站的 Easy ~ Medium
---------------------------------------------------------------------------------------
【高級班】上過中級班或已經會寫遞迴函式
講解並查集 (union-find)
講解回溯法 (backtracking)
講解怎麼將遞迴改寫成迴圈
講解深度優先與廣度優先等搜尋法
講解最短路徑計算的各式演算法
※ 題目難度約為 LeetCode 解題網站的 Medium

適合對象

想自我加強的大學資訊相關科系學生
準備大學資訊相關科系先修的高中生
想開始訓練程式解題技巧者
想開始準備程式解題競賽或檢定者
想開始準備上機或白板面試者
修過 C/C++ 語言的基礎班「或」已經會使用變數、if、for 與陣列的初學者

開發環境

上課時使用講師自製系統或線上解題網站 (LeetCode) 講解
但學員可以在任何自己習慣使用的 C++ 開發環境進行應用

近期班次

  • 第386期 確定開課

    課程類別:假日專題班

    開課日期:2023.06.18 ~ 2023.07.09

    上課時間:

    週 (六)(日) 4:30 PM ~ 6:30 PM

    學費:新生新台幣4500元整

    注意事項:

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

    6/24-6/25(六、日)端午連假不上課,課程日期已順延

    校園防疫措施詳情連結

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

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

  • 講師介紹

    (一) 學歷

    國立臺灣大學資訊工程學博士學位

    國立臺灣大學資訊工程學碩士學位

    國立臺灣大學資訊工程學學士學位

    (二) 經歷

    1.雷亞遊戲技術總監

    參與《聚爆 (Implosion)》開發與負責《伊甸之魂 (Soul of Eden)》的主程式

    2.長期從事程式教育

    有十五年以上課堂教學經驗,開設過百次以上程式設計和網站實作課程

    於本訓練班授課時數累計至2023年4月6日為4171小時

    3.自由接案者

    有二十五年以上程式設計及二十年以上網站接案經驗,參與過數十個專案開發

    4.經營 Youtube 頻道

    https://www.youtube.com/c/KenYiLee

    (三) 相關榮譽

    國立臺灣大學資訊工程系優良助教獎

    國立臺灣大學書卷獎

    全國高中資訊能力競試決賽入選

    (四) 專長

    程式語言: C, C++, C#, Java, Python, PHP, JavaScript, Golang, Perl, Lua 等

    開發框架: .Net framework, Laravel, Qt, jQuery, React, OpenCV, Tensorflow

    網頁技術: HTML5, CSS3, SQL, Flash 等

    遊戲開發引擎: Unity