先懂逻辑,再记符号
学生先通过连线理解「先做什么、再做什么」,再对照右侧生成的 main、cout、if 等,符号不再抽象。
本方案面向零基础或低年级学习者:先通过积木式可视化编程建立「程序如何执行」「变量与运算」「分支与循环」「函数与模块」等核心概念, 再分别完成 C++(24 课 / 半年)与 Python(24 课 / 半年)的逻辑衔接,帮助学生实现从看到写、从图到文的平滑过渡。
图片来自「Graph_C」素材包,对应文件名便于替换与维护。
与直接面对纯文本代码相比,可视化阶段解决三类典型困难。
学生先通过连线理解「先做什么、再做什么」,再对照右侧生成的 main、cout、if 等,符号不再抽象。
BeginPlay、Tick、白色执行线帮助学生建立「程序从入口开始、按分支与循环跳转」的印象,与 C++ 的控制流一一对应。
Print 节点输出即控制台效果,与 cout 行为一致,强化「写程序是为了解决问题」而非死记语法。
建议每节课尾声留 10~15 分钟:遮住画布,仅根据 C++ 片段复述逻辑,或微调数字后预测输出,逐步脱钩可视化依赖。
教学中可反复强调:「这块积木,就是以后代码里的这一句。」
程序启动时执行一次 → 类似 main 里最先执行的一段顺序语句。
按帧/间隔重复执行 → 引出「循环」思想,可与 while(true) 或定时逻辑类比(进阶再细讲)。
输出到面板 → cout << ... << endl;
字面量节点 → int、double、string、bool 常量与类型意识。
创建变量、赋值、读取 → 变量声明、=、标识符。
表达式节点 → 运算符与布尔表达式。
分支与循环结构 → if/else、while、for、switch。
自定义函数与返回值 → 函数定义、调用、return。
数组创建、取值、长度、增删 → vector 或数组(衔接课时再统一术语)。
模拟输入 → 与 cin 衔接时可说明「真实程序从键盘读入」。
各角色关注重点一览。
能用积木搭出顺序、分支、简单循环;能指着 C++ 代码说出「这里在判断、这里在重复」。
每节课有固定环节:搭积木 → 运行 → 读生成代码 → 口头翻译为自然语言。
每阶段有小作品(问候机、计算器、猜数、记分板等),便于展示与鼓励。
完成本方案后,可对接「青少年 C++ 四阶段」第一阶段第 2~15 课左右,减少入门阻力。
建议班额不超过 20 人,每人或每组一机;教师大屏同步演示生成代码区。
① 情境问题 → ② 用积木讨论算法 → ③ 搭建并运行 → ④ 对照 C++ 讲解关键词。
强调白色线为「先执行谁」:分支走 true/false 哪条、循环何时回到判断。
数字/字符串/布尔不同颜色连线,与 C++ 类型意识一致,减少乱连错误。
鼓励学生保存自己的 .json 蓝图;使用平台内置「实训」例题循序渐进。
从「补全一行 cout」到「手写 if 条件」,第 3 阶段起每周增加 5 分钟手写 micro-task。
阶段末:能独立搭出指定功能蓝图 + 口头解释生成代码中与该功能对应片段即达标。
每阶段 6 课,约一学期拓展课或寒暑假集训周可完成;可按校历压缩为 4 课/阶段。
界面、BeginPlay、Print、简单顺序流程。
数字与字符串、变量创建与修改、四则运算。
If、比较、While、For、简单 Switch。
函数定义与调用、数组与字符串积木、综合小项目。
| 阶段 | 课时 | 核心主题 | 可视化重点 | 衔接 C++ 要点 | 阶段成果 |
|---|---|---|---|---|---|
| 第一阶段 | 6 课 | 顺序与输出 | BeginPlay、Print、多节点串联 | main、cout、顺序结构、注释(教师补充) | 自我介绍输出、多行欢迎语 |
| 第二阶段 | 6 课 | 变量与计算 | 整型/字符串、Variable、Set、加减乘除 | int、string、赋值、算术表达式 | 简易计算器、计数器 |
| 第三阶段 | 6 课 | 判断与循环 | Compare、If、While、For、Switch | if/else、关系运算、while、for、switch | 猜大小、累加 1~N、多分支菜单 |
| 第四阶段 | 6 课 | 函数与数据集合 | FuncDefine/Call/Return、数组与字符串节点 | 函数、参数、return、数组/字符串基础 | 积分统计、简单「关卡」流程作品 |
目标:不怕界面,理解「从 BeginPlay 开始顺着白线执行」,并习惯看右侧 C++。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 C++ 衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 1 | 认识启秘可视化 | 界面浏览 | 节点库、画布、执行线、生成代码区、运行与输出面板 | 程序是一组按顺序执行的指令 | 能拖出 BeginPlay + Print |
| 2 | 让程序开口说话 | BeginPlay、Print、字符串 | 多个 Print 串联;观察输出顺序 | 对应多行 cout | 打印三句欢迎语 |
| 3 | 数字也会说话 | 整型、Print | 把数字连到 Print 的输入 | cout 可输出数字 | 打印学号或年份 |
| 4 | 顺序很重要 | 多个处理块顺序连接 | 调换两个 Print 顺序,观察输出变化 | 顺序结构:语句先后决定结果 | 「先问名再问好」小流程 |
| 5 | 保存我的小作品 | 综合 | 保存蓝图 JSON、从实训打开例题 | 程序可保存为「工程」类比 | 完成并保存第一课作品 |
| 6 | 阶段小测 | 综合 | 给定故事场景,独立搭出顺序输出 | 指着代码说出每行在干什么 | 阶段展示(1 分钟讲解) |
目标:理解「盒子装数、名字代表值」,并完成简单算术链。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 C++ 衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 7 | 给数据起名字 | Variable(创建变量) | 变量名、初始值、类型选择 | int x = 0; 的含义 | 创建 age、score 等变量 |
| 8 | 改变盒子里的数 | Set Variable、Get | 执行后变量值变化;Print 显示变化 | 赋值与再次赋值 | 计数 +1 流程 |
| 9 | 加法与减法链 | Add、Subtract、数字 | 把运算结果连到 Print 或 Set | 表达式与运算符 | 两数求和程序 |
| 10 | 乘法除法与余数 | Multiply、Divide、Mod | 除法与整除讨论;余数判断奇偶(预告下阶段) | % 与 / 的区别(教师演示代码) | 单价×数量=总价 |
| 11 | 字符串拼一拼 | Str Concat、String | 把文字和数字拼成一句(可先转字符串语境) | string 拼接思想 | 个性化欢迎语 |
| 12 | 阶段项目:小计算器 | 综合 | 输入两个数(可用 Input 或固定数)输出四则结果之一或多步 | 多变量、多语句协作 | 演示 + 保存蓝图 |
目标:If/While/For 与生成代码对照,建立「条件」与「重复」心智模型。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 C++ 衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 13 | 真与假 | Bool、Compare | 大于小于等于;把比较结果 Print | 关系表达式与 bool | 两个数比大小并输出文字 |
| 14 | 如果……那么…… | If、分支执行线 | 只走 true 分支;再试 false | if 与 else(可先单分支) | 及格线判断(固定分数) |
| 15 | 否则呢 | If 双分支 | true/false 不同路径不同 Print | if-else 互斥 | 天气建议双分支 |
| 16 | 重复做 N 次 | For 或固定次数循环思路 | 循环内 Print 计数;看生成 for | for 循环变量 i | 从 1 打印到 10 |
| 17 | 当条件成立就继续 | While | 防止死循环(教师设上限或正确条件) | while (条件) | 累加到超过 100 停 |
| 18 | 多选一 | Switch、多个分支 | 数字选菜单不同输出 | switch-case | 简易菜单程序 |
目标:体验模块化;接触数组/字符串积木;完成可视化小项目答辩。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 C++ 衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 19 | 把功能打包 | Function Define、Func Call | 定义无参函数,只 Print 一句 | void 函数与调用 | 封装「打印标题」 |
| 20 | 函数带参数与返回 | FuncParam、Return | 两数相加函数,结果 Print | 形参、实参、return | max(a,b) 类比 |
| 21 | 一组数据 | Array、Array Push/Get/Size | 往数组加数、打印长度 | 数组或 vector 直观认识 | 成绩列表录入 |
| 22 | 文字处理入门 | Str Len、Str Substr 等 | 取长度、截取子串 | string 成员或下标(衔接时统一) | 检测密码长度 |
| 23 | 综合:记分或关卡 | 函数+分支+变量 | 多函数分工:初始化、加分、判胜 | 多函数 main 协调 | 小组合作蓝图 |
| 24 | 结业展示 | 全平台综合 | 学生讲解积木思路 + 指出 C++ 关键 5 行 | 宣告可进入文本 C++ 系统学习 | 作品发布会 + 评优 |
目标:先用积木搭出 if/while/for/函数 的“心智骨架”,再快速转成可运行的 Python 代码(缩进、`print`、list 与函数)。
入口、print、变量与字面量。
比较、逻辑、分支与 while。
for/do-while、输入、list、字符串拼接。
字符串函数、数学函数、顺序、Tick、函数与综合作品。
| 阶段 | 课时 | 核心主题 | 可视化重点 | 衔接 Python 要点 | 阶段成果 |
|---|---|---|---|---|---|
| 第一阶段 | 6 课 | 入口与数据 | main/print、变量、Int/Float/String/Bool | def main、print、`x = ...`、字面量与条件预告 | 欢迎语 + 变量小脚本 |
| 第二阶段 | 6 课 | 判断与运算 | Compare、And/Or、Switch、While | True/False、`if/elif/else`、`while 条件:` 缩进 | 比较输出 + 菜单判断 + 累加循环 |
| 第三阶段 | 6 课 | 循环与集合 | For、DoWhile、Input、Array、StrConcat | `for i in range(...)`、`while True` + `break`、`input()`、list 与 `+` | 列表统计 + 拼句输出 |
| 第四阶段 | 6 课 | 函数与综合作品 | StrUpper/StrLen、MathFn、Sequence、Tick、FuncDefine/Call | 函数封装、顺序执行、多步脚本与可运行结构 | 综合作品发布会(课堂讲解) |
目标:不怕 Python 文本;理解“从入口开始,按顺序执行”。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 Python 文本衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 1 | 程序从哪开始:main 与 print | BeginPlay、Print | 先找到入口,再观察输出顺序。 | 对应 `def main():` 与 `print(...)`。 | 打印三句欢迎语 |
| 2 | 变量:给数据贴标签 | Variable、Set/Get、Print | 修改变量后再次输出验证变化。 | 对应 `x = 0` 与直接读取变量名。 | 计数器/分数牌 |
| 3 | 整数与字面量 | Int、Print | 把 42/0 当作可参与输出的数据。 | 对应 `print(42)` 这类整数字面量。 | 打印学号或年份 |
| 4 | 浮点数 | Float | 用小数表示测量与比例。 | 对应 `3.14` 等浮点字面量。 | 温度读数/比例计算小题 |
| 5 | 字符串 | Str | 用引号写文字,输出完整一句话。 | 对应 `print('hello')` 与字符串本身。 | 个性化口号或自我介绍 |
| 6 | 布尔 | Bool | 理解 True/False,并为条件判断做预告。 | 对应 `True`/`False`(首字母大写)。 | 及格线判断输出 |
目标:掌握判断语义;能把“积木逻辑”翻译成 if/elif/else 与 while。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 Python 文本衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 7 | 比较 | Compare | 用比较得到 True/False,并把结果输出。 | 对应 `print(3 > 2)` 等比较表达式。 | 大小对比输出 |
| 8 | 加减乘除 | Add、Mul(含四则扩展) | 让表达式直接驱动输出;理解整除与小数差异。 | 对应 `+ - * / //`(整除)。 | 四则计算器 |
| 9 | 与或 | And、Or | 组合两个条件,观察真值变化。 | 对应 `and` / `or`(小写关键字)。 | 条件过滤/通关判定 |
| 10 | 变量 | GetVar、SetVar | 用变量做“读→算→再赋值”。 | 对应 `x = x + 1` 这类写法。 | 累计得分脚本 |
| 11 | 分支与条件 | Switch(映射 if/elif/else) | 把多分支翻译成带缩进的 if 链。 | 对应 `if/elif/else` 结构与缩进。 | 菜单/天气选择程序 |
| 12 | While 循环 | While | 训练正确退出条件,避免死循环。 | 对应 `while 条件:` 与缩进循环体。 | 累加到目标停止 |
目标:掌握 for 遍历与 do-while 思路;用 list 让数据“变成作品”。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 Python 文本衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 13 | For 循环 | For | 用 range 生成序列并逐个输出。 | 对应 `for i in range(n):`。 | 打印/累计(1~N) |
| 14 | Do-While | DoWhile(while True + break) | 先执行再判断:用 while True 加 break 模拟。 | 对应 `while True:` + `break`。 | 至少执行一次的输入循环 |
| 15 | 输入 | Input | input() 得到字符串;转成 int/float 再计算。 | 对应 `int(input())` 或 `float(input())`。 | 输入两数计算结果 |
| 16 | 数组 | Array(list) | 创建一排数据;理解下标从 0 开始。 | 对应 `arr = [...]` 与 `arr[0]`。 | 成绩/数据列表 |
| 17 | 数组操作 | ArrayGet、Array Push、Array Size | 取元素、追加、求长度并联动输出。 | 对应 `lst[i]`、`lst.append(x)`、`len(lst)`。 | 列表统计与验证输出 |
| 18 | 字符串拼接 | StrConcat | 把两段字符串拼成完整句子。 | 对应字符串 `+` / 格式化拼接思路。 | 拼出个性化句子 |
目标:理解函数封装;把多块逻辑组合成完整 Python 小程序。
| 课次 | 课题 | 主要积木 | 教学活动要点 | 与 Python 文本衔接一句话 | 课堂产出 |
|---|---|---|---|---|---|
| 19 | 字符串函数 | StrUpper、StrLen | 把字符串变换(大写)并计算长度。 | 对应 `s.upper()` 与 `len(s)`。 | 文本处理小任务 |
| 20 | 数学函数 | MathFn | 使用 abs/min/max 与 math 模块的函数。 | 对应 `abs()` 与 `math.xxx()`。 | 数学小工具 |
| 21 | 顺序 | Sequence | 理解多行语句按顺序执行;用缩进组织流程。 | 对应多行代码从上到下执行。 | 流水线式多步脚本 |
| 22 | Tick | Tick | 用时间节奏(sleep/循环)实现周期输出。 | 对应 `time.sleep()` 或循环迭代节奏。 | 倒计时/节奏输出小作品 |
| 23 | 函数定义与调用 | Func Define、Call | 把重复逻辑封装成函数,并用参数复用。 | 对应 `def name(a,b):` 与函数调用。 | 封装求和/封装处理函数 |
| 24 | 综合 | 综合运用 | 整合变量、分支、循环、列表、函数完成最终小程序。 | 对应一份可运行脚本(入口 + 辅助函数)。 | 综合作品发布会 + 课堂讲解 |