Python 演算法與程式解題入門

Python 演算法與程式解題入門

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

課程大綱

『入門班』課程內容包含:
- 程式解題 (Problem solving) 介紹
- Python 的輸出與輸入處理
- 各式程式解題與測驗系統的介紹
- Python 的列表 (list) 與其應用題型
- Python 的字串 (str) 與其應用題型
- 暴搜法、貪心法與雙指標法
- 求極值、線性搜尋與計數
- Python 迭代器 (iterator) 與生成器表示式 (generator expression) 的應用

---------------------------------------------------------------------------------------
『 Python 演算法與程式解題 』系列各班別說明:
---------------------------------------------------------------------------------------
【入門班】 初學程式語言但沒有程式解題經驗,幫助剛上完語言基礎課或自學者起步
講解程式解題與輸入輸出的處理
講解計數,暴搜、雙指標、貪心 (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

適合對象

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

開發環境

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

近期班次

  • 第341期 開課日期:2021.04.17 確定開課

    上課時間: 週 (六)(日)
    4:30 PM ~ 6:30 PM
    上課日期:2021.04.17 ~ 2021.05.01
    學費:新生新台幣3500元整

  • 注意事項

    • 上課地點:台灣大學資訊工程學系系館 詳細位置;教室號碼將於開課前一日公佈於官網"最新消息"中。
    • 上課教材:開課後將公布教學網站給同學查閱。
    • 結業狀況:請上官網”結業名單”查閱是否合格及可領取證書進度。

    講師介紹

    (一) 學歷

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

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

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

    (二) 經歷

    1.雷亞遊戲技術總監

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

    2.長期從事程式教育

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

    於本訓練班授課時數累計至2020年2月5日為2,871小時

    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