2022年12月那场中国电子学会图形化(Scratch)三级考级,考完当天我就收到不少家长的反馈:孩子说“题目能读懂,但就是不知道程序从哪下手”。这个反馈其实很真实。二级还在玩“角色动一动、声音响一响”,到了三级忽然要处理变量、列表、多角色配合、逻辑嵌套,很多孩子的编程思维一下子没接上。
这篇文章我打算按2022年12月这场三级真题的考查逻辑,把三级考级到底考什么、编程题怎么拆、平时练习该练什么讲清楚。适合两类人参考:一类是准备考三级的学生,另一类是像我一样带考级班、需要给家长解释“为什么二级满分但三级吃力”的老师。内容不会照着题目念答案,而是告诉你考场上碰到这类题,应该按什么顺序思考。
1. 三级考级到底在考什么:从“搭积木”到“写程序”的跨越
1.1 知识范围与题型结构
中国电子学会的青少年软件编程等级考试,图形化部分一共分四级。四级先不谈,单看三级,它的定位很明确:要求学生从“会用积木”过渡到“能解决问题”。
以2022年12月这场为例,卷面整体结构和往期保持一致,由选择题、判断题和编程题组成。选择题和判断题覆盖面比较广,几乎所有模块都会涉及:运动、外观、声音、事件、控制、侦测、运算、变量,一个不落。真正拉开分数差距的,是最后那几道编程综合题,差不多占了整张卷子的半壁江山。
三级和二级最大的区别在于:
- 变量和列表不再是选修内容,而是必考工具。二级通常只要做个计数器,三级需要你用变量记录状态、用列表存储多条数据。
- 多角色协作开始出现。二级每个角色各写各的脚本,三级经常要求角色之间用“广播”互相通知,比如A角色发一个消息,B角色收到后才能行动。
- 逻辑组合变复杂。单层条件判断升级成“如果…那么…否则”嵌套在“重复执行”里,还要配合比较运算和逻辑运算。
- 数值计算比重上升。随机数、坐标范围、方向角度、四则运算混合出现,编程题里经常要自己算边界。
我经常跟家长打一个比方:二级是让孩子认识零件,三级是让孩子用零件组装一台能跑的小机器。零件还是那些积木,但要求从“会拼”变成“拼出来能干活”。
1.2 拿证的关键不是刷题量,而是建立“程序思维”
很多孩子备考三级特别爱刷选择题,刷了几百道,考试时依然栽在编程题上。原因很简单:选择题考的是“认识”,编程题考的是“设计”。
程序思维说白了就是三件事:先拆步骤,再排顺序,最后考虑特殊情况。
比如一道题要求“小猫从舞台左边走到右边,碰到边缘后反弹”。二级孩子直接拖一个“移动10步”,再套一个“碰到边缘就反弹”,做完收工。三级的要求往往是“小猫来回走,走到第3次的时候停下来,并说出总共走了多少步”。这就逼着孩子去思考:步数要存在哪里?怎么判断走了第3次?停下来之后还要做什么?
这种思维习惯靠背题背不出来,必须在实际搭建程序的过程中慢慢养。所以这篇文章后面所有内容,我都会围绕“拿到题目先想什么、再想什么、最后检查什么”来展开。
2. 核心考点逐个拆解:变量、列表、逻辑组合一个都不能少
2.1 变量与列表:考级卷子里最容易被忽视的大头
我在带考级班时发现一个规律:三级备考前,十个孩子里至少有六个只会用变量存分数,完全没接触过列表。但这恰恰是三级考查的重点。
先讲变量。三级对变量的要求不只是“会新建”,而是“知道什么时候该新建”。判断标准就一条:这个数据需要被反复修改或跨越多个脚本使用吗?如果需要,就建变量。
举个例子,一个成绩记录程序里,每次答对加分,分数要显示在舞台上,最后还要和“是否通关”的判断挂钩。这种数据就必须用变量。变量在考试里常考的细节有三个:
- 初始化位置:很多孩子把“将变量设为0”放在脚本中间,每次点击绿旗后变量会累加而不是清零,导致成绩越算越高。正确做法是在
当绿旗被点击之后、所有逻辑开始之前,第一时间初始化。 - 全局变量与局部变量:考试里默认创建的是“适用于所有角色”的全局变量,如果你在某个角色下创建时勾选了“仅适用于当前角色”,其它角色就读不到这个变量的值,这在多角色题里会直接造成程序“神秘失灵”。
- 变量显示与隐藏:考级题经常要求“舞台上不显示变量”,但很多孩子忘记取消勾选,交上去的作品画面上多出一个刺眼的数字框,按评分规范会扣印象分。
再说列表。列表在三级里本质上是“一组有编号的格子”,编号从1开始。不少孩子第一次看到列表积木时一脸懵,其实可以把它理解成超市的储物柜:每个柜子有编号,你可以往里面放东西、取东西、删东西,还能告诉别人“某一排柜子里一共有几个物品”。
三级对列表的常见操作就五种:
将东西加入列表:在末尾追加一项,最常用。删除列表的第…项:注意删除后,后面的项目会自动往前移,编号会变化。替换列表的第…项为…:修改指定位置的内容。列表的第…项:读取指定位置的数值,常在判断和计算中使用。列表的项目数:获取列表长度,用来控制循环次数或判断是否为空。
考级里列表常和“记录”挂钩。比如“记录玩家5次游戏得分”“记录所有被猜过的数字”“生成10道不重复的题目”。这些都是列表的典型用法。平时练的时候,我建议孩子自己做一个“猜数字游戏”,把每次猜测的数都加入列表,最后说“你一共猜了X次,分别猜了哪些数字”。这一个作品就能把列表的大部分考点覆盖掉。
2.2 坐标、方向、随机与外观特效:把“看得见的画面”变成“算得清的逻辑”
图形化编程里最容易让三级考生翻车的地方,是所有“跟位置有关”的题目。
先说坐标。Scratch舞台的坐标系规则是:中心点坐标是(0,0),X轴取值范围大致在-240到240之间,Y轴在-180到180之间。很多题目不会直接告诉你坐标,而是让你通过观察特征去判断。比如2022年12月的一道选择题,问“角色在舞台右下角,X坐标和Y坐标分别是什么”,如果孩子对坐标系没概念,光靠猜肯定不行。
做题技巧很简单:右下角意味着X为正、Y为负。同理,左上角X为负、Y为正。另外,把角色拖到舞台边缘时,它的坐标并不会自动限制在边界内,所以涉及到“碰到边缘就反弹”或“随机位置出现”时,要自己用坐标范围来控制,否则角色会半截身子跑到舞台外。
方向这一块,三级主要考两点:面向某个方向和旋转模式。很多人不知道,“面向0度”是朝上,“面向90度”是朝右,默认方向是90度。如果角色被设置了“左右翻转”模式,哪怕你写“面向-90度”,它也不一定转成你期待的样子。考场上遇到“角色上下移动”的题,最稳的做法是用“将Y坐标增加10”而不是“移动10步”,因为后者会受到角色当前方向影响,容易跑偏。
随机数在三级里基本是必考。它通常配合“随机出题”“随机位置”“随机造型”出现。需要注意一个反直觉的细节:在1和10之间取随机数在Scratch里是包含1和10两个端点的。有判断题就会在这里挖坑,问“取的数一定在1到10之间吗”,答案是“一定在”,因为两端都包含。
还有一个冷门考点,就是热搜词里提到的“Scratch亮度”。外观模块里有一组特效积木,其中将亮度设为经常被用来做角色状态的区分,比如角色被击中后变暗。但它有个大坑:亮度一旦设置,角色不会自动恢复。如果你在程序里把亮度设为50,下一次循环没有把它重置为0,角色会一直“黑着”。所以在初始化阶段,一定要把亮度、虚像、颜色、大小这些外观属性全部重置一遍。
2.3 简单算法:累加、穷举、状态标记
三级虽然是入门级,但已经开始涉及“算法”的雏形。别被“算法”两个字吓到,考级范围很具体,就那几类。
第一类是累加器。典型场景是“从1加到100”。核心逻辑是:先建一个变量“总和”并初始化为0,然后重复执行100次,每次把“总和”增加“当前的数”。这中间真正容易错的是“当前的数”怎么表示,需要配合另一个变量做计数器。我在课堂上经常说一句话:累加器是“一个一个数着加起来”,计数器是“记着加到第几个了”。两个变量配合使用时,名字一定要分清。
第二类是穷举法。典型场景是“找出1到100之间所有能被3整除的数”。做法是把这些数逐个判断一遍,满足条件的就加入列表。三级不会考太复杂的判定条件,一般就是“从1循环到N,里面套一个如果那么”。
第三类是状态标记。这个比较抽象,我用一个考级常见题说明:要求“按下空格键,角色的颜色发生变化,再按一次,颜色又变回来”。很多孩子会写成“按一次颜色变,第二次还是变”,得不到切换效果。正确思路是设置一个变量“状态”,值为0代表红色、值为1代表蓝色。每次按下空格,就把状态切换一次,再根据状态设置颜色。这个“用变量记录当前处于哪种状态”的思路,在三级编程题里反复出现,值得重点练。
3. 编程题实战复盘:一道“急算闯关”式题目的完整实现
3.1 题目需求还原与分析
编程题是三级考级的决胜局。我拿一道和“急算大冲关”风格接近的综合题来拆解,这套思路放在2022年12月卷子里同样适用。
假设题目要求如下:
- 背景呈现一个闯关舞台,角色是“出题老师”,要求随机生成乘法算式。
- 玩家通过键盘输入答案,答对得10分,答错不得分。
- 一共出10题,过程中用列表记录每一题的答题结果。
- 全部答完后,角色说出总分和答对题数。
这道题覆盖了变量、列表、随机数、运算、条件判断、循环、触摸输入和字符串拼接,几乎把三级编程题的考点一网打尽。拿到题目先不要急着拖积木,先在草稿纸上把流程分四步理清楚:初始化、出题、判断、收尾。
3.2 程序搭建全流程
第一步,初始化。点击绿旗后,把变量“得分”设为0,把变量“题号”设为1,把列表“答题记录”清空。还要把角色的亮度、大小、位置全部恢复默认。这一步做对了,整个程序就赢了一半。
第二步,出题。最简单的出题方式是用随机数生成两个乘数,然后把题目用“说”的方式展示出来。注意,乘数范围最好在2到9之间,这样既符合小学三年级水平,也避免出现两位数乘两位数导致计算量过大。生成的算式要拼进一句话里,比如:
说 (连接 (连接 (乘数1) (连接 “×” (连接 (乘数2) “=?”)))这里有一个很多孩子会漏掉的细节:题目生成后,乘数不能只显示在角色气泡里就完事。玩家答题需要时间,角色说话的气泡会消失,所以最好还要把算式显示在舞台背景上。做法是在造型里做两个带数字的文本框,或者用一个“题目显示”角色来承载算式。考级评分时,“信息展示是否清晰”也是一个隐性得分点。
第三步,判断与记录。这里要使用询问并等待积木,让玩家输入答案。玩家输入的内容会存在回答这个内置变量里。拿到答案后,用如果…那么…否则判断:
如果 回答 等于 (乘数1 * 乘数2) 那么 将 得分 增加 10 将 “正确” 加入列表 答题记录 否则 将 “错误” 加入列表 答题记录判断的关键在于:回答默认是文本类型,而乘法计算结果默认是数字类型。虽然Scratch在比较时会做一些自动转换,但为了稳妥,建议用一个“将回答设为数字”或直接用数学运算结果进行比较,避免出现“明明答案是对的,却提示错误”的诡异情况。
第四步,循环与收尾。出题和判断要重复执行10次,所以把第二步和第三步放进重复执行10次里。每一次循环结束时,让“题号”增加1。10次结束后,统计答对题数。这里不用额外数,因为每题答对加10分,总分除以10就是答对题数。最后角色说:
说 (连接 (连接 “总分:” (得分)) (连接 “分,答对 ” (连接 (得分 / 10) “题”)))这里又出现两个细节。第一个,得分 / 10如果除不尽,结果会带小数,所以出题阶段尽量保证每题分值一致,让总分能被10整除。第二个,收尾阶段要停下来,不能让程序再次从第一题开始,所以循环结束后可以做等待停止,或者用独立的事件触发收尾逻辑。
3.3 素材处理技巧:网上找的素材怎么直接用到Scratch里
很多孩子做编程题时不缺想法,缺合适的素材。尤其是考试时间紧张,临时找图片,又大又乱,传到Scratch里不是白底就是变形,非常影响最终效果。
根据我平时带学生的经验,网上找素材直接用到Scratch里,要注意四个点:
- 选PNG格式的透明背景图。导出图片时,优先选透明背景的,这样角色放到任何背景上都自然。如果只有白底图,可以在Scratch的造型编辑器里用“选择工具”框选白色区域后删除,但效率不高,建议提前用在线抠图工具处理好。
- 控制文件大小和分辨率。Scratch对上传素材的大小没有特别严格的限制,但文件太大,切换到演示模式时会卡顿。一般角色图控制在200KB以内,背景图控制在500KB以内,尺寸不超过舞台的分辨率即可。
- 音频素材优先用MP3或WAV。Scratch对音频格式支持有限,很多网上下载的M4A或FLAC格式传不进去。可以用格式转换工具转成MP3,同时注意时长不要超过10秒,否则循环播放时会有明显间隔。
- 命名别用特殊符号。上传后的素材会显示在积木参数里,命名用英文、拼音或简单中文即可。有些孩子下载的素材叫“!@#$%.png”,在程序里想用指定声音或造型时根本找不到。
其实在准备考级作品或参赛作品时,我建议学生优先用Scratch自带素材库里能表达意思的素材,它们的风格统一,尺寸也合适,最关键是不会在考场上因为素材问题浪费宝贵的答题时间。
4. 考场上容易丢分的五个坑与排查技巧
4.1 常见错误及排查思路
每年三级考级,总会有那么几个问题反复出现在学生的卷面上。这里我按出镜率从高到低整理成一张表,碰到“程序跑不起来”的情况,可以按表里的方向排查。
| 现象 | 常见原因 | 排查顺序 |
|---|---|---|
| 点绿旗没反应 | 脚本入口不对,或条件初始化失败 | 先看是不是所有角色都有当绿旗被点击开头,再检查变量是否在入口处重置 |
| 变量一直是0,或分数异常翻倍 | 初始化位置不对,变量没有清零 | 看“将变量设为0”是否在第一行,循环里有没有不该发生的重复加分 |
| 角色走到舞台外面,找不到了 | 没有限制坐标范围,或坐标和方向冲突 | 重点检查Y坐标或X坐标是否超出边界,必要时用“将X坐标设为-200”做边界钳制 |
| 列表数据乱,或者少一条 | 列表删除和增加顺序反了 | 打开“显示列表”,单步运行,看每一步列表内容变化是否符合预期 |
| 角色亮度、虚像效果残留在画面上 | 外观特效被设置后没有重置 | 在初始化阶段统一重置亮度、虚像、颜色、大小 |
| 答案明显正确,却被判定为错误 | 类型不匹配:输入的是文本,判断用的是数字 | 将“回答”和正确的数值用同一类型比较,必要时先做数学转换 |
这里我要特别强调“初始化”这三个字。我批过一次模拟考试的大题,二十多个学生里,有六七个程序的分数一开始就显示成上一轮留下的数字。问题几乎都出在同一个地方:点击绿旗后没有先给变量和列表做重置。这个习惯如果不在平时训练中养成,考场上越是紧张越容易犯。
4.2 冷门但有效的提分细节
除了上面的排错表,还有几个细节是很多考生不知道的,但踩中任何一个都会直接影响得分。
第一,给每个重要角色的脚本加注释。在积木块上右键选择“添加注释”,写一句这个角色负责什么。这不会影响程序运行,但编程题判卷时有主观分,清晰的注释能帮阅卷人快速理解你的程序结构,观感完全不同。
第二,学会使用“绿旗重置”的统一入口。三级编程题通常有多个角色,有些孩子习惯在每个角色身上都写一段当绿旗被点击,这本身没问题,但如果一个角色的脚本里既有绿旗启动,又有消息接收,还有按键事件,三个入口同时存在,很容易互相干扰。我个人习惯是:大部分逻辑用一个“主控角色”通过广播来调度,其它角色只接收消息后做自己的事。这样逻辑清楚,出问题时也容易定位。
第三,测试至少要玩三轮。第一轮正常操作,确保流程通顺;第二轮故意答错,看看错题的反馈是否正确;第三轮什么都不干,狂点绿旗,看看初始化有没有问题。很多“考场上莫名丢分”的bug,都是第三轮这种极端情况下才暴露出来的。
第四,选择题里的“运算优先级”题,多用代入法。三级选择题里经常出现“下列哪个表达式的值最大”“当变量a为10,b为20时,下列结果为真的是”这类题目。与其心算,不如把数值代进去一步一步算,写在草稿纸上。运算优先级就两条:先括号,再乘除,再加减,比较和逻辑最后算。这跟数学课上学的内容一致,只是Scratch里把比较运算也当成一种“运算”,需要单独注意大于、小于、等于的优先级。
5. 和蓝桥杯Scratch初级组对比:考级备考与竞赛备考怎么选
最近不少家长问我,电子学会三级和蓝桥杯Scratch初级组有什么区别,孩子时间有限,先准备哪个。我干脆放在这篇文章里一起说清楚。
电子学会的三级考级,本质上是知识水平测试,大纲固定、题型稳定、答案明确,重点是“考查学生是否掌握了规定的知识”。它的优势在于覆盖面广,变量、列表、事件、控制、运算、侦测都会考到,对编程基础能力的检验非常全面。备考方式也相对直接,把大纲里的知识点逐项过一遍,再配合历年真题做练习,通过率是比较可控的。
蓝桥杯Scratch初级组竞赛则是选拔性比赛,更看重创意、算法思维和现场解决问题的能力。题库里经常出现“设计一个某某游戏”“做一个小动画讲述一个故事”这类开放题,答案不唯一。作品完成度、交互体验、程序健壮性、创意表达都会成为评审因素。它比考级更有挑战,但也能反过来促进知识点的灵活运用。
我的建议很简单:**如果孩子是第一次参加编程类评价,先把电子学会三级作为目标和铺垫;如果三级已经通过,或者孩子基础明显好于同龄人,再考虑蓝桥杯初级组练手。**两者不存在谁替代谁的问题,知识点高度重合,只是考察方式不同。三级打的是“地基”,蓝桥杯练的是“盖房子”。
从平时训练的角度看,我推荐用“考级打底+竞赛拓展”的方式。平时做考级真题时,按部就班把知识点打牢;周末可以让孩子用同样的知识点做一个自己的小游戏,比如前面说的“急算大冲关”改版。哪怕只是把一个口算题改成加减混合、加限时倒计时、加排行榜,都能让孩子体会到“同一个程序不同的写法”,这种灵活性,恰恰是竞赛和考级共同想要的东西。
6. 说点考级之外的实在话
带考级班这几年,我最明显的感受是:三级这道坎,卡的从来不是智力,而是习惯。知识点的密度一下子上来了,孩子如果还停留在“拖积木看效果”的阶段,不习惯先想逻辑再动手,就会觉得特别累。反过来,平时愿意把一个作品反复改、反复拆的孩子,到了三级反而会觉得这是最有趣的一个阶段,因为能自己设计的东西越来越多了。
如果你正在备考三级,我建议今天回去就动手做一件事:用变量和列表做一个小工具,比如记录一周的阅读天数、做一个随机出题机。不用管它好不好看,先把程序的逻辑跑通。做过一次,考场上再看到变量和列表题,你会觉得“这个我熟”。
如果这篇文章里的某个知识点勾起了你的困惑,那正好说明你找到了自己的薄弱点。三级备考不怕遇到问题,怕的是“好像都会,一考就废”。把每个困惑都放进一个小程序里亲手试一遍,比刷十套卷子都管用。