第一阶段:青少年启蒙阶段
阶段主题:C++ 启蒙与程序表达(24 课)
- 建立计算机、程序、输入输出和变量的基本认识。
- 用有趣的小任务理解顺序、判断、循环三大结构。
- 从图形化思维平稳过渡到文字代码表达。
本方案面向青少年编程学习者,采用“四阶段、每阶段 24 节课、共 96 节课”的完整进阶体系。 课程从计算思维启蒙、C++ 语法基础、小程序设计,逐步过渡到算法思维、数据结构、竞赛题型训练, 最终帮助学生建立系统的 C++ 编程能力,具备参加校内选拔、信息学启蒙竞赛以及后续 CSP-J / NOIP 入门训练的基础。
图片来自「Cpp」素材包,对应文件名便于替换与维护。
一条从“会写小程序”到“能做竞赛题”的青少年 C++ 成长路线。
阶段主题:C++ 启蒙与程序表达(24 课)
阶段主题:语法基础与小程序设计(24 课)
阶段主题:算法思维与数据结构(24 课)
阶段主题:竞赛训练与信奥衔接(24 课)
让不同角色都能快速看懂:学生学什么、为什么学、最后能达到什么程度。
从启蒙到竞赛不再是跳跃式学习,而是每年有清晰阶段目标、能力积累和作品结果。
每课都有主题、核心内容和课堂简介,方便教师统一教案、课堂演示和课后复盘。
适用于校本课程、兴趣社团、分层培养和升阶竞赛梯队建设,展示完整教学闭环。
学生不仅能写出规范 C++ 程序,还能逐步建立审题、分析、建模、调试和竞赛表达能力。
兼顾青少年阶段认知特点和后续信息学竞赛要求。
每节课先用生活化场景或小游戏引入概念,让孩子先理解“为什么要学这个”。
通过流程图、变量变化、输入输出演示帮助学生建立程序执行过程的直观印象。
每个单元都安排从单点练习到综合小项目的任务,让知识真正落到手上。
从五年级开始逐步引入算法题和规范输入输出,帮助学生适应信奥训练节奏。
每个阶段 24 课,对应一个完整学年,循序渐进完成从启蒙到竞赛衔接。
| 阶段 | 对应年级 | 课时 | 阶段主题 | 重点能力 | 阶段成果 |
|---|---|---|---|---|---|
| 第一阶段 | 青少年启蒙阶段 | 24 课 | C++ 启蒙与程序表达 | 输入输出、变量、判断、循环、调试意识 | 能写简单交互程序和趣味小练习 |
| 第二阶段 | 青少年基础阶段 | 24 课 | 语法基础与小程序设计 | 函数、数组、字符串、模块化思维 | 能独立完成多步骤 C++ 小程序 |
| 第三阶段 | 青少年进阶阶段 | 24 课 | 算法思维与数据结构 | 排序、搜索、递归、复杂度、基础图论 | 能完成入门信息学算法题训练 |
| 第四阶段 | 青少年提升阶段 | 24 课 | 竞赛训练与信奥衔接 | 贪心、图论、DP、模拟赛、复盘能力 | 具备后续信奥系统训练的起步基础 |
目标:让学生不怕代码、会写基本程序、理解程序是怎样一步一步执行的。
| 课次 | 模块 | 课题 | 核心内容 | 课堂产出 | 课程简介 |
|---|---|---|---|---|---|
| 1 | 启蒙认知 | 认识程序世界 | 什么是程序、代码和编译 | 课堂规则卡 | 学生第一次认识 C++ 课堂,知道程序是让计算机按顺序做事情的指令。 |
| 2 | 输入输出 | 第一个 C++ 程序 | main、cout、endl | Hello World | 学生写出人生第一个 C++ 程序,体验“写代码就能让电脑说话”的成就感。 |
| 3 | 输入输出 | 让电脑连续说三句话 | 多行输出 | 自我介绍程序 | 学生通过多行输出完成自我介绍,理解程序可以按顺序展示信息。 |
| 4 | 输入输出 | 程序里的小礼貌 | 注释与代码规范 | 带注释代码 | 学生学会用注释解释代码含义,从启蒙阶段建立规范书写习惯。 |
| 5 | 变量入门 | 给数字起名字 | int 变量 | 年龄记录器 | 学生理解变量像小盒子,可以把数据装进去并随时调用。 |
| 6 | 变量入门 | 数字会变化 | 赋值与修改 | 糖果计数器 | 学生通过加糖果、减糖果的例子理解变量值是会变化的。 |
| 7 | 表达式 | 小小计算器一 | 加法与减法 | 加减法器 | 学生用程序完成简单加减运算,知道计算机最擅长按规则计算。 |
| 8 | 表达式 | 小小计算器二 | 乘法与除法 | 乘除法器 | 学生把四则运算补完整,理解不同运算符对应不同计算任务。 |
| 9 | 表达式 | 余数真有用 | % 运算 | 奇偶判断器 | 学生通过奇数偶数判断理解余数在程序中的实际价值。 |
| 10 | 输入 | 让用户来输入 | cin | 姓名和年龄录入 | 学生第一次体验程序和用户互动,知道代码不只是输出,也能接收输入。 |
| 11 | 输入 | 算一算总分 | 多个输入值处理 | 三科成绩统计 | 学生通过读取多个数据完成总分计算,感受真实应用中的输入流程。 |
| 12 | 顺序结构 | 程序为什么按顺序执行 | 顺序结构 | 早餐流程图程序 | 学生把生活流程翻译成代码,理解程序默认是一句一句往下执行。 |
| 13 | 比较判断 | 谁大谁小 | >、<、== | 数字比较器 | 学生学会比较两个数字大小,为后面的判断语句打基础。 |
| 14 | 判断结构 | 如果今天下雨 | if | 带伞判断器 | 学生通过生活例子认识 if,理解“条件成立才执行”的基本逻辑。 |
| 15 | 判断结构 | 如果不是这样呢 | if else | 及格提示器 | 学生理解程序可以在两个结果之间做选择,不再只是单分支判断。 |
| 16 | 布尔逻辑 | 真和假也能当数据 | bool | 开关状态器 | 学生认识 true 和 false,把真假状态当成程序中的正式数据。 |
| 17 | 布尔逻辑 | 两个条件一起看 | &&、|| | 门禁判断器 | 学生理解“并且”和“或者”的差别,开始处理多条件判断。 |
| 18 | 循环结构 | 重复做同一件事 | for 循环初步 | 重复问候程序 | 学生感受循环能让代码更短,不需要同一句话写很多遍。 |
| 19 | 循环结构 | 从 1 数到 10 | 循环变量 | 计数器程序 | 学生学会让变量随着循环变化,理解“第几次”是怎样产生的。 |
| 20 | 循环结构 | 打印小方阵 | 嵌套循环启蒙 | 星号图案 | 学生第一次体验双重循环,知道代码也能画出有规律的图形。 |
| 21 | 调试启蒙 | 代码为什么报错 | 常见语法错误 | 找错游戏 | 学生认识分号、括号、拼写等常见问题,建立不怕报错的心态。 |
| 22 | 综合练习 | 我的小问答机 | 输入、判断、输出综合 | 问答程序 | 学生把前面学过的内容串起来,完成一个会提问、会反馈的小程序。 |
| 23 | 阶段复习 | 三年级知识闯关 | 变量、判断、循环总复盘 | 阶段练习卷 | 通过闯关题和口头讲解帮助学生把零散知识整理成清晰结构。 |
| 24 | 阶段项目 | 趣味 C++ 小作品发布 | 阶段项目整合 | 启蒙展示作品 | 学生完成一个带输入、计算和判断的小作品,建立对 C++ 学习的信心。 |
目标:让学生能比较独立地写出结构完整、逻辑清晰、可调试的小程序。
| 课次 | 模块 | 课题 | 核心内容 | 课堂产出 | 课程简介 |
|---|---|---|---|---|---|
| 25 | 数据类型 | 更多类型朋友 | int、double、char | 数据类型表 | 学生知道不同数据要用不同类型保存,开始建立“类型”意识。 |
| 26 | 数据类型 | 不会变的量 | const 常量 | 圆周率示例 | 学生理解有些数据不应该被随便修改,学会用常量表达固定规则。 |
| 27 | 输入输出 | 更整齐地输出 | 格式化输出启蒙 | 成绩单打印 | 学生尝试把输出写得更美观,理解程序结果也要讲究清晰表达。 |
| 28 | 判断结构 | 判断里的判断 | 嵌套 if | 天气穿衣建议 | 学生开始处理层层判断的问题,理解复杂规则也能拆开来写。 |
| 29 | 判断结构 | 多选一的规则 | switch | 星期任务表 | 学生体验多分支选择结构,知道不是所有判断都要写成很多 if。 |
| 30 | 循环结构 | 先判断再循环 | while | 密码尝试器 | 学生理解 while 更适合“不知道要做几次,但知道什么时候停”的问题。 |
| 31 | 循环结构 | 先做一次也可以 | do while | 菜单选择器 | 学生知道 do while 至少会执行一次,理解它和 while 的区别。 |
| 32 | 循环综合 | 从 1 加到 100 | 累加与循环 | 求和程序 | 学生通过累加问题理解循环不仅能重复,还能不断更新结果。 |
| 33 | 循环综合 | 统计有多少个偶数 | 计数思想 | 偶数计数器 | 学生开始接触“统计”思维,这是后续算法学习的重要起点。 |
| 34 | 函数入门 | 把一段代码打包 | 函数概念 | 问候函数 | 学生理解函数像工具箱,可以把常用代码封装起来重复使用。 |
| 35 | 函数入门 | 函数也能接收参数 | 形参与实参 | 加法函数 | 学生学会把不同数据传给同一个函数,理解函数的通用性。 |
| 36 | 函数入门 | 函数还能返回结果 | return | 比较大小函数 | 学生知道函数不仅能执行动作,还能把计算结果送回来。 |
| 37 | 函数进阶 | 变量有自己的地盘 | 作用域 | 局部变量实验 | 学生认识局部变量和全局理解的差别,避免写程序时变量混乱。 |
| 38 | 数组入门 | 一排数据怎么存 | 一维数组 | 成绩列表 | 学生第一次接触数组,理解多个同类数据可以按编号整齐管理。 |
| 39 | 数组入门 | 逐个查看每个位置 | 数组遍历 | 点名器 | 学生用循环访问数组,建立“下标 + 循环”的经典组合意识。 |
| 40 | 数组应用 | 谁是最高分 | 最大值最小值 | 班级冠军榜 | 学生开始用数组解决真实问题,知道程序可以帮忙做统计和比较。 |
| 41 | 数组应用 | 这个数在不在 | 顺序查找 | 寻宝编号器 | 学生理解查找问题,知道如何在一组数据里找到目标。 |
| 42 | 字符串 | 程序也会处理文字 | string 基础 | 昵称生成器 | 学生认识字符串不只是数字世界,让程序开始能处理名字和句子。 |
| 43 | 字符串 | 文字也能拆开看 | 字符串访问 | 首字母提取器 | 学生学会按位置访问字符,感受字符串和数组之间的联系。 |
| 44 | 二维数据 | 课程表一样的数组 | 二维数组 | 座位表程序 | 学生把一维数组升级成表格结构,为后续矩阵和图论铺路。 |
| 45 | 综合设计 | 成绩管理小助手 | 数组 + 判断 + 循环 | 成绩分析程序 | 学生把前面学过的内容组合起来,完成一个有实际意义的小工具。 |
| 46 | 综合设计 | 函数化重构练习 | 模块化程序设计 | 重构版本代码 | 学生学习把长程序拆成多个函数,初步建立工程化思维。 |
| 47 | 阶段复习 | 语法基础总闯关 | 函数、数组、字符串复盘 | 阶段测试 | 通过练习题和口头讲题巩固四年级阶段的全部语法知识。 |
| 48 | 阶段项目 | 我的第一个完整小系统 | 阶段项目整合 | 小型管理程序 | 学生完成一个可输入、可判断、可统计的小系统,迈出独立编程的重要一步。 |
目标:让学生从“会写程序”升级到“会想办法解题”,逐步接轨信息学竞赛思维。
| 课次 | 模块 | 课题 | 核心内容 | 课堂产出 | 课程简介 |
|---|---|---|---|---|---|
| 49 | 算法启蒙 | 什么叫算法 | 步骤、效率、正确性 | 算法小海报 | 学生第一次系统认识“算法”概念,知道写程序不等于随便把代码拼起来。 |
| 50 | 算法启蒙 | 枚举法真直接 | 枚举思想 | 尝试所有方案程序 | 学生理解有些题可以通过一个一个尝试来解决,建立最基础的解题方法。 |
| 51 | 算法启蒙 | 模拟就是照着做 | 模拟法 | 规则模拟器 | 学生学习按题意一步步模拟过程,这是很多竞赛题的基本能力。 |
| 52 | 算法启蒙 | 前缀和的妙处 | 前缀和 | 区间求和器 | 学生体验预处理思想,知道有些题先多做一步,后面会更快。 |
| 53 | 递归入门 | 函数自己调用自己 | 递归概念 | 递归计数程序 | 学生第一次接触递归,理解“把大问题变成小问题”的思路。 |
| 54 | 递归入门 | 递归画台阶 | 递归展开 | 台阶问题 | 学生通过台阶和分层例子理解递归不是神秘技巧,而是有规律的重复。 |
| 55 | 排序算法 | 冒泡排序 | 交换与比较 | 从小到大排序 | 学生理解排序的本质是反复比较和交换,开始接触算法流程图。 |
| 56 | 排序算法 | 选择排序 | 每轮找最值 | 排名整理器 | 学生对比不同排序思路,知道同样目标可以有不同做法。 |
| 57 | 排序算法 | 系统排序更高效 | sort 使用 | 竞赛模板初步 | 学生开始接触竞赛常用库函数,提升代码书写效率。 |
| 58 | 查找算法 | 顺序找和二分找 | 二分查找启蒙 | 快速查找器 | 学生理解“有序数组可以更快地找”,建立效率意识。 |
| 59 | STL 入门 | vector 更灵活 | vector 基础 | 动态列表程序 | 学生认识动态数组,开始接触更现代、更实用的 C++ 写法。 |
| 60 | 数据结构 | 先进后出的盒子 | stack | 撤销操作演示 | 学生通过生活比喻理解栈结构,为表达式和搜索学习打基础。 |
| 61 | 数据结构 | 先来先服务的队列 | queue | 排队系统模拟 | 学生理解队列是按顺序处理任务的结构,适合很多图搜索问题。 |
| 62 | 数据结构 | 一对一对存信息 | pair 和 struct | 学生信息卡 | 学生学会把多个相关数据组合起来,提升对复杂数据的表达能力。 |
| 63 | 映射集合 | 统计次数最方便 | map | 词频统计器 | 学生通过统计字母或单词出现次数,理解键值映射的用途。 |
| 64 | 映射集合 | 去重真轻松 | set | 不重复名单 | 学生知道 set 的核心价值是自动去重和快速判断是否存在。 |
| 65 | 搜索算法 | 深度优先搜索 | DFS | 迷宫探索器 | 学生学习沿着一条路走到底再返回的搜索方式,开始进入经典竞赛算法。 |
| 66 | 搜索算法 | 广度优先搜索 | BFS | 最短步数迷宫 | 学生理解一层一层扩展的搜索方式,感受“最短路”思想的雏形。 |
| 67 | 图论启蒙 | 点和边的世界 | 图的基本概念 | 校园路线图 | 学生认识图论中的点、边和连通关系,为后续图算法做准备。 |
| 68 | 动态规划启蒙 | 把结果记下来 | DP 概念 | 斐波那契优化版 | 学生第一次接触动态规划,知道“重复计算太浪费”是很多难题的入口。 |
| 69 | 动态规划启蒙 | 走格子有几种走法 | 路径计数 DP | 网格路径题 | 学生用动态规划解决简单路径问题,建立状态和转移意识。 |
| 70 | 综合算法 | 排序和查找综合 | 数组经典题 | 综合题训练 | 学生把排序、查找、统计整合到一类题中,训练完整解题流程。 |
| 71 | 阶段复习 | 算法思维阶段复盘 | 搜索、排序、数据结构复习 | 算法训练卷 | 学生对五年级核心算法做系统整理,开始形成竞赛知识网络。 |
| 72 | 阶段项目 | 算法小能手挑战赛 | 综合算法项目 | 算法作品集 | 学生通过多题闯关或小型项目展示自己已经具备初步算法解决问题的能力。 |
目标:让学生具备正式进入信息学竞赛训练体系前的关键方法、题感和复盘能力。
| 课次 | 模块 | 课题 | 核心内容 | 课堂产出 | 课程简介 |
|---|---|---|---|---|---|
| 73 | 竞赛入门 | 什么是信息学竞赛 | 竞赛规则与题型认知 | 竞赛地图 | 学生了解信奥学习路径、训练方式和常见题型,建立长期学习目标。 |
| 74 | 竞赛规范 | 竞赛代码怎么写更稳 | 输入输出规范、变量命名 | 竞赛模板 | 学生学习比赛中的常用代码模板和规范,减少低级失误。 |
| 75 | 回溯搜索 | 试一试再退回来 | 回溯法 | 数字排列题 | 学生正式学习回溯思想,理解搜索树和“选择-撤销”的流程。 |
| 76 | 回溯搜索 | 组合与子集问题 | 组合枚举 | 组合生成器 | 学生掌握常见的排列组合搜索模型,这是竞赛入门的重要训练内容。 |
| 77 | 贪心算法 | 每一步都选当前最好 | 贪心思想 | 简单贪心题 | 学生理解并不是所有题都要全面搜索,有些题可以靠正确策略快速完成。 |
| 78 | 贪心算法 | 区间安排问题 | 排序 + 贪心 | 活动选择题 | 学生学习竞赛中高频的区间安排模型,提升题型辨识能力。 |
| 79 | 前缀与差分 | 快速处理很多区间 | 差分数组 | 批量加减题 | 学生理解前缀和进阶思路,学会更高效地处理区间修改问题。 |
| 80 | 二分专题 | 答案也能二分 | 二分答案 | 判定类题目 | 学生学习竞赛中很常见的“先判断、再二分”的解题套路。 |
| 81 | 结构体排序 | 多条件排序问题 | 自定义比较规则 | 排行榜题 | 学生处理更真实的数据题,学会按照多个条件组织排序规则。 |
| 82 | 栈与队列专题 | 单调栈启蒙 | 最近更大/更小元素 | 单调栈入门题 | 学生接触更竞赛化的数据结构模型,开始提升题型敏感度。 |
| 83 | 栈与队列专题 | 滑动窗口思想 | 队列优化启蒙 | 窗口统计题 | 学生理解“窗口移动 + 实时维护”的竞赛思维,提升处理连续数据的能力。 |
| 84 | 图论专题 | 最短路入门 | 最短路径概念 | 简单最短路题 | 学生从 BFS 最短步数过渡到图上的最短路问题,拓展图论视野。 |
| 85 | 图论专题 | Dijkstra 启蒙 | 带权最短路 | 路线规划器 | 学生认识更真实的图问题,理解“不同道路代价不同”的建模方法。 |
| 86 | 图论专题 | 并查集是什么 | 连通块维护 | 朋友圈合并题 | 学生学习一种高频竞赛数据结构,知道连通关系可以高效维护。 |
| 87 | 动态规划 | 背包问题启蒙 | 01 背包 | 物品选择题 | 学生进入信息学竞赛的经典专题,理解“有限选择 + 最优结果”的 DP 模型。 |
| 88 | 动态规划 | 最长上升子序列启蒙 | 序列 DP | 序列分析题 | 学生开始接触序列类动态规划,为后续竞赛训练打好基础。 |
| 89 | 动态规划 | 状态转移怎么想 | DP 复盘方法 | 状态图讲解稿 | 学生重点训练如何从题目中找状态和转移,而不是只会背答案模板。 |
| 90 | 综合专题 | 搜索还是贪心还是 DP | 题型辨析 | 方法选择图 | 学生练习根据题目特征选择解法,这是信奥训练中非常关键的一步。 |
| 91 | 模拟赛 | 第一次小型模拟赛 | 限时做题训练 | 模拟赛成绩单 | 学生第一次在限时环境里完成整套练习,体验竞赛节奏和心理要求。 |
| 92 | 模拟赛 | 模拟赛讲评课 | 讲题与错题复盘 | 错题本 | 学生学会从错题中找问题,理解竞赛进步很大程度来自高质量复盘。 |
| 93 | 综合训练 | 第二次小型模拟赛 | 专题混合训练 | 提升对照表 | 学生再次进行综合训练,对比第一次成绩,看到自己的真实成长。 |
| 94 | 综合训练 | 代码优化与常见失分点 | 边界、复杂度、特判 | 失分清单 | 学生学习如何减少竞赛中的低级丢分,让代码更稳、更完整。 |
| 95 | 升阶衔接 | 信奥训练怎么继续学 | 后续路线规划 | 个人学习路线图 | 学生明确六年级结束后如何继续进入系统化的信息学竞赛训练。 |
| 96 | 阶段总结 | C++ 与信奥启航发布课 | 四阶段成果展示 | 年度成长档案 | 学生回顾 96 节课的学习成果,带着完整基础进入更高层级的竞赛训练阶段。 |