CCF編程能力等級認證概述
CCF編程能力等級認證(GESP)為青少年計算機和編程學習者提供學業能力驗證的規則和平臺。GESP覆蓋中小學階段,符合年齡條件的青少年均可參加認證。C++ & Python編程測試劃分為一至八級,通過設定不同等級的考試目標,讓學生具備計算機使用的基礎能力和通過編程思維解決生活問題的能力,激發青少年編程相關知識與技術的興趣,提高青少年編程科學技術素養,培養青少年編程綜合實踐能力,為廣大學員在進修等方面提供編程能力水平的證明。
認證知識體系
級別 | 知識內容(C++) | 知識內容(Python) | 知識目標 |
一級 | 計算機基礎與編程環境 計算機歷史 變量的定義與使用 基本數據類型(整型、浮點型、字符型、布爾型) 控制語句結構(順序、循環、選擇) 基本運算(算術運算、關系運算、邏輯運算) 輸入輸出語句 | 計算機基礎與編程環境 計算機歷史 變量的定義與使用 基本數據類型(整型、浮點型、字符型、布爾型) 控制語句結構(順序、循環、選擇) 基本運算(算術運算、關系運算、邏輯運算) 輸入輸出語句 Turtle繪圖 | 掌握順序、循環、分支的簡單程序結構,可以使用集成開發環境進行編程與調試,通過編程基礎知識的學習,完成單一功能的程序設計。 |
二級 | 計算機的存儲與網絡 程序設計語言的特點 流程圖的概念與描述 ASCII編碼 數據類型的轉換 多層分支/循環結構 常用數學函數(絕對值函數、平方根函數、max函數、min函數) | 計算機的存儲與網絡 程序設計語言的特點 流程圖的概念與描述 ASCII編碼 數據類型的轉換 多層分支/循環結構 常用數學函數(絕對值函數、平方根函數、max函數、min函數) | 掌握程序基本設計,能夠使用簡單數學函數。可以獨立完成包含分支語句、循環語句等比較綜合的案例,可以使用分支循環嵌套結構。 |
三級 | 數據編碼(原碼、反碼、補碼) 進制轉換(二進制、八進制、十進制、十六進制) 位運算(與(&)、或(|)、非(~)、異或(^)、左移(<<)、右移(>>)) 算法的概念與描述(自然語言描述、流程圖描述、偽代碼描述) C++一維數組基本應用;Python列表、字典、元組、集合的基本應用、內置函數以及列表解析的使用 字符串及其函數 算法:枚舉法 算法:模擬法 | 掌握數據編碼、進制轉換、位運算等知識,掌握一維數組、字符串及函數的使用,能夠獨立使用模擬法、枚舉法解決對應的算法問題。 | |
四級 | 函數的定義與調用 形參與實參、作用域 C++指針類型的概念及基本應用 函數參數傳遞的概念(C++值傳遞、引用傳遞、指針傳遞;Python值傳遞、引用傳遞) C++結構體 C++二維數組與多維數組基本應用;Python復合數據類型的嵌套 算法:遞推 算法:排序概念和穩定性 算法:排序算法(冒泡排序、插入排序、選擇排序) 簡單算法復雜度的估算(含多項式、指數復雜度) 文件重定向與文件讀寫操作 異常處理 | 掌握函數的定義、調用及函數參數傳遞的方法;掌握二維數組與多維數組的使用技巧;掌握常用排序算法、文件讀寫和異常處理的使用。能夠解決遞推相關問題。 | |
五級 | 初等數論 (C++)數組模擬高精度加法、減法、乘法、除法 單鏈表、雙鏈表、循環鏈表 輾轉相除法(也稱歐幾里得算法) 素數表的埃氏篩法和線性篩法 唯一分解定理 二分查找/二分答案(也稱二分枚舉法) 貪心算法 分治算法(歸并排序和快速排序) 遞歸 算法復雜度的估算(含多項式、指數、對數復雜度) | 掌握初等數論,線性表的知識,二分法、分治法、貪心法的思想,完成指定功能的程序。C++掌握數組模擬高精度的運算。 | |
六級 | 樹的定義,構造與遍歷 哈夫曼樹 完全二叉樹 二叉排序樹 哈夫曼編碼 格雷編碼 深度優先搜索算法 寬度優先搜索算法(也稱廣度優先搜索算法) 二叉樹的搜索算法 簡單動態規劃(一維動態規劃、簡單背包問題) 面向對象的思想 類的創建 棧、隊列、循環隊列 | 掌握樹的基礎知識,能夠分辨不同的樹,并根據不同的搜索算法進行遍歷,掌握簡單線性動態規劃和簡單背包問題。 | |
七級 | 數學庫常用函數(三角、對數、指數) 復雜動態規劃(二維動態規劃、動態規劃最值優化) 圖的定義及遍歷 圖論算法 哈希表 | 掌握圖的定義與遍歷相關算法,能使用二維動態規劃、動態規劃最值優化的知識完成復雜的動態規劃算法。 | |
八級 | 計數原理 排列與組合 楊輝三角 倍增法 代數與平面幾何 算法的時間和空間效率分析 算法優化 | 掌握組合數學中基本知識,通過算法的時間和空間效率分析,可以完成相對應的算法優化。 |
C++&Python編程三級標準
(一)知識點詳述
(1)了解二進制數據編碼:原碼、反碼、補碼。
(2)掌握數據的進制轉換:二進制、八進制、十進制、十六進制。
(3)掌握位運算:與(&)、或(|)、非(~)、異或(^)、左移(<<)、右移(>>)的基本使用方法及原理。
(4)了解算法的概念與描述,熟練運用自然語言、流程圖、偽代碼方式來描述算法。
(5)C++一維數組基本應用;Python列表、字典、元組、集合的基本應用、內置函數以及列表解析的使用.
(6)掌握字符串及其函數的使用包括但不限于大小寫轉換、字符串搜索、分割、替換。
(7)理解枚舉算法、模擬算法的原理及特點,可以解決實際問題。
(8)理解模擬算法、模擬算法的原理及特點,可以解決實際問題。
(二)考核目標
掌握計算機中常用進位制、位運算及數據編碼的知識,掌握一維數組、字符串類型及其函數的使用,掌握枚舉法、模擬法的原理和運用技巧,對于較簡單的實際問題能構造算法、描述算法、實現算法并調試程序。
(四)知識點描述
編號 | 知識塊 | 知識點 |
1 | 數據編碼 | 原碼、反碼、補碼 |
2 | 進制轉換 | 二進制、八進制、十進制、十六進制 |
3 | 位運算 | 與(&)、或(|)、非(~)、異或(^)、左移(<<)、右移(>>) |
4 | 算法與描述 | 枚舉法、模擬法 自然語言描述、流程圖描述、偽代碼描述 |
5 | 數據結構 | C++一維數組;Python列表、字典、元組、集合、列表解析 |
6 | 字符串及其函數 | 大小寫轉換、字符串搜索、分割、替換等 |
(五)題型分布
單選題 | 判斷題 | 編程題 |
15道(2分/道) | 10道(2分/道) | 2道(25分/道) |
考試時間:120分鐘
C++&Python編程四級標準
- 知識點詳述
(1)理解C++指針類型的概念,掌握指針類型變量的定義、賦值、解引用。
(2)掌握C++結構體、二維及多維數組的基本概念及使用;掌握Python復合數據類型的嵌套使用。
(3)理解模塊化編程思想,掌握函數的聲明、定義及調用,掌握形參與實參的概念及區別。
(4)掌握變量作用域的概念,理解全局變量與局部變量的區別。
(5)掌握函數參數的傳遞方式:C++值傳遞、引用傳遞、指針傳遞;Python值傳遞、引用傳遞。
(6)掌握遞推算法基本思想、遞推關系式的推導以及遞推問題求解。
(7)掌握排序算法的概念,了解內排序和外排序的概念及差別,理解排序算法的時間復雜度、空間復雜度、使用場景以及穩定性。
(8)掌握排序算法中的冒泡排序、插入排序、選擇排序的算法思想、排序步驟及代碼實現。
(9)簡單算法復雜度的估算,含多項式、指數復雜度。
(10)掌握文件操作中的重定向,實現文件讀寫操作,了解文本文件的分類,掌握寫操作、讀操作、讀寫操作。
(11)了解異常處理機制,掌握異常處理的常用方法。
- 考核目標?
掌握C++指針類型、二維及多維數組的基本使用;掌握Python復合類型的嵌套使用。通過函數相關知識的學習,掌握模塊化設計思想,具備編寫自定義函數程序的能力。掌握文件讀寫操作,并通過對排序算法、遞推法的學習,可以根據不同的使用場景,合理選擇最優的算法。
- 知識塊
(四)知識點描述
編號 | 知識塊 | 知識點 |
1 | 指針 | 指針類型,指針類型定義變量,指針類型變量的賦值、解引用 |
2 | 二維及多維數組 | C++二維及多維數組的定義、使用 Python復合類型的嵌套使用 |
3 | 結構體 | 結構體定義和使用,結構體數組,結構體指針,結構體嵌套結構體,結構體做函數參數 ,結構體中 const使用場景 |
4 | 函數 | 函數的定義、調用、聲明 形參、實參 全局作用域、局部作用域 值傳遞、引用傳遞 |
5 | 遞推算法 | 遞推算法基本思想、遞推關系式推導 |
6 | 排序算法 | 冒泡排序、插入排序、選擇排序 時間復雜度、空間復雜度、算法穩定性 簡單算法復雜度的估算,含多項式、指數復雜度 |
7 | 文件操作 | 文件重定向,讀操作、寫操作、讀寫操作 |
8 | 異常處理 | 異常處理機制和常用方法 |
(五)題型分布
單選題 | 判斷題 | 編程題 |
15道(2分/道) | 10道(2分/道) | 2道(25分/道) |
考試時間:120分鐘