Skip to content

Latest commit

 

History

History
97 lines (75 loc) · 10 KB

File metadata and controls

97 lines (75 loc) · 10 KB

CSP-J C++ 五阶段视频课件规划

课程使用方式

这是一条适配零基础学习者的长期路线:每个阶段 8 节核心课,建议每节录制为 45--60 分钟,并穿插同主题练习和复盘。它遵循“语法工具 -> 程序组织 -> 算法建模 -> CSP-J 专项 -> 赛场整合”的递进关系;学习速度可以调整,但不跳过前置检验。

每个课件统一采用以下视频结构:

  1. 情境引入(约 5 分钟):说明本课要解决的真实编程问题。
  2. 概念与演示(约 15 分钟):从最小可运行程序建立规则。
  3. 拆题与编码(约 15 分钟):把题意、算法和 C++ 代码逐步连接。
  4. 练习与排错(约 10 分钟):故意暴露边界、格式或复杂度错误。
  5. 检验与复盘(约 5 分钟):用清单确认是否真正掌握。

“必会”指 CSP-J 路线的核心;“拓展”只能作为能力边界说明,不能代替前置课的练习。

第一阶段:建立程序感

目标:从“会跟着敲代码”进步到“能独立写出、运行并修正一个小程序”。

课件 学习目标 具体内容 检验清单
S1-01 第一行程序与编译 理解源文件、编译和运行;能输出多行文字 .cppmaincout、编译报错的第一种读法 能新建并运行;能解释编译与运行;能修改输出
S1-02 变量与数据类型 用变量记录题目中的量;区分整数、实数和字符 intlong longdoublechar、赋值 能选择类型;能更新变量;能解释类型错配
S1-03 表达式与运算顺序 把公式翻译成 C++ 表达式 四则运算、整除、取模、优先级、括号 能写周长/平均数;能判断整除;会主动加括号
S1-04 输入输出与格式 正确读取数据并按题目格式输出 cincout、空格、换行、固定小数 能读多个变量;能输出指定格式;能排查多余提示语
S1-05 条件判断 根据条件选择不同分支 比较、逻辑运算、if/else if/else 能写三路判断;能覆盖边界值;不混淆 ===
S1-06 重复执行与循环 用循环解决重复计算 forwhile、循环变量、累加与计数 能求连续和;能控制循环次数;能避免死循环
S1-07 嵌套循环与规律输出 看懂二维重复过程 嵌套循环、行列含义、简单图案、break/continue 能输出矩阵式图案;能说明内外层职责;能停在正确位置
S1-08 调试与书写习惯 形成可检查的程序工作流 缩进、命名、分段输出、编译错误/运行错误/答案错误 能定位一处语法错;能构造小数据;能复述三类错误

第二阶段:写得正确

目标:能使用合适的数据结构和函数,把较长程序组织得清楚、可测试。

课件 学习目标 具体内容 检验清单
S2-01 数组与下标 存储一组同类数据并安全遍历 一维数组、下标、长度、初始化 能读写数组;不越界;能求最大最小值
S2-02 字符、字符串与编码 正确处理姓名、单词和字符序列 charstring、长度、访问、ASCII 基础 能逐字符遍历;能统计字符;能区分字符与字符串
S2-03 函数与分解 把重复或独立逻辑拆成函数 返回值、参数、声明、调用 能提取一个函数;能传入参数;能解释返回值
S2-04 作用域与参数 避免变量互相干扰 局部变量、全局变量、值传递、引用的认识 能说明变量可见范围;能避免同名混乱;能判断何时需要修改原变量
S2-05 结构体与题目建模 用自定义记录表示一条完整信息 struct、成员访问、记录数组 能定义学生/比赛记录;能读写成员;能按字段比较
S2-06 排序与比较规则 让数据按题意排列 冒泡思想、sort、比较规则、稳定性概念 能排序整数;能写简单比较;能验证相同元素处理
S2-07 枚举与模拟 把过程逐步翻译成程序 枚举范围、状态更新、按题意模拟 能写有限枚举;能画状态变化;能避免漏分支
S2-08 复杂度与测试点 用规模判断程序是否可行 操作次数估算、O(n)/O(n^2) 直觉、边界数据 能比较两种写法;能选范围;能设计最小/最大测试

第三阶段:算法思维入门

目标:在已有 C++ 工具上,形成选择算法、证明直觉和构造测试的能力。

课件 学习目标 具体内容 检验清单
S3-01 数学与数位处理 用取模和整除处理数字结构 %/、位数、最大公约数、循环不变量 能拆分各位;能求 GCD;能解释循环何时结束
S3-02 递归与分治直觉 用“更小的同类问题”设计过程 递归边界、递归调用、栈的直觉、阶乘/输出 能写清终止条件;能追踪 3 层调用;不把递归当魔法
S3-03 二分查找 在有序条件下快速定位答案 单调性、左右边界、中点、死循环风险 能判断能否二分;能维护区间;能测试首尾答案
S3-04 前缀和与区间查询 让多次区间求和变快 前缀和定义、下标偏移、区间公式 能写前缀和;能查询任一区间;能处理从第一个元素开始
S3-05 双指针与滑动窗口 用两个位置维护连续区间 左右指针、窗口条件、移动时机 能解释两个指针含义;能保持窗口条件;能验证空/满窗口
S3-06 贪心选择 在局部选择中建立正确性直觉 选择标准、反例、排序后决策 能说出贪心规则;能找反例;能用小规模验证
S3-07 栈、队列与过程顺序 选择后进先出或先进先出结构 stackqueue、括号匹配、BFS 直觉 能选对容器;能完成括号匹配;能说出入队出队顺序
S3-08 动态规划初步 用已解决的小问题推到大问题 状态、转移、初始化、一维 DP 能写出状态含义;能处理初值;能手算前三步

第四阶段:CSP-J 专项

目标:把知识点串成赛题工作流,在正确性、复杂度和实现细节之间稳定切换。

课件 学习目标 具体内容 检验清单
S4-01 CSP-J 题面与程序规范 按竞赛要求提交干净程序 输入输出、文件/标准输入输出意识、数据范围、无提示语 能圈出范围;能删除调试输出;能按样例独立运行
S4-02 读题与建模卡 把自然语言题面拆成变量、状态和目标 已知/未知、样例反推、约束、算法候选 能填一张建模卡;能复述目标;能写出两个边界
S4-03 模拟题专项 正确还原多步骤规则 状态表、事件顺序、条件分支、样例追踪 能画状态表;能处理每一步;能用自造样例检验
S4-04 搜索与剪枝 在可控范围内探索选择 DFS、搜索树、回溯、剪枝条件 能写搜索边界;能解释回溯;能判断剪枝不漏解
S4-05 排序、查找与映射 用排序结果支持后续决策 排序后扫描、二分复用、计数数组、简单映射 能从范围选工具;能处理重复;能验证排序后逻辑
S4-06 DP 经典模型 识别可分阶段决策的问题 线性 DP、选或不选、最优子结构、状态压缩认识 能列状态表;能写转移;能检查不可达状态
S4-07 图与遍历基础 用点和边表达关系或地图 邻接表直觉、DFS/BFS、访问标记、连通块 能建小图;能防止重复访问;能说出 DFS/BFS 差异
S4-08 子任务与得分策略 在限制时间内争取稳定分数 子任务、部分分、先易后难、复杂度降级 能划分可做部分;能写保底方案;能安排检查时间

第五阶段:赛场整合

目标:达到 CSP-J 提高所需的稳定参赛状态,能在限时环境中实现、验证和复盘。

课件 学习目标 具体内容 检验清单
S5-01 限时解题流程 形成固定的读题到提交顺序 审题计时、建模草稿、编码、样例、提交前检查 能在限时内写流程卡;能预留检查时间;不跳过样例
S5-02 系统化调试 按证据而非猜测修错 最小复现、分段输出、断言思路、差分检查 能缩小错误范围;能构造反例;能记录修复原因
S5-03 C++ 常见陷阱复盘 规避语言层面的失分点 溢出、初始化、数组越界、运算优先级、输入格式 能识别五类陷阱;能选 long long;能检查数组范围
S5-04 80 分策略 在难题中保留可验证的部分 暴力基线、子任务、特殊情况、复杂度升级 能先写可过小数据的程序;能标注限制;能避免伪优化
S5-05 模拟赛一:实现与自测 在完整题组中练执行力 限时模拟、提交顺序、自测表、时间记录 能完成一次模拟;能保存测试数据;能记录未完成原因
S5-06 模拟赛复盘:错误分类 从错误中抽取下一次规则 读题错、算法错、实现错、边界错、时间错 能分类每个失分;能给每类写一个改法;能重做关键题
S5-07 模拟赛二:稳定性 用修正后的流程验证进步 新题组、独立解题、交叉检查、复盘对比 能独立完成;能与上次比较;能说明一个稳定习惯
S5-08 CSP-J 总复习与后续边界 整理参赛清单并明确下一阶段 知识地图、赛前清单、资料整理、CSP-S 衔接条件 能完成个人清单;能解释薄弱项;能区分 CSP-J 与后续拓展

录制与维护原则

  • 每节只讲一个关键认知变化;录制时不要在同一课同时塞入多个新算法。
  • 代码演示至少包含一个正常样例、一个边界样例和一个容易犯错的反例。
  • 讲完后让学习者先回答检验清单,再展示参考实现或拓展做法。
  • 任何新增课件先确定它属于哪个阶段、依赖哪一课、服务哪个 CSP-J 能力,再写视频讲稿。