0.1 AA 競程 Level 0 課程定位
¶先認識幾個名詞:程式、程式語言、C++
在開始之前,先用最白話的方式認識幾個之後會天天聽到的詞:
- 程式(program):一連串「告訴電腦該做什麼」的指令。電腦本身不會思考,它只會一步一步照著你寫的指令去做。一支程式,本質上就是一份寫給電腦看的「步驟說明書」。
- 程式語言(programming language):人類用來寫程式的語言。電腦聽不懂中文或英文,所以我們改用一套規則嚴謹的語言把指令寫下來,電腦再把它翻成自己看得懂的形式來執行。就像人類的語言有中文、英文、日文等好幾百、好幾千種,程式語言也有非常多種,你可能聽過的 Python、Java 就是其中兩種。
- C++:本課程使用的程式語言。它是從另一個更早的語言「C」擴充而來的——你可以把 C 想成基礎,C++ 想成在這個基礎上多加了很多方便好用的工具。本書有時會寫「C/C++」,指的就是「C 打下的底+C++ 的功能」,你不需要分別學兩種語言,從頭到尾你寫的都是 C++。
至於「為什麼競程選 C++ 而不是別的語言」,簡短的答案是:執行速度快、競程資源最多。詳細的比較放在後面 0.6 的「為什麼要學 C++」補充框。
看到不懂的名詞先別慌:從這個單元起,你會陸續遇到「編譯」「執行」「演算法」「除錯」這些詞。它們現在只要有個模糊印象就好,後面的單元都會專門解釋,不用急著現在就弄懂每一個字。
¶這堂課是什麼?
Level 0 是 AA 競程的入門課程,目標是建立「用程式解決問題」的基礎能力。
如果競程是一棟房子,Level 0 就是打地基。你會在這裡學到:
- 如何寫 C++ 程式(語法、編譯、執行)
- 電腦科學的基礎思維(拆解問題、用迴圈和判斷解題)
- 怎麼在 OJ(線上評測系統)上提交和除錯
「除錯」是 debug 的中譯,意思是「找出並修正程式錯誤」。第一單元起就會經常用到這個詞。
¶適合什麼樣的人?
- 零基礎:完全沒寫過程式,想進入競程領域
- 準備 APCS 程式檢定的學生
- 學過其他程式語言如 Python、Java後想接著學習 C/C++ 的人
- 想補強 C/C++ 語法與電腦科學思維的自學者
¶Level 0 課程結構
Level 0 課程分為兩期:
| 期別 | 主軸 | 對應講義單元 |
|---|---|---|
| 語法班 | 對 C/C++ 語法及程式邏輯有基本的觀念 | 1 ~ 7 |
| 競程入門班 | 進階語法(浮點數、字元、簡易 STL)+ 競程觀念 | 8 ~ 17 |
本書(上冊)涵蓋語法班(單元 1-7),下冊涵蓋競程入門班(單元 8-17)。
— 已是第一節 —
0.2 學完 Level 0 後你能做到的事 →