---
# System prepended metadata

title: MDCPP計畫

---

# 114-2 MDCPP計畫
## 宗旨

在現今資訊氾濫、AI 發展突飛猛進的時代
人人都需要擁有一項能隨身帶著走的專長
並且此專長為 AI 所不能取代的

::::info
>在明道，發現你自己，Discover Yourself
>[name=明道中學前校長 汪大久 Albert Wang]
::::

在明道中學這個多元、和平、共榮的校園中
我們都發現了自己，找到了人生目標

傳承，是明道最美的風景
任何的技能、技藝皆須透過傳承，才得以延續

因此我們決定創立 MDCPP
將程式設計的技能傳承給廣大的明道人
讓明道人發現自己
讓明道程式競賽的能力發揚光大
讓明道人多了一項能隨身帶著走的技能

## 課程說明
這學期的課程主要分成兩大類 (C++、Python)，共六個班
C++：語法 A 班、語法 B 班、算法班、競賽班
Python：Python 基礎班、Python 資料科學班

### ==C++==

* <span style="color: pink">**語法班**</span>分成兩個班，語法 A 班、語法 B 班
主要是給<span style="color: lightblue">**對程式有興趣、無基礎或想把基礎打穩的人**</span>參加 
(目標 APCS 2 ~ 3級分)
    * 教學內容
        * 輸入、輸出
        * 變數
        * 運算子
        * 自訂函式
        * 迴圈
        * 陣列
        * 指標
        * Struct
    * 上課時間
        * 語法 A 班：<span style="color: red">**每週三**</span> 18：20 ~ 20：40
		* 語法 B 班：<span style="color: red">**每週四**</span> 18：20 ~ 20：40
        * 段考當週及前一週停課
    * 上課地點
        * 皆為弘道大樓3F第七電腦教室
> [!Note]註
> 語法班不須任何先備知識

- <span style="color: pink">**算法班**</span>主要是給<span style="color: lightblue">**已經對語法熟練，想精進自己競程知識的人**</span>參加
(目標 APCS 4 ~ 5級分)
    * 教學內容
        * 競程初探
        * 時間複雜度
        * 遞迴
        * 排序
        * 基礎枚舉
        * 基礎資料結構
        * 前綴和與差分
        * Greedy
        * 基礎動態規劃
        * 簡單圖論（DFS/BFS）
    * 上課時間
        * <span style="color: red">**每週二**</span> 18：20 ~ 20：40
        * 段考當週及前一週停課
    * 上課地點
        * 弘道大樓3F第七電腦教室
> [!Note]註
> 算法班限參加過語法班課程之學員或具有APCS 實作三級分同等程度者

- <span style="color: pink">**競賽班**</span>主要是給<span style="color: lightblue">**已達 APCS 實作五級分或同等程度者，想深造自己者**</span>參加
(目標：進入資訊學科能力競賽複賽、資訊奧林匹亞)
    * 教學內容 (共 10 堂課)
		* 如何系統化學習程式競賽? /  二分搜
		* 更多搜尋方法 / 暴力搜尋
		* 圖論演算法
		* 基礎動態規劃
		* 更多動態規劃
		* 模擬賽
		* 圖論 - 樹 & 並查集
		* 線段樹
		* 字串演算法
		* 計算幾何
    * 上課時間
        * <span style="color: red">**每週一**</span> 18：20 ~ 20：40
        * 段考當週及前一週停課
    * 上課地點
        * ==線上上課==
> [!Note]註
> 競賽班限參加過算法班課程之學員或具有 APCS 實作五級分同等程度者
        
### ==Python==
- <span style="color: pink">**Python 基礎班**</span>主要是給<span style="color: lightblue">**對 Python有興趣、無基礎或想把基礎打穩的人**</span>參加
(目標為使學員從 Python 語法學起，並擁有自主學習、精進程式技術並能與 AI 時代開發接軌的能力)
    * 教學內容
		* Phase 0 (Week 1 ~ 2)：基礎語法
			* 變數
			* 資料型態
			* 條件式
			* 迴圈
			* 函數
			* 簡單計算器、猜數字遊戲
		* Phase 1 (Week 3 ~ 6)：資料結構 
			* 清單
			* 字典
			* 集合
			* 資料操作、檔案讀寫
			* 處理文字檔案
			* 建立簡易資料庫
			* 自學程式語言的技巧
		* Phase 2 (Week 7 ~ 9)：專案思維及 Python 應用
			* Python 套件使用
			* 物件導向入門
			* Python 模組概念及專案化
			* 認識 Python 的語言設計
		* Phase 3 (Week 10)：專題實作
			* 聊天機器人串接
			* AI 時代下的開發模式：AI 輔助開發入門
    * 上課時間
        * <span style="color: red">**每週一**</span> 18：20 ~ 20：40
        * 段考當週及前一週停課
    * 上課地點
        * ==線上上課==
> [!Note]註
> Python 基礎班不須任何先備知識

- <span style="color: pink">**Python 資料科學班**</span>
	本班課程以 PBL 模式設計，11 週的時間將會分成 3~4 個部分，完成不同的專題，並從專題中實習資料科學的基本知識。此班級適合已有 <span style="color: lightblue">**已有 Python 基礎者，無基礎者也可報名，視自身學習能力決定**</span>
(目標為具備 Python 資料分析相關工具的基本使用知識、統計的基本概念與面對巨量資料的思維及應用能力)
    * 課程模式
        * 本課程重視實作能力與理論的結合，將以解決問題為基礎延伸學習相關知識。鼓勵團隊合作，專案實作將以小組合作方式進行，每組 1~4 人為主。使用真實公開資料 (如 Kaggle、台灣開放資料平台)，讓學生感受到「實務價值」
    * 教學內容
		* Phase 0 (Week 1)：Python 基礎複習、開發環境、課程介紹
			* Python 基礎複習
			* 資料科學相關工具介紹
			* 課程內容介紹
		* Phase 1 (Week 2 ~ 4)：資料清洗與探索
			* Numpy, Pandas
			* 使用台灣政府公開 Dataset，以交通事故或空氣品質數據為例
			* 資料清洗、選擇、探索技巧
			* 從資料中獲取資訊並表達
			* 基本統計、機率概念
		* Phase 2 (Week 5 ~ 7)：資料視覺化
			* Matplotlib / Seaborn
			* 繪製圖表
			* 探索性分析 (EDA)
			* 探索趨勢
			* 延續上階段的資料、分析結果進行延伸，討論視覺化如何幫助決策
		* Phase 3 (Week 8 ~ 11)：機器學習入門
			* Scikit-learn
			* 簡單模型（線性回歸、分類、聚類）
			* 模型評估
			* 預測模型建構
			* 應用前階段資料，建模預測，包括特徵工程、交叉驗證
			* 模型選擇與最佳化
		* Phase X (After lecture)：進階應用
		此階段為課程結束後，希望學生能夠自主學習精進的內容。將會在課程中引導學員繼續學習深造。
			* 資料科學在實務上的應用
			* 現代人工智慧前沿技術探討
			* 模型產品化
    * 上課時間
        * <span style="color: red">**每週三**</span> 18：20 ~ 20：40
        * 段考當週及前一週停課
    * 上課地點
        * ==線上上課==

>[!Tip]小提醒
>不管你有沒有基礎、會不會寫程式
只要你對程式有興趣，願意參與我們的課程
我們都很樂意手把手從零開始帶你變成電神喔~

### 114-2 上課時間
#### 語法 A 班 (週三，共 11 堂課)
|1|2|3|4|5|6|7|8|9|10|11|
|----|----|----|----|----|----|----|----|----|----|----|
| 03/04 | 03/11 | 04/01 | 04/08 | 04/15 | 04/22 | 04/29 | 05/20 | 05/27 | 06/03 | 06/10 |

#### 語法 B 班 (週四，共 11 堂課)
|1|2|3|4|5|6|7|8|9|10|11|
|----|----|----|----|----|----|----|----|----|----|----|
| 03/05 | 03/12 | 04/02 | 04/09 | 04/16 | 04/23 | 04/30 | 05/21 | 05/28 | 06/04 | 06/11 |

#### 算法班 (週二，共 11 堂課)
|1|2|3|4|5|6|7|8|9|10|11|
|----|----|----|----|----|----|----|----|----|----|----|
| 03/03 | 03/10 | 03/31 | 04/07 | 04/14 | 04/21 | 04/28 | 05/19 | 05/26 | 06/02 | 06/09 |

#### 競賽班 (週一，共 10 堂課)
|1|2|3|4|5|6|7|8|9|10|
|----|----|----|----|----|----|----|----|----|----|
| 03/02 | 03/09 | 03/30 | 04/13 | 04/20 | 04/27 | 05/18 | 05/25 | 06/01 | 06/08 |

#### Python 基礎班 (週一，共 10 堂課)
|1|2|3|4|5|6|7|8|9|10|
|----|----|----|----|----|----|----|----|----|----|
| 03/02 | 03/09 | 03/30 | 04/13 | 04/20 | 04/27 | 05/18 | 05/25 | 06/01 | 06/08 |

#### Python 資料科學班 (週三，共 11 堂課)
|1|2|3|4|5|6|7|8|9|10|11|
|----|----|----|----|----|----|----|----|----|----|----|
| 03/04 | 03/11 | 04/01 | 04/08 | 04/15 | 04/22 | 04/29 | 05/20 | 05/27 | 06/03 | 06/10 |

### 結業證書
* 語法 A 班、語法 B 班、算法班
    * 第二次模擬賽達結業標準即可頒發證書
* 競賽班
    * 完成 vjudge 題單中所有題目，每週將上傳 1 ~ 2 題或模擬賽表現良好即可頒發證書
* Python 基礎班
    * 以「課堂作業完成率達 70%」為發放證書依據
* Python 資料科學班
    * 以「三次專題發表中，參與至少兩次」為發放證書依據

## 模擬賽
* 語法班、算法班利用 [MDCPP JUDGE](http://mdcpp.mingdao.edu.tw/)，採用上機測驗進行競賽
* 競賽班利用 [Codeforces](https://codeforces.com/) 環境，僅舉行第一次模擬賽

### 第一次模擬賽 (第二次期中考前)
整學期共2次，第一次訂於第一次期中考前，第二次訂於期末考前 (競賽班僅舉行第一次模擬賽)
* 語法 A 班
    * 考試日期：04/29
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：第一、二學月上課範圍
* 語法 B 班
    * 考試日期：04/30
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：第一、二學月上課範圍
* 算法班
    * 考試日期：04/28
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：第一、二學月上課範圍
* 競賽班
    * 考試日期：04/27
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：第一、二學月上課範圍，題目模擬 TOI 初選難度
* Python 基礎班
    * 視教學情況而定
* Python 資料科學班
    * 不考試，採用項目報告 (簡報或程式碼分享)，訓練學生表達能力。每階段的實作結束將會讓各組學生以發表產品、研究成果的角度來報告成果，並讓全體學員參與討論。

### 第二次模擬賽 (期末考前)
* 語法 A 班
    * 考試日期：06/10
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：C++ 基礎語法（全）
* 語法 B 班
    * 考試日期：06/11
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：C++ 基礎語法（全）
* 算法班
    * 考試日期：06/09
    * 考試時間： 2 小時
    * 題目數量： 4 題
    * 範圍：MDCPP 算法班授課之 C++ 演算法
* Python 基礎班
    * 視教學情況而定
* Python 資料科學班
    * 不考試，採用項目報告 (簡報或程式碼分享)，訓練學生表達能力。每階段的實作結束將會讓各組學生以發表產品、研究成果的角度來報告成果，並讓全體學員參與討論。

## 人員編制
### 第六屆工作人員 聯絡資訊

|班級|姓名|職務|聯絡資訊|備註|
|:--|----|----|----|----|
|高一 10 班|胡永璋|總召集人兼算法班講師|41s465@ms.mingdao.edu.tw|
|國立清華大學資工系 大四|葉宥辰|競賽班特聘講師兼教學顧問|gilbert12.tw@gmail.com|MDCPP 共同創辦人、APCS 5/5 (舊版)、TOI 1! 選訓營 (2021, 2022)、ICPC 桃園站 金牌|
|高二 3 班|許惟喆|算法班講師|31s056@ms.mingdao.edu.tw|
|高二 2 班|王鵬喆|語法 A 班講師|31s321@ms.mingdao.edu.tw|
|高一 8 班|陳詩孟|語法 A 班助教|41s482@ms.mingdao.edu.tw|
|高一 2 班|陳泓均|語法 B 班講師|41s201@ms.mingdao.edu.tw|
|高一 3 班|徐宇謙|語法 B 班講師|41s146@ms.mingdao.edu.tw|
|高一 8 班|吳安埕|秘書長兼語法 B 班講師|41s402@ms.mingdao.edu.tw|
|國立臺灣科技大學資工系 大一|葉柏辰|Python 基礎班 & Python 資料科學班特聘講師兼教學顧問|lazpytb@gmail.com|Lazco 共同創辦人|
|高一 8 班|林佑耘|創意與視覺設計總監|41s364@ms.mingdao.edu.tw|
|高一 12 班|游甯貽|創意與視覺設計總監|41s443@ms.mingdao.edu.tw|

### 指導學長
|班級|姓名|聯絡資訊|
|----|----|----|
|國立清華大學資工系|葉宥辰|gilbert12.tw@gmail.com|
|國立臺灣科技大學資工系|葉柏辰|lazpytb@gmail.com|
|高一 10 班|胡永璋|41s465@ms.mingdao.edu.tw|

## 相關單位
### 主辦單位
- 明道競賽程式選手培育計畫 (MDCPP)

### 協辦單位
- 明道中學輔導室
- 明道中學資訊中心

### 指導老師
- 明道中學資訊科技科 陳楷翔老師
