語法書 / AA 競程語法書 上冊 / 第零單元 / AA 競程 Level 0 課程定位

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)。