CSP-J/S是由CCF主办的计算机非专业级别的软件能力认证。认证包括CSP-J(Junior,入门级)和CSP-S(Senior,提高级)两个级别,认证内容均包括算法设计能力和编程能力。
是含金量非常高的少儿编程竞赛证,也是五大奥赛的前置比赛。
下面是 CSP-J 的学习范围。
⭐ 表示难度
入门知识点
基础知识与编程环境
- ⭐ 计算机的基本构成(CPU、内存、I/O 设备等)
- ⭐ Windows、Linux等操作系统的基本概念及其常见操作
- ⭐ 计算机网络和Internet的基本概念
- ⭐ 计算机的历史和常见用途
- ⭐ NOI及相关活动的历史
- ⭐ NOI及相关活动的规则
- ⭐ 位、字节与字
- ⭐ 程序设计语言以及程序编译和运行的基本概念
- ⭐ 使用图形界面新建、复制、删除、移动文件或目录
- ⭐ 使用Windows系统下的集成开发环境 (例如Dev C++等)
- ⭐ 使用Linux系统下的集成开发环境 (例如Code::Blocks等)
- ⭐ g++、gcc等常见编译器的基本使用
潘博士爱编程提供软件下载,请搜索访问下面标题得到下载链接:
- 信奥赛指定C/C++集成开发环境-Code::Blocks【含下载】
- GESP考级指定C++集成开发环境-Dev C++【含下载】
C++程序设计
程序基本概念
- ⭐ 标识符、关键字、常量、变量、字符串、表达式的概念
- ⭐ 常量与变量的命名、定义及作用
- ⭐⭐ 头文件与名字空间的概念
- ⭐⭐ 编辑、编译、解释、调试的概念
基本数据类型
- ⭐ 整数型: int、long long
- ⭐ 实数型: float、double
- ⭐ 字符型: char
- ⭐ 布尔型: bool
程序基本语句
- ⭐⭐ cin语句、scanf语句、cout语句、printf语句、赋值语句、复合语句
- ⭐⭐ if语句、switch语句、多层条件语句
- ⭐⭐ for语句、while语句、do while语句
- ⭐⭐⭐ 多层循环语句
基本运算
- ⭐ 算术运算:加、减、乘、除、整除、求余
- ⭐ 关系运算:大于、大于等于、小于、小于等于、等于、不等于
- ⭐ 逻辑运算:与(&&)、或(||)、非(!)
- ⭐ 变量自增与自减运算
- ⭐ 三目运算
- ⭐⭐ 位运算:与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)
数学库常用函数
- ⭐⭐⭐ 绝对值函数、四舍五入函数、下取整函数、上取整函数、平方根函数、常用三角函数、对数函数、指数函数
结构化程序设计
- ⭐ 顺序结构、分支结构和循环结构
- ⭐⭐ 自顶向下、逐步求精的模块化程序设计
- ⭐⭐ 流程图的概念及流程图描述
数组
- ⭐ 数组与数组下标
- ⭐ 数组的读入与输出
- ⭐⭐⭐ 二维数组与多维数组
字符串的处理
- ⭐⭐ 字符数组与相关函数
- ⭐⭐ string类与相关函数
函数与递归
- ⭐⭐ 函数定义与调用、形参与实参
- ⭐⭐⭐ 传值参数与传引用参数
- ⭐⭐ 常量与变量的作用范围
- ⭐⭐ 递归函数
结构体与联合体
- ⭐⭐⭐ 结构体
- ⭐⭐⭐ 联合体
指针类型
- ⭐⭐⭐⭐ 指针
- ⭐⭐⭐⭐ 基于指针的数组访问
- ⭐⭐⭐⭐ 字符指针
- ⭐⭐⭐⭐ 指向结构体的指针
文件及基本读写
- ⭐⭐ 文件的基本概念、文本文件的基本操作
- ⭐⭐ 文本文件类型与二进制文件类型
- ⭐⭐ 文件重定向、文件读写等操作
STL 模板
- ⭐⭐⭐ 算法模板库中的函数 min、max、swap、sort
- ⭐⭐⭐⭐ 栈 (stack)、队列 (queue)、链表 (list)、向量(vector)等容器
数据结构
线性结构
- ⭐⭐⭐ 链表: 单链表、双向链表、循环链表
- ⭐⭐⭐ 栈
- ⭐⭐⭐ 队列
简单树
- ⭐⭐⭐ 树的定义与相关概念
- ⭐⭐⭐⭐ 树的表示与存储
- ⭐⭐⭐ 二叉树的定义与基本性质
- ⭐⭐⭐⭐ 二叉树的表示与存储
- ⭐⭐⭐⭐ 二叉树的遍历: 前序、中序、后序
特殊树
- ⭐⭐⭐⭐ 完全二叉树的定义与基本性质
- ⭐⭐⭐⭐ 完全二叉树的数组表示法
- ⭐⭐⭐⭐ 哈夫曼树的定义和构造、哈夫曼编码
- ⭐⭐⭐⭐ 二叉搜索树的定义和构造
简单图
- ⭐⭐⭐ 图的定义与相关概念
- ⭐⭐⭐⭐ 图的表示与存储: 邻接矩阵
- ⭐⭐⭐⭐ 图的表示与存储: 邻接表
算法
算法概念与描述
- ⭐ 算法概念
- ⭐⭐ 算法描述: 自然语言描述、流程图描述、伪代码描述
入门算法
- ⭐ 枚举法
- ⭐ 模拟法
基础算法
- ⭐⭐⭐ 贪心法
- ⭐⭐⭐ 递推法
- ⭐⭐⭐⭐ 递归法
- ⭐⭐⭐⭐ 二分法
- ⭐⭐⭐⭐ 倍增法
数值处理算法
- ⭐⭐⭐⭐ 高精度的加法
- ⭐⭐⭐⭐ 高精度的减法
- ⭐⭐⭐⭐ 高精度的乘法
- ⭐⭐⭐⭐ 高精度整数除以单精度整数的商和余数
排序算法
- ⭐⭐⭐ 排序的基本概念
- ⭐⭐⭐ 冒泡排序
- ⭐⭐⭐ 选择排序
- ⭐⭐⭐ 插入排序
- ⭐⭐⭐ 计数排序
搜索算法
- ⭐⭐⭐⭐⭐ 深度优先搜索
- ⭐⭐⭐⭐⭐ 广度优先搜索
图论算法
- ⭐⭐⭐⭐ 深度优先遍历
- ⭐⭐⭐⭐ 广度优先遍历
- ⭐⭐⭐⭐⭐ 泛洪算法
动态规划
- ⭐⭐⭐⭐ 动态规划的基本思路
- ⭐⭐⭐⭐ 简单一维动态规划
- ⭐⭐⭐⭐⭐ 简单背包类型动态规划
- ⭐⭐⭐⭐⭐ 简单区间类型动态规划
数学与其他
数及其运算
- ⭐ 自然数、整数、有理数、实数及其算术运算(加、减、乘、除)
- ⭐ 进制与进制转换:二进制、八进制、十进制、十六进制
初等数学
- ⭐ 代数(初中部分)
- ⭐ 几何(初中部分)
初等数论
- ⭐⭐⭐ 整除、因数、倍数、指数、质(素)数、合数
- ⭐⭐⭐ 取整
- ⭐⭐⭐ 模运算与同余
- ⭐⭐⭐ 整数唯一分解定理
- ⭐⭐⭐ 辗转相除法(欧几里得算法)
- ⭐⭐⭐⭐ 素数筛法:埃氏筛法与线性筛法
离散与组合数学
- ⭐⭐ 集合
- ⭐⭐ 加法原理
- ⭐⭐ 乘法原理
- ⭐⭐⭐⭐ 排列
- ⭐⭐⭐⭐ 组合
- ⭐⭐⭐⭐ 杨辉三角
其他
- ⭐⭐ ASCII码
- ⭐⭐ 格雷码