每年大赛一结束,最先在家长群里传开的往往不是获奖名单,而是真题卷。2024年粤港澳青少年信息学创新大赛图形化编程小高组的试卷,从暑假期就在各个赛群、机构群里反复转发,很多家长拿到后的第一反应是“这不就是Scratch拖积木吗,难度好像不大”,可真让孩子限时做一遍,能过60分的不多。我今年带的小高组集训队专门用这份试卷做了全真模拟,复盘结果挺有意思:丢分最狠的往往不是最后一两道压轴题,而是前面的读程题、条件判断和列表运算。
这篇文章不打算把整张卷子从头到尾贴一遍,那样既占篇幅又没营养。我更想从这份真题纸卷背后,聊一聊小高组图形化编程到底在考什么、命题人惯用哪些“陷阱”、网上流传的“第16题”该怎么看,以及最后一个多月该怎么精准备考。如果你正准备参加同类赛事,或者家里有孩子在学图形化编程,这篇内容应该能帮你少走不少弯路。
1. 从2024年小高组试卷的整体面貌看图形化编程竞赛的命题套路
1.1 卷面构成与分值分布:读题之前先读结构
我拿到手的2024年小高组真题版本,整体结构和近两年同类赛事基本一致,大致分成四个模块:基础概念题、程序阅读题、程序补全题和综合创作题。名词叫法可能略有差异,但考查逻辑是相通的。基础概念题主要考积木块的认识和简单场景判断,比如“哪个积木能让角色移动”“面向90度角色朝哪个方向”;程序阅读题给出一段积木组合,让考生推断运行结果,这是孩子们丢分的重灾区;程序补全题则是把一段脚本挖掉一两块积木,要求从选项里挑出正确的;综合创作题通常围绕一个完整的小项目展开,比如计分游戏、抽奖程序、动画故事,需要按步骤实现并回答相关问题。
这类卷面结构其实藏着命题组的一个核心思路:从“认识积木”到“读懂程序”,再到“补全程序”,最后到“综合应用”,是一个层层递进的能力阶梯。小高组和低年级组最大的区别就在这里——低年级可能考“这个积木叫什么名字”,小高组已经直接拿一段循环套条件、条件套运算的脚本让你推结果了。如果孩子还在靠背积木颜色和位置做题,拿到这份试卷会非常吃力。
1.2 小高组与低龄组、初中组的能力断层在哪里
很多家长不清楚图形化编程各组别之间的难度到底差多少,我习惯用下面这张表来解释:
| 组别 | 核心考查点 | 典型难度特征 |
|---|---|---|
| 低年级组 | 基本积木认知、顺序结构、简单循环、角色与造型切换 | 以拖拽模仿为主,单个积木的效果看得见摸得着 |
| 小高组 | 多角色协调、变量与运算、列表、克隆体、复杂条件嵌套 | 强调组合应用,单点会做不等于题目会做 |
| 初中及以上组 | 通常转向文本编程或更高阶的算法思维 | 已经开始要求抽象建模和复杂度控制 |
从小高组开始,赛题的核心不是“这道题用了哪个积木”,而是“为什么用这个积木、它和其他积木组合后会产生什么效果”。以程序补全题为例,一段循环脚本里挖掉循环条件,四个选项看起来都对,可一旦代入变量变化过程,正确答案只能有一个。这种题考的是程序执行轨迹的跟踪能力,也可以说是最基础的“人肉调试”能力。
所以,看这份真题卷不能只盯着“孩子做对了多少道”,更要看他是在哪一层倒下的:是积木语义不清,还是逻辑链条太长推不动,还是压根没建立“逐积木执行”的思维习惯。下面我就针对这套试卷里出现频率最高的几类考点,逐一拆开讲。
2. 真题里反复出现的几类“送命题”:坐标系、变量与克隆的正确打开方式
2.1 坐标与方向:为什么总在舞台边缘翻车
小高组试卷里,运动类和坐标相关的题目几乎从不缺席。我手上这个版本的真题里,至少有四道题涉及到“移动”“面向”“坐标设置”的组合,而且错误选项设置得非常刁钻。最典型的一组混淆是“移动10步”和“将x坐标增加10”。很多孩子觉得两者差不多,实际上差异极大:移动10步是沿着角色当前方向前进,角色面向0度就向上走,面向90度才向右走;而将x坐标增加10,无论角色面朝哪里,都只水平向右移动。
还有一个高频陷阱是方向角度的默认规则。Scratch里角色默认面向90度,也就是屏幕右侧;0度朝上,180度朝下,-90度朝左。真题里经常给出一段脚本:先“面向-90度”,再“移动50步”,问角色最终出现在哪个区域。没背过角度表又懒得去推方向的孩子,特别容易在这里丢分。我会让集训队学生把这个方向表和坐标范围抄在草稿纸上,每次模拟前先默写一遍:x范围是-240到240,y范围是-180到180,中心点(0,0)是舞台正中间。
另一个容易翻车的点是“碰到边缘就反弹”。这个积木本身不复杂,但在小高组真题里往往跟“旋转模式”绑定出场。角色如果设成“任意旋转”,碰到边缘反弹后会上下颠倒;设成“左右翻转”,才会正常左右走。题目往往会故意不截图旋转模式,只给一个反弹积木,然后问“角色怎么运动”,很多孩子默认是左右翻转,实际运行却是任意旋转,白丢一道题。这类题真正考的不是积木名称,而是有没有认真读过积木的细节参数。
2.2 变量与列表运算:小高组难度分水岭
如果说坐标题属于“细致就能做对”,那变量与列表就是实打实的难度分水岭。2024年这份小高组试卷里,涉及变量的题目占了相当比例,而且几乎都不是单独考“把变量设为几”,而是嵌套在循环和条件里一起出现。
最典型的考点是变量初始化位置。我让学生做过一个“接苹果计分”的补全题:苹果落地就得分,重新开始时要清零。很多孩子会顺手在循环里放一个“将得分设为0”,结果每接一次苹果,得分刚加上去就被清掉。这个错误在纸上推演时特别明显,但实战中就是有人发现不了。我的建议是遇到变量题先圈出“初始化积木”的位置,看它是在循环外还是循环内,再往下读程序。
列表运算在小高组试卷里属于区分度极高的题。常见场景是抽奖、成绩统计、随机点名。抽奖程序里有一个很经典的坑:要求“不重复抽取”,有的孩子直接写“在1和10之间取随机数”,取了10次还是可能重复;正确思路通常要配合列表:先随机选一个位置,把对应项取出来,再删除这一项或做标记。真题往往不会直接告诉你“用列表”,它只描述需求,让孩子在积木区里自行组合。这就考察能不能把“不重复”翻译成“删除已选项”这个操作逻辑。
还有一些试卷会专门考查列表边界:对10个元素的列表循环10次没问题,但如果循环里先删除再访问第10项,位置就可能越界。程序阅读题里,这种“索引越界但不报错,只是结果不符合预期”的情况,是最考验孩子是否真正理解列表机制的设计。
2.3 克隆体与消息机制:从能用变成会算
克隆体是图形化编程竞赛的另一个高频主题。低年级组可能只要求“克隆出三个角色”,小高组会把克隆体和私有变量、消息广播组合起来考。举一个很多试卷里都见过的变体:让角色每隔1秒克隆一次,每个克隆体从不同位置下落,速度还不一样。如果所有克隆体共用同一个变量,它们的位置和速度就会互相干扰,画面乱成一团。正确做法通常是给每个克隆体设置一个“仅适用于当前角色”的私有变量,用来单独记录各自的编号或速度。
这里有个特别容易搞混的知识点:私有变量不是“只在克隆体里能用”,而是“每个克隆体各自持有一份”。试卷里经常用一道题来区分:一个角色本体把分数设为10,克隆体把分数设为20,问屏幕上显示的是多少。答案取决于读取分数的是本体还是克隆体,以及变量是“适用于所有角色”还是“仅适用于当前角色”。没有做过实操的孩子,仅靠背概念很难答对。
消息机制里,最隐蔽的坑是“广播”和“广播并等待”的区别。广播发出后,发出者会立刻继续执行后续积木,不会等着接收方跑完;广播并等待则不同,它会等其他角色和克隆体处理完这条消息再继续。很多孩子写游戏时,角色广播“开始”之后马上执行“隐藏”,结果接收方还没来得及显示就被隐藏了,整个流程乱掉。真题阅读题里,只要出现广播,几乎必有这个考点,值得反复强调。
3. 关于“第16题”“linkdog软件”这类热搜资料,我的鉴别建议
3.1 “综合2第16题”为什么会被反复讨论
最近网上好几个图形化编程交流群都在聊“综合2第16题”,乍一看还以为是2024年真题的某道题,其实更像某个图形化编程练习平台里综合关卡的第16关。我特意去翻了翻讨论记录,大家之所以盯着这道题,是因为它正好处在难度拐点上:前面的关卡都是单知识点,比如单纯循环、单纯条件判断;到第16题开始把变量、列表、嵌套循环全部揉在一起,很多孩子第一次在这道题上体验到“积木都会,组合起来不会”的挫败感。
我不建议家长到处去找这道题的具体答案。原因很简单:平台题和竞赛题的目标不完全一致,平台题更偏闯关反馈,竞赛题更偏在规定时间内独立求解。与其追问“第16题怎么过”,不如让孩子说清楚这道题考了什么。如果他能说出“它需要一个变量记录次数、一个列表存结果、循环里还要判断边界条件”,那他才是真会了;如果只会照着视频拖一遍积木,换一道同类型题照样卡住。
对网传的“2024年真题试卷”,我的态度也类似。真实比赛结束后,群聊里流传的大多是回忆版或机构老师重组的模拟版,有价值,但未必和官方原卷一字不差。我自己的处理方法是:把网传试卷当“同等难度的仿真题”用,训练效果没问题;但涉及具体答案和评分标准,一律以赛项官方发布的说明为准,不盲目相信截图里的“标准答案”。
3.2 linkdog图形化编程软件与比赛环境的关系
这几年图形化编程的比赛环境越来越多样,除了大家最熟悉的Scratch桌面版,很多线上测评系统也做了自己的图形化编程界面。linkdog就是我在一些集训平台和题库里见过的软件之一,界面布局、积木分类和角色属性设置多少和原版有些差异。不少孩子平时练的是某一种魔改版,积木位置背得滚瓜烂熟,结果到了正式比赛系统里连“画笔扩展”都找不到,心态直接崩掉。
所以不管用什么软件,我的原则始终是四个字:环境对齐。开赛前一定要到官方指定的参赛环境里跑一次完整流程,至少完成一道创作题,确认三件事:第一,积木分类是否和平时训练版一致;第二,舞台大小和坐标系是否变化;第三,作品保存和提交的入口在哪里。很多问题在正式比赛里爆发,就是因为学生只练了“怎么编程”,没练“在这个系统里编程”。
至于要不要专门去学某个软件,我个人觉得没必要。图形化编程的核心思维是相通的,变量、列表、克隆、广播、事件这些概念不会因为软件不同就消失。软件差异只是操作层面的事,花半天熟悉一下界面就够,不值得为此改变整个学习路线。
3.3 刷真题的正确姿势:做一遍、改一遍、讲一遍
真题资源本来就稀缺,一份卷子只做一遍就扔,实在太浪费。我带集训队一直用三轮刷题法,效果比闷头刷十套新题好得多。
第一遍严格限时,独立完成,不许翻资料、不许问人,完全模拟考场状态。做错的题先不急着看答案,自己在草稿纸上推一遍,把“我以为程序做了什么”和“程序实际做了什么”的差异写出来。第二遍对照参考脚本或答案,把错题归类:是积木语义不清,还是逻辑分支混乱,或是调试方法不对。这一步的关键不是记答案,而是建立“错题对应考点”的映射。第三遍就是讲题,让孩子把每道错题当成小老师,讲给家长或同学听。这个环节能暴露出“凭感觉蒙对”和“真正理解”的区别,很多孩子一经追问就露馅了。
如果时间实在不够,我宁可少做两套新卷子,也要把一套真题走完这三遍。因为刷题数量的意义,远不如刷题质量重要。
4. 按真题反推的备考路线:三个月稳扎稳打,两周精准冲刺
4.1 阶段一:核心积木语义复刷
无论距离比赛还有多久,我都建议先花一到两周把九大类积木的语义再系统过一遍。注意是“语义”,不是“名称”。比如运动类里,“移动10步”和“将x坐标增加10”的区别;控制类里,“重复执行”和“重复执行直到”的区别;侦测类里,“按下鼠标?”和“鼠标键按下?”的区别。这些看起来基础,但真题里大量错误选项就是从这些近义积木的细微差别里编出来的。
这个阶段我不推荐直接刷综合大题,而是做“积木对比”练习:拿到两个容易混淆的积木,写出它们各自执行三次后角色的位置变化,再用程序验证。很多孩子在做对比时第一次发现,“移动10步”在角色面向上时会往上走,而“将y坐标增加10”无论方向怎么变都固定向上。这种底层认知一旦建立,后面读任何程序都稳得多。
4.2 阶段二:经典算法专题与真题演练
核心积木过关后,进入专题练习阶段。小高组的高频专题非常清晰:计数循环、条件分支、变量累加、列表增删查改、克隆体与私有变量、广播与等待。每个专题至少要完成10道综合题,并且要按“先读题画流程,再写脚本,最后验证”的习惯来做。我看过太多孩子拿到题就拖积木,做到一半才反应过来逻辑不对,又删掉重来,非常浪费时间。
真题演练在这个阶段要开始限时。不用完整做整张卷子,可以把试卷里的程序阅读题和补全题单独抽出来,规定8分钟完成一组,训练读题速度和第一反应准确率。综合创作题留到周末,按完整考试时间做,做完先不看分数,按老师或参考答案的评分点自查,看条件分支有没有遗漏、变量有没有初始化、特殊输入有没有处理。
4.3 阶段三:考前模拟与考场习惯养成
考前两周进入全真模拟阶段。我会让学生每周做两到三次完整试卷,严格按比赛时间执行,中间不许暂停、不许重来、不许翻笔记。这个阶段的重点已经不是知识本身,而是考场决策:遇到不会的题是先跳过还是硬磕,做完有没有时间检查,检查时到底该看哪些地方。
每次模拟结束,把丢分点整理成一张“红单”,上面只写三条:失分知识点、错误原因、下次对策。比如“列表访问越界——原因:删除项后仍用原序号——对策:删除后先把项目数减1再循环”。考前最后一天不看整套卷子,只翻红单,比重新刷题高效得多。
5. 考场实战:时间分配、读题顺序和调试顺序,都是能从真题卷里学到的
5.1 拿到试卷先干三件事
很多孩子拿到试卷就开始从头做第一题,这个习惯在小高组竞赛里很吃亏。我反复提醒学生,正式动笔前先花两三分钟做三件事:第一,翻一遍全卷,看看有没有创作大题、在什么位置;第二,大致估算分值,基础题和压轴题各占多少;第三,决定答题顺序,先做有把握的,不会的先跳过,做好标记。
举个例子,如果整卷是60分钟,基础概念题15分钟左右、程序阅读和补全题25到30分钟、综合创作题20分钟,最后至少留3到5分钟检查。这只是我常用的分配比例,不同试卷结构需要调整。但方向是一致的:宁可放弃一道卡壳的选择题,也要保证创作题能提交一个完整可运行的作品,因为大题的分值密度通常更高。
5.2 调试时的“最小改动原则”
综合创作题里,越改越崩是常见灾难现场。一个循环不退出,孩子一着急就把整个脚本删掉重写,结果新写的脚本问题更多。我教学生一个原则:调试时只改一个积木,改完立刻运行看效果;如果还不对,再改下一个。这看起来慢,实际是最快的定位方式。
具体调试手法上,我强烈推荐用“说”积木做临时输出。比如想确认列表有没有按要求更新,就在循环末尾加一块“说(列表的第1项)”;想确认变量变化,就加一块“说(分数)”。这种方式比盯着积木干想直观得多,定位到问题后记得把调试用的“说”积木删掉。这套逻辑其实和文本编程里的print调试一模一样,尽早建立这种习惯,对小高组孩子之后学Python也很有帮助。
5.3 我见过的高频失分点清单
最后分享一份我看了无数份试卷、复盘了无数次之后整理出来的高频失分清单,每一条都有学生在真实考场上踩过:
- 变量初始化位置错误:重置积木放在循环内,导致累加计算被反复清空。
- 条件顺序错误:把“得分大于50”写在“得分大于100”前面,导致后一个条件永远不会执行。
- 广播和广播并等待混用:程序执行顺序和预想不一致,角色显示状态错乱。
- 克隆体无限增长:克隆事件设在了“重复执行”内部,也没有停止条件,运行几分钟后画面卡死。
- 坐标正负号反了:把移到(-240, -180)当成右下角,实际那是左下角。
- 列表索引从0还是从1开始没搞清楚:图形化编程里列表索引通常从1开始,和很多文本编程语言不一样,这个细节在程序阅读题里特别坑。
这些失分点没有任何一个是“超纲难题”,全是基础功和细心程度的体现。我个人这几年的体会是,图形化编程竞赛到最后,比的就是谁在紧张状态下还能保持稳定的程序跟踪能力。那些网上热传的“第16题”也好,各种软件平台的差异也好,都只是表象;真正决定孩子能走多远的,是他能不能把一个看似简单的积木组合,从第一块到最后一块,每一步都讲得清清楚楚。如果你家孩子正在备赛,不妨就从这道基本功开始练起。