| 课题 | 枚举——先枚后优(CSP 复赛专题 2) | ||
|---|---|---|---|
| 学段 / 对象 | 初中高年级 · 高中(CSP-J/S 复赛方向集训队) | 前置基础 | C++ 基础语法、一维与二维数组、多重循环、字符与整数转换 |
| 课型 | 算法专题新授课 + 上机实践课 | 课时 | 2 课时连堂,共 90 分钟(亦可拆为 45′+45′) |
| 教学环境 | 机房(每人一机)、投影、椰程信奥 OJ 题库(题号 ENUM258B / ENUM265C) | ||
| 教材依据 |
① CCF《CSP-J/S 认证大纲》入门级「基础算法」条目中的枚举(穷举); ② 《普通高中信息技术课程标准(2017 年版 2020 年修订)》选择性必修《算法初步》模块—— 「通过具体案例理解枚举、递推等基本算法思想,分析算法的时间效率,并用程序设计语言实现」。 (以上为概括性引用,非逐字原文;集训讲义以本校下发的最新大纲为准。) | ||
| 配套资源 | 互动课件 HTML(14 页) 说课稿 椰程信奥题目包 zip 原题与答案.md | ||
课例来源:B站 BV1NWnczEE9Z《CSP复赛专题2-枚举》,时长 12′47″(767 秒),UP 主「呆呆小可旺」。
课例为幻灯片微课(非课堂实录),以下时间轴由逐帧抽图识读还原,作为本教案的环节设计依据。
| 时间点 | 环节 | 内容要点 | 本教案对应 |
|---|---|---|---|
| 0:00 | 封面 | 「CSP 复赛专题 · 专题2-枚举」 | — |
| 0:45 | 枚举是什么 + 三步骤 | 暴力枚举/穷举定义;建模型 → 减空间 → 选顺序 | 环节②(扩为四步法) |
| 1:30 | 枚举常见题型 | 四大类八小类:基础枚举(数值/字符串)、组合枚举(子集/排列)、算法结合(+贪心/+DP)、场景枚举(生活/游戏) | 环节③(题型地图) |
| 3:20 | 真题一 题面 | [ABC258B] 数字盒子:N×N 循环网格,8 方向,走 N−1 步拼数,求最大 | 环节④(25′) |
| 4:45 | 铺开推演 | 把环绕后的网格横向铺开 4 组,示范「为什么答案是 9786」 | |
| 5:15 | 代码走读 | 方向数组 + 三重循环 + 取模环绕;起点变量写在方向循环之外 | |
| 9:10 | 真题二 题面 | [ABC265C] 传送带:H×W 网格按格中箭头走,求停点或 −1 | 环节⑤(25′) |
| 9:40 | 推演「为什么是 −1」 | 走进环里就永远出不来 | |
| 10:00 | 代码走读 | vis 标记数组判环;先判出界再前进 | |
| 12:20 | 收束 | 回到「枚举三步骤」收尾 | 环节⑦(小结) |
int x=i, y=j; 写在方向循环之外。这种做法在环形网格上其实恒正确(环面平移一一对应、每个格子恰好走到一次,与步数、N 是否互质无关),
只有换成普通(有墙)网格才会漏组合、出错(详见环节④「易错预警」)。
本教案按「理解它为何在环形网格恒对、但工程上仍一律写在循环内部」处理,把它转化为一个迁移性认知教学点。| 维度 | 现状 | 教学对策 |
|---|---|---|
| 已有基础 | 能熟练写 for 循环、二维数组下标访问;做过「百钱百鸡」「水仙花数」一类单层枚举题;会读题面里的输入格式。 | 起点定在「双层枚举要素」而非「枚举是什么」,避免重复讲授。 |
| 主要障碍一 不会拆枚举要素 |
看到「求最大值」就想找规律、想贪心,不愿意先承认「可以全试一遍」;问「枚举谁」答不上来。 | 环节②给出四步法卡片,强制先口述「枚举谁 / 共几种 / 能不能砍 / 什么顺序 / 怎么自查」,再动键盘。 |
| 主要障碍二 不会估算规模 |
对 8N³ 的量级没有概念,既不敢枚举(怕 TLE),也敢乱枚举(N=2000 也写三重循环)。 | 环节②做一次「心算 8N³」;环节③题型地图每张卡片都标上限;环节④⑤各算一次复杂度。 |
| 主要障碍三 边界与溢出 |
取模忘 +N;int 装不下 10 位数;网格题下标越界 RE。 |
不靠口头提醒,改用测试数据说话:OJ 里专门埋了 N=1、1×1、全 9 卡 int、25 万步蛇形四组边界数据。 |
| 动机特点 | 集训期连续上课注意力易下滑;但对「立刻能看到评测结果」的上机环节兴趣极高。 | 讲练比控制在 35′讲 : 45′练;两道真题都留「现场提交看 AC」的收口动作,形成即时反馈闭环。 |
| 核心素养 | 本课达成目标(可观测) |
|---|---|
| 信息意识 | 读完题面后能在 30 秒内判断「这题值不值得枚举」:先估规模,再看数据范围,而不是凭感觉。 |
| 计算思维 | ① 能把「所有可能」形式化为可遍历的要素组合(起点 × 方向 → 8N² 种); ② 会用 num = num*10 + 位 与 (x+dx+N)%N 两个建模原语;③ 能用「完全确定的路线 + 状态重复」识别循环并判环。 |
| 数字化学习与创新 | 能借助课件里的八方向枚举器、传送带单步模拟器验证自己的猜想;会用 OJ 的分组数据定位自己错在哪个子任务,而不是只看总判。 |
| 信息社会责任 | 能说出「结果正确 ≠ 写法可迁移」:能解释视频代码为何在环形网格恒对、却在普通网格必崩,主动写可解释、可迁移的实现。 |
vis 标记数组,先判出界再前进。| 难点 | 突破策略 | 落地动作(本课具体安排) |
|---|---|---|
| 难点一 (思维转向) |
问题链驱动:枚举谁?→ 一共多少种?→ 要不要全枚?→ 怎么写不出错? | 环节④用课件「八方向枚举器」让学生自己点出 9786,教师只提问不给结论;环节②板书四步法卡片全程不擦。 |
| 难点一 (规模估算) |
数量级心算:把 8N³ 落到「N=10 不到 1 万次」这种可感知的量。 | 环节②板书右侧画「8N² ≤ 800 / 8N³ ≤ 8000」对照;环节⑤再算一次 O(HW) ≤ 25 万。 |
| 难点二 (环形取模) |
可视化先行:先把环绕网格横向铺开成平面图,再谈取模。 | 沿用课例 4:45 的「铺开」做法(4×4 横竖各接一份自己,共 2×2 块),课件第 6 页做成「走一步」逐步揭示的铺开图;再讲 +N 的作用。 |
| 难点二 (溢出 / 越界) |
用测试点制造失败:先让错误写法在 OJ 上真的 WA/RE,再讲原理。 | 题包内埋 N=10 全 9(答案 9999999999,卡 int)、1×1 网格、25 万步蛇形三组「照妖镜」数据。 |
| 类别 | 清单 | 缺失时的廉价替代 |
|---|---|---|
| 软件/平台 | 椰程信奥 OJ(已导入 ENUM258B、ENUM265C)、Dev-C++ / VS Code + g++、投影 |
无 OJ 时用「本地 1.in/1.out 文件对拍」:把题包 testdata 解压发给学生对着跑,判分靠 fc 比对。 |
| 课件 | 互动课件单文件 HTML(14 页,零外部依赖,断网可用) | 提前拷贝到教师机本地磁盘 + U 盘双份;断网不影响任何交互模块(含枚举器与模拟器)。 |
| 教具 | 4×4 磁贴数字方格(演示环绕)、8 方向罗盘贴纸、传送带箭头磁贴一组 | 用 A4 纸打印网格 + 便利贴:数字写便利贴可撕可换;方向罗盘用纸盘画米字格。 |
| 纸质材料 | 枚举四步法卡片(每人一张)、课堂检测 3 题答题纸 | 直接印在讲义背面;或用课件第 16 页当堂检测投屏口答。 |
| 分组 | 2 人一组(异质搭配:一名「敢写」配一名「细」) | 单人一机亦可,此时把环节⑥的投票改为举手统计,不减信息量。 |
| 环节目标 | 把「枚举」从"最笨的办法"翻转为"复赛里最稳的拿分动作",建立本课的价值观共识。 | ||
|---|---|---|---|
| 教师活动 |
「先看一张账。CSP 复赛四道题,第一题通常是模拟或枚举,满分 100。第一题 AC 的人,二等奖基本就稳了。
而第一题最常考的就是——枚举。所以今天不谈技巧,只谈一件事:怎么把枚举写对、写全、不超时。」
投影课件第 2 页「学习目标 + 课前热身」。不展开讲策略,一句话带过即切页,控制在 90 秒内。
「先做个小投票:给你一把钥匙串,10 把钥匙开一把锁,你会怎么开?」
| ||
| 学生活动 |
「一把一把试。」 「对,一把一把试——这就是枚举。它笨,但它一定对。今天我们要学的不是怎么变聪明,而是怎么把笨办法做扎实。」
| ||
| 板书 | 枚举 = 列举所有可能 + 逐个判断 | ||
| 环节目标 | 给出可迁移的操作流程;建立「先估规模再写代码」的硬性习惯。 | ||
|---|---|---|---|
| 教师活动 |
投影课件第 3 页四步法卡片;板书同步写下四步,本环节写完不擦,保留整节课。
「枚举不是上来就写三重循环。四步:
一、建模型——枚举哪些要素?各有多少种?必须说出一个数来。 二、砍空间——哪些情况根本不必枚举?先砍掉。 三、定顺序——从前往后还是从后往前?哪个更好写? 四、会判断——写完不算完:结果对不对,写法对不对?」 在第一步停一下,追问:「一共多少种?说个数。」学生答不出就退回上一步重新数。
再追问:「如果算出来是 10 的 8 次方,还枚吗?」留白 3 秒,不急着给答案。
「不枚了……会 TLE。」 「对。先把规模说出来,就是为了防止你在砍之前就写崩。
记住一个量级感觉:1 秒大约能跑 1 亿次简单操作。今天我们所有的题都在 1 万到 25 万这个区间,非常安全。」
第 4 步「会判断」这一分钟先只埋钩子:「今天真题一的代码走读里,会出现一段
交上去能 AC、但写法是错的代码,到时候我们回来兑现这一步。」
| ||
| 学生活动 | 在四步法卡片上跟着填一遍;口算 8 × 10 × 10 = 800 与 800 × 10 = 8000。 | ||
| 即时判分 | 课件第 3 页「四步法排序」小练——把打乱的四步拖回正确顺序,即时判分,全班正确率低于 70% 则重讲一遍。 | ||
| 板书 |
枚举四步法:① 建模型 ② 砍空间 ③ 定顺序 ④ 会判断 (① 里必须报出一个数字:本题 8N² = 800、8N³ = 8000) 右边对照区:1 秒 ≈ 1 亿次 | 8N²≤800 | 8N³≤8000 | O(HW)≤25 万 | ||
| 环节目标 | 建立枚举题的识别图式:看到题面能归入哪一类,从而快速联想到解法骨架。 | ||
|---|---|---|---|
| 教师活动 |
投影课件第 4 页题型卡片,四大类依次点亮,每类只点两个小类名 + 一个例子,不展开讲代码。
「枚举不是只有一种长相,它有四张脸:
基础枚举——数值枚举(遍历区间筛数)、字符串枚举(遍历字符集匹配模式); 组合枚举——子集枚举(位运算/递归)、排列枚举(回溯全排列); 算法结合——枚举 + 贪心、枚举 + DP(枚举关键状态,子问题交给别的算法); 场景枚举——生活场景(活动安排)、游戏场景(网格方向搜索,就是今天的第二题)。」 易错预警 A:「组合枚举」的子集/排列要指数级增长,N 一大就爆。
本环节只要求能认出来,不要求会写——会写是后面专题的事。要求学生在这两类卡片上标一个「⚠」。
| ||
| 学生活动 | 在讲义知识树上,给四张脸各写一句自己见过的题目;邻座互查 30 秒。 | ||
| 即时判分 | 课件第 4 页题型卡片的「点开看解析」:读完例面,先让学生归类再点开校对。 | ||
| 板书 | 四张脸:基础 | 组合⚠ | 结合 | 场景 | ||
| 环节目标 | 完整走一遍「读题 → 铺开推演 → 建模型 → 编码 → 提交」;突破难点一与难点二。 | ||
|---|---|---|---|
| 教师活动 | 4.1 读题 (3′) |
投影课件第 5 页题面;带学生圈出三个关键词:N×N、上下左右相连(环绕)、走 N−1 步。
「'上下边缘相连、左右边缘相连'——这句话什么意思?走到最右边再往右一步,你在哪?」
「回到最左边。」 「这就是环形。我们待会用取模实现它。」
| |
| 4.2 铺开推演 (5′) |
投影课件第 6 页:右侧「铺开后 8×8」把 4×4 横竖各接一份自己,斜向走法在铺开的图上变成一条直线。点「走一步」逐步揭示 9→7→8→6,再回到左侧 4×4 环上指认同一条路线。
「环绕不好想,我们就把它铺平。斜着走 N−1 步,在铺开的图上看就是一条直线段。
谁上来指一条,把经过的数字读出来?」
「9 7 8 6……拼起来是 9786。」 「这就是样例答案。我们没用任何技巧,只是把所有走法都看了一遍。
现在数一数:起点有几个?方向有几个?一共多少种?」
「起点 16 个,方向 8 个,一共 128 种,每种走 3 步。」 板书右侧立刻记下 8N² = 128、8N³ ≈ 512,并回头指环节②的对照区。
| ||
| 4.3 建模型 (4′) |
「两个建模原语,今天必须带走:
拼数—— num = num * 10 + 当前数字;环绕—— x = (x + dx + N) % N。为什么要 +N?因为 C++ 里负数取模还是负数, -1 % 4 是 -1 不是 3,下标直接越界。」现场演示:把
+N 去掉,跑一次,看它 RE。让学生亲眼看到报错再改回来。易错预警 B(长整型):N=10 时答案最大是 9999999999,10 位数,
超过 int 的 21 亿。中间变量
num 和答案 ans 都必须用 long long。
样例 1 用 int 也能过,样例 2 必 WA——这就是最典型的"样例过、提交崩"。 | ||
| 4.4 方向数组 与编码 (8′) |
先投课件第 8、9 页「方向数组」两页(共约 6 分钟,一页信息量已拆薄)。
第 8 页(怎么记、怎么定义)约 3′:① 让学生对着米字格把 8 组 (dx, dy) 逐个念出来; ② 追问「为什么没有 (0,0)」;③ 点右侧对照表任意一行,看米字格联动高亮。 第 9 页(怎么用、要小心什么)约 3′:讲清三个动作(先算 → 判断边界 → 安全才赋值); 六条知识点不逐条讲,只强调「dx 管行、dy 管列」「数组长度必须等于方向数」; 最后点明起点也是枚举要素(这才是 N² × 8 的来源)。 再投课件第 10 页代码(约 2 分钟);不直接给完整代码,先给骨架,方向数组与取模两处留空让学生口述。
// 八方向数组:先写四个角,再补四条边,别写漏 int dx[8] = {-1, -1, -1, 0, 1, 1, 1, 0}; int dy[8] = {-1, 0, 1, 1, 1, 0, -1, -1}; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) for (int k = 0; k < 8; k++) { int x = i, y = j; // ← 必须写在 k 循环里面! long long num = 0; for (int c = 0; c < n; c++) { num = num * 10 + (g[x][y] - '0'); x = (x + dx[k] + n) % n; y = (y + dy[k] + n) % n; } ans = max(ans, num); } 巡视重点:只看两处——
x=i,y=j 是否在 k 循环内;long long 有没有写。其余错误先不纠。 | ||
| 4.5 写法辨析 (3′) |
「参考视频里把
int x=i, y=j; 写在了方向循环外面。看起来是漏枚举了,对吧?
但那段代码提交是 AC 的——我实测过全部 12 组数据,0 组失败。」停顿,让"AC 了"和"看起来错了"这对矛盾在学生脑子里待 5 秒,再解释。
「原因不是巧合,而是一个可以讲清楚的道理:本题网格首尾相连,走一圈会回到原地,
所以平移是一一对应的——每个格子恰好被走到一次,既不重复也不漏。
方向 k 实际从
(i,j)+步数·方向向量 出发,无论 N 是几、走几步,绕完 8 个方向都覆盖全部 8N² 种组合,所以起点不重置也全对。但它只在'网格首尾相连'时成立。换成普通(有墙)网格,起点会随方向漂移,大量组合被跳过而直接出错(我实测 3 万组随机数据有 22068 组不一致)。 所以工程上一律把起点写在方向循环内部。我们记住一条:结果正确不等于写法可迁移——你得说得出它在什么条件下才对。」 这是本课的信息社会责任落点。不要说"视频写错了"——视频在环形网格上的答案是对的,而且能证明;
要说"它只在环形时成立,普通网格必崩,所以我们写可迁移的版本"。这样既尊重原课例,又给了一个真实的工程判断案例。
| ||
| 4.6 提交 (2′) |
学生现场提交
ENUM258B;教师在讲台投出实时通过人数。「谁 WA 了,先看你是倒在第几个子任务:1~4 组 WA 基本是 N=1 或 N=2 的边界;
5~12 组 WA 大概率是
int 溢出。不要只看总判,要看分组。」 | ||
| 板书 |
数字盒子:枚举要素 = 起点(N²) × 方向(8) → 8N² 种,每种走 N−1 步 → O(8N³) 原语:num = num*10 + 位 | x = (x + dx + N) % N 两个坑:long long(10 位) | 起点变量必须在方向循环内 | ||
| 环节目标 | 掌握「循环模拟 + 判环」;突破"确定的路线不需要 BFS"这一常见误判。 | ||
|---|---|---|---|
| 教师活动 | 5.1 读题 (3′) |
投影课件第 11 页题面;动画演示一个 2×2 网格的走法。
「每格写着一个箭头,你站在哪就往箭头方向走一格。问你最后停在哪,
如果永远停不下来就输出 -1。先想清楚一件事:路线是确定的吗?」
「是,每格只有一个方向。」 | |
| 5.2 破误区 (4′) |
易错预警 C:这道题不是最短路,不要写 BFS。
网格题做多了会形成条件反射,这里必须显式拦一次。
判断标准:BFS 用于「每步有多个选择,要找最优」;本题每步只有一个选择,直接模拟即可。 「那么怎么知道'永远停不下来'?」
「走回走过的地方……」 「对。走到一个来过的格子 = 进了环 = 永远出不去。拿个本子记一下到过哪就行——
vis 数组。」 | ||
| 5.3 单步模拟 (4′) |
课件第 12 页传送带模拟器:先用样例 1点「走一步」走完 4 步,让全班一起报坐标;
再切样例 2点「自动走」,走到 (1,1) 闭合那一刻按暂停(按钮会变成「暂停」)。
工具齐了再讲:走一步 / 后退一步 / 直接走到底 / 复位,速度分慢 / 中 / 快; 讲错一步可以直接「后退一步」,不必复位重来。 「看,它又回到 (1,1) 了。回到起点的这一刻,答案就已经定了:-1。
不需要真的跑一万步。」
再演示一次「正常停下」的样例:走到边界那一格,箭头把自己送出去——停在当前格,不是送出后的格子。
最后切样例 3(4×4,走 11 格停住)与样例 4(5×5,走 15 格后死循环):
这两组路径更长,右侧「路径记录」会逐格列出坐标,让全班顺着念一遍,把「模拟」彻底变成可见的动作。
易错预警 D:输出的是停止时你仍站在的那一格,不是"试图走到的那一格"。
这是本题第一高频 WA。
| ||
| 5.4 编码 (8′) |
投影课件第 13 页;先写判断顺序的伪代码,再落代码。判断顺序是本环节的重点。
int x = 1, y = 1; while (true) { if (vis[x][y]) { cout << -1; return 0; } // ① 先判环 vis[x][y] = true; int nx = x, ny = y; // ② 先算,不动 char c = g[x][y]; if (c == 'U') nx--; else if (c == 'D') nx++; else if (c == 'L') ny--; else ny++; if (nx < 1 || nx > h || ny < 1 || ny > w) { // ③ 再判出界 cout << x << " " << y; return 0; // 输出原地! } x = nx, y = ny; // ④ 确认安全才前进 } 「注意顺序:先算 nx/ny,判出界,安全了才真的赋给 x/y。
这样数组下标永远不会越界,
vis 开 [505][505] 就够,不用开大一圈。」巡视重点:只看判断顺序——有没有人先
vis[nx][ny] 后判出界(会 RE);有没有人输出 nx/ny(会 WA)。 | ||
| 5.5 提交 (6′) |
提交
ENUM265C。本题给足 6 分钟,因为它比第一题更容易在边界上翻车。「TLE 的同学:你一定没判环。样例 2 就是个环,不判环它会一直跑。
RE 的同学:检查你有没有先访问
vis[nx][ny] 再判出界。」若时间紧张,此处改为「基础薄弱组先只做子任务 1(40 分),保证能拿停下类的数据」。
| ||
| 板书 |
传送带:路线确定 → 直接模拟,不用 BFS 顺序:① 判环(vis) → ② 算 nx/ny → ③ 判出界 → ④ 才前进 输出:停止时所在的格子 | 复杂度 O(HW) ≤ 25 万 | ||
| 环节目标 | 暴露前概念,把四个易错点从"听过的提醒"变成"自己判断过的事"。 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 教师活动 |
投影课件第 14 页四条判断,先举手投票、报出比例,再逐条讲理。顺序不可颠倒——先讲理就没人暴露真实想法了。
「第 4 条如果还有超过三分之一的同学举手说'对'——说明我环节④没讲透,
那我再补一句:我们写的代码要能迁移到下一道题,不是只赢这一道题。」
| ||||||||||||||||||||||
| 板书 | 结果正确 ≠ 写法可迁移(第 4 条单独圈红) | ||||||||||||||||||||||
| 环节目标 | 形成知识结构;用 3 道题检验目标达成度。 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 教师活动 |
投影课件第 15 页知识树 SVG,从下往上点亮:枚举定义 → 四步法 → 两个原语 → 判环 → 四张脸。
「今天带走三句话:
一、枚举 = 列举所有可能 + 逐个判断; 二、写之前先算规模,8N³ 不到一万次,放心枚; 三、结果正确不等于写法正确。」 发当堂检测答题纸(3 题,5 分钟);收齐后不逐题讲,只报正确率,把错题留到课后答疑。
| ||||||||||||||
| 板书 | 今日三句话(写在板书正中,不擦) | ||||||||||||||
枚举 = 列举所有可能 + 逐个判断
四步法:① 建模型 ② 砍空间 ③ 定顺序 ④ 会判断
两个原语:
num = num * 10 + 位x = (x + dx + N) % N真题一 数字盒子:起点 × 方向 = 8N² 种,O(8N³)
真题二 传送带:判环 → 算下一步 → 判出界 → 才前进
今日三句话(结课时写在正中)
规模对照表
推演草图位(4×4 铺开图,环节④用)
易错四条(环节⑥投票后当场记下举手比例)
右区是"活板书":规模对照表与四步法并列, 学生抬头就能比对;推演草图与投票数据属于过程性内容,课后拍照留存、下课前擦掉。
| 层级 | 任务 | 完成标准 |
|---|---|---|
| 基础 必做 |
① 在椰程信奥上补做 ENUM258B、ENUM265C 至 AC;② 手写一遍 4×4 样例的八方向推演过程(把 128 种走法中的 8 种起点 ×8 方向列成表)。 |
两题均 AC;推演表至少完成 1 个起点的 8 个方向。 |
| 提高 选做 |
① 把数字盒子改成求最小值,改动几行?(思考:要不要改 long long?)② 把传送带改成输出一共走了几步,停下时输出步数、-1 时输出 -1。 |
能说清改动点,并在原数据上跑通。 |
| 拓展 挑战 |
① 数字盒子变式:每一步都可以换方向(N ≤ 8),求最大——提示:DFS 回溯,规模 8^N,需要剪枝; ② 枚举 + 前缀和:在 N×N 网格中枚举所有 2×2 子方格求和的最大值,把 O(N⁴) 降到 O(N²)。 |
① 能估出 8^N 的规模并说明为什么必须剪枝; ② 能写出降维前后的复杂度对比。 |
| 目标维度 | 观测点 | 数据来源 |
|---|---|---|
| 信息意识 | 环节②「四步法排序」正确率 ≥ 70%;环节④能自己答出 8N² 与 8N³。 | 课件即时判分统计 |
| 计算思维 | ENUM258B、ENUM265C 通过率;错误集中在哪个子任务。 | 椰程信奥后台分组判分 |
| 数字化学习与创新 | 能否用课件枚举器/模拟器自主验证猜想;能否按子任务定位错误而非只看总判。 | 巡视记录 + 学生提问质量 |
| 信息社会责任 | 环节⑥第 4 条判断题的举手正确率 ≥ 70%。 | 现场举手统计 |
| 整体达成 | 当堂检测 3 题正确率:≥ 80% 为达成,60%~80% 需下节课前 5 分钟回炉,< 60% 则需重上环节④。 | 检测答题纸 |
| 反思项 | 预留记录位 |
|---|---|
| 时间实测 | |
| 哪一环节超时/缩水 | |
| 环节⑥四条投票比例 | |
| 学生最高频的错误 | |
| 下次要改的一件事 |
| 可用时长 | 砍法 |
|---|---|
| 90 分钟 | 按本教案完整执行。 |
| 60 分钟 | 环节③题型地图压到 3 分钟(只留四大类名称,不举例子);环节⑥改为课后在题单里作答; 两道真题各减 5 分钟讲解、各保 12 分钟上机。 |
| 45 分钟 | 只讲环节①②④ + 现场提交第一题;环节⑤改为课后独立完成 + 下节课 5 分钟讲评。 不要砍环节④的 4.5 写法辨析——它是本课唯一的高阶认知点。 |
| 拆成 2×45′ | 第一节:①②③④(含第一题提交);第二节:⑤⑥⑦(含第二题提交)。两节课开头各用 2 分钟回指板书四步法。 |
1.in/1.out,fc 或 diff 比对)。| 材料 | 用途 |
|---|---|
| 互动课件 HTML | 课上投影主线;页结构 = 本教案环节①~⑦一一对应。 |
| 说课稿 HTML | 用于考评/教研场景的口播稿,八说结构 + 答辩三问预案。 |
| 椰程信奥题目包 zip | 课前导入 OJ;题号 ENUM258B(12 组数据)、ENUM265C(13 组数据)。 |
| 原题与答案.md | 教师备课用,含两题完整题面、AC 代码、易错点表与测试数据设计说明。 |
教案依据 B站课例 BV1NWnczEE9Z《CSP复赛专题2-枚举》还原编写 · 配套互动课件与说课稿 · 2026 国庆集训