關於 APCS
什麼是 APCS?
**APCS(Advanced Placement Computer Science,大學程式設計先修檢測)**是由國立臺灣師範大學資訊工程學系主辦的程式設計能力檢測。這項檢測旨在評量學生的程式設計能力,為大學端提供一個客觀的參考指標,同時也讓學生能夠了解自己的程式設計能力水平。
為什麼要考 APCS?
🎓 升學優勢
- 特殊選才管道:許多頂尖大學資訊相關科系提供 APCS 組的特殊選才管道
- 甄選入學加分:在個人申請與繁星推薦中,APCS 成績可作為重要的備審資料
- 展現專業能力:證明你具備程式設計的實際能力,而非僅有理論知識
💼 職涯發展
- 能力證明:APCS 成績是程式設計能力的客觀證明
- 企業認可:部分企業在招募時參考 APCS 成績
- 自我檢視:了解自己的程式設計能力,規劃學習方向
考試形式與內容
APCS 檢測分為兩個項目:
📝 程式識讀(觀念題)
時間:75 分鐘
題數:20 題選擇題
題型:
- 程式碼追蹤(Code Tracing)
- 演算法與資料結構概念
- 時間複雜度分析
- 程式設計基本概念
計分方式:每題 5 分,滿分 100 分
重要更新:自 114 學年度起,程式識讀新增 Python 題本,考生可選擇 C/C++ 或 Python 題本作答。
💻 程式設計實作
時間:150 分鐘(2.5 小時)
題數:4 題實作題
評分方式:採用線上評測系統(Online Judge),每題根據通過的測資數量給分
題目特性:
- 第 1 題:基礎題,著重於正確理解題意與基本邏輯
- 第 2 題:中等難度,需要使用適當的資料結構
- 第 3 題:進階題,需要設計有效率的演算法
- 第 4 題:挑戰題,考驗高階演算法能力與優化技巧
支援語言:C、C++、Java、Python
級分對照表
APCS 實作題採用 5 級分制,各級分對應的能力指標如下:
| 級分 | 能力描述 | 建議學習內容 |
|---|---|---|
| 1 級分 | 能理解問題並撰寫基本程式碼 | 基礎語法、簡單的輸入輸出 |
| 2 級分 | 能使用基本資料結構解決問題 | 陣列、字串、基本迴圈與條件判斷 |
| 3 級分 | 能使用函式與進階資料結構 | 函式、二維陣列、前綴和、差分陣列 |
| 4 級分 | 能運用關鍵演算法與資料結構 | 堆疊、佇列、遞迴、排序、二分搜尋 |
| 5 級分 | 能設計並實作複雜演算法 | 圖論、動態規劃、貪心法、分治法 |
本課程對應
本網站的「APCS Python 摩天大樓」課程完全對應上述級分系統:
- 模組一:對應 1-2 級分
- 模組二:對應 3 級分
- 模組三:對應 4 級分
- 模組四:對應 5 級分
報名資訊
📅 考試梯次
APCS 每年舉辦 3 次檢測:
- 第一梯次:1 月
- 第二梯次:6 月
- 第三梯次:10 月
💰 報名費用
- 單項報名(僅考程式識讀或實作):約 NT$ 400-500
- 雙項報名(程式識讀 + 實作):約 NT$ 700-900
🔗 官方連結
- APCS 官方網站:https://apcs.csie.ntnu.edu.tw/
- 報名系統:https://apcs.csie.ntnu.edu.tw/index.php/register/
- 歷屆試題:https://apcs.csie.ntnu.edu.tw/index.php/questionstypes/
評量架構
程式識讀評量項目
- 變數與資料型態
- 運算子與運算式
- 輸入與輸出
- 選擇結構
- 重複結構
- 陣列
- 函式
- 遞迴
- 排序與搜尋
- 資料結構(堆疊、佇列、樹)
- 演算法複雜度分析
程式設計實作評量項目
基礎程式設計能力(1-2 級分)
- 變數、資料型態、運算子
- 條件判斷與迴圈
- 一維陣列操作
進階資料處理能力(3 級分)
- 字串處理
- 二維陣列與矩陣
- 函式與模組化
演算法設計能力(4 級分)
- 堆疊與佇列
- 遞迴與回溯
- 排序與二分搜尋
高階演算法能力(5 級分)
- 圖論演算法(DFS、BFS)
- 動態規劃
- 貪心演算法
- 分治法
備考策略
📚 學習建議
- 紮實基礎:從模組一開始,確保對基礎語法與控制流程有深刻理解
- 性能意識:從一開始就培養高效能編程習慣,尤其是 I/O 處理
- 系統練習:按照模組順序逐步學習,不要跳過任何單元
- 實戰演練:完成每個單元的推薦習題,累積實戰經驗
- 定時測驗:模擬考試環境,訓練在時間壓力下解題的能力
⚡ Python 使用者特別注意
選擇 Python 作為考試語言的優勢:
- ✅ 語法簡潔易讀,開發速度快
- ✅ 豐富的內建資料結構(list、dict、set)
- ✅ 強大的標準函式庫
需要注意的挑戰:
- ⚠️ 執行速度相對較慢
- ⚠️ 必須使用高效的 I/O 方法(
sys.stdin) - ⚠️ 注意遞迴深度限制
Python 性能優化
本課程從模組一開始就強調性能優化,確保你用 Python 寫出的程式碼能夠通過嚴格的時間限制。關鍵在於:
- 使用
sys.stdin.readline()而非input() - 使用
collections.deque實作佇列 - 了解各種資料結構的時間複雜度
- 選擇正確的演算法
下一步
準備好開始你的 APCS 學習之旅了嗎?