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分钟