Computer-Use Agent Taxonomy中文
R15.04.01.03 · TASK CLASS

Block-based coding

Build Scratch/Blockly programs by dragging and snapping blocks.

20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.

Previous class address: R12.10.01.03 · Original proposal IDs are retained.

Typical applications
Scratch · Blockly · Snap!
Class GUI-need label
G3 · GUI-only

Task proposals · 20

Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.

R12.10.01.03-T01 Make a Scratch sprite move forever and bounce off edges

Original instruction

In Scratch 3 (desktop app), open fixtures/bounce_start.sb3 (one Cat sprite, no scripts). Build a script: when green flag clicked → point in direction 45 → forever { move 5 steps; if on edge, bounce }. Set rotation style to left-right. Save as bounce.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
2 / 5

Proposed verifier

Headless scratch-vm runs bounce.sb3 for 600 frames: sprite x/y must oscillate within stage bounds and hit ≥ 2 edges; rotation style left-right. The instrumented editor logs block drag/drop events; a project.json written outside the editor (no matching drop events) scores 0.

Proposed partial credit

30% green-flag forever loop; 40% bouncing verified in VM; 30% rotation style and direction

R12.10.01.03-T02 Debug a Scratch game whose score never increases

Original instruction

fixtures/apple_catch.sb3 is a catch game: a Bowl sprite follows the mouse and Apple clones fall. The 'score' never increases when an apple touches the bowl. Find and fix the bug in the blocks (do not rewrite the game), keep all other behaviour, and save as apple_catch_fixed.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click vis · Visual judgment
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

VM test injects mouse positions so 3 apples land on the bowl: score must equal 3, and misses must not change it. Block diff vs original must be ≤ 4 blocks changed (minimal fix). Editor drop events logged; external project.json edits fail.

Proposed partial credit

60% score increments once per catch; 20% misses do not score; 20% minimal block diff

R12.10.01.03-T03 Switch costume and play a sound on the space key in Scratch

Original instruction

In fixtures/dancer.sb3 (sprite 'Dancer' with 4 costumes), add a script so pressing space switches to the next costume and plays sound 'Pop' until done; pressing 'r' resets to costume 1. Save as dancer_keys.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
2 / 5

Proposed verifier

VM test: 5 simulated space presses cycle the costume index 1→2→3→4→1→2 and trigger 'Pop' each time; 'r' sets costume 1. Editor drop events must account for all new blocks.

Proposed partial credit

50% costume cycling; 25% sound on each press; 25% reset key

R12.10.01.03-T04 Compute 1 + 2 + … + 100 with a Scratch loop

Original instruction

Create a new Scratch project with variables 'i' and 'sum'. When the green flag is clicked, set sum to 0 and i to 1, repeat until i > 100 { change sum by i; change i by 1 }, then make the sprite say sum for 2 seconds. Save as sum100.sb3. This is the GUI half of the pair with T19.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

VM run: variable sum = 5050 at end, sprite bubble text '5050'. Script must contain a repeat-until loop (no hard-coded 5050 literal). Drop-event log must account for all blocks.

Proposed partial credit

20% variables created; 50% loop structure; 30% correct result shown

R12.10.01.03-T05 Solve a Blockly Games Maze level with at most seven blocks

Original instruction

In locally hosted Blockly Games, open Maze level 6. Assemble a program from the toolbox (move forward, turn, repeat until, if path) that guides the avatar to the goal using no more than 7 blocks, and run it until the level-complete dialog appears.

Platforms
web · Any OS (web)
Applications
Blockly
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Blockly Games stores the solved level and program XML in localStorage; grader reads it: level 6 marked complete, block count ≤ 7, and re-running the XML in a headless maze runner reaches the goal. Workspace changes must come from drag events (Blockly change listener log), and DevTools are disabled by browser policy, so localStorage cannot be written by script.

Proposed partial credit

60% level completed; 40% block count ≤ 7

R12.10.01.03-T06 Draw a target pattern with Blockly Games Turtle

Original instruction

In Blockly Games Turtle level 8 (locally hosted), the goal image shows a pattern of three overlapping stars. Build a block program with loops (not repeated copies) that draws the pattern so the canvas matches the goal, and submit it.

Platforms
web · Any OS (web)
Applications
Blockly
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop vis · Visual judgment type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

Turtle level reports success (pixel match against the goal canvas within the game's tolerance) and the program XML contains at least one repeat block with ≤ 12 blocks total. Solved flag and XML read from localStorage. DevTools are disabled by browser policy, and a solved flag without matching Blockly drag events in the change-listener log scores 0.

Proposed partial credit

60% canvas match/level success; 40% loop-based program within block limit

R12.10.01.03-T07 Build a recursive factorial custom block in Snap!

Original instruction

In Snap! (locally hosted), create a custom reporter block 'factorial (n)' in the Operators category that uses recursion (if n ≤ 1 report 1 else report n × factorial(n − 1)). Use it in a script that says factorial(10) when the green flag is clicked. Export the project as factorial.xml.

Platforms
web · Any OS (web)
Applications
Snap!
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

Exported XML parsed: custom block definition in Operators, type reporter, body calls itself; headless Snap! evaluation gives factorial(10) = 3628800 and factorial(0) = 1. The block editor is the only route (no text import of block definitions allowed, import events logged).

Proposed partial credit

30% custom reporter defined; 40% recursive body correct; 30% green-flag script outputs 3628800

R12.10.01.03-T08 Filter and transform a list with Snap! higher-order blocks

Original instruction

In Snap!, open fixtures/scores.xml with list variable 'scores' (30 numbers). Using 'keep items' and 'map' (no loops), build a script that sets variable 'passed' to the scores ≥ 60, each converted to a letter grade (A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60). Export as scores_hof.xml.

Platforms
web · Any OS (web)
Applications
Snap!
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Headless run: 'passed' equals the expected letter list in order. Script must contain 'keep' and 'map' blocks and no repeat/for/forever blocks. The instrumented Snap! page logs block drops and XML imports, and DevTools are disabled by policy; a script without matching drop events scores 0.

Proposed partial credit

40% keep filter correct; 40% map to letters correct; 20% no explicit loops

R12.10.01.03-T09 Build a complete Pong game in Scratch from an empty project

Original instruction

Create Pong in Scratch: a paddle that follows the mouse x at the bottom, a ball that bounces off walls and the paddle with a random angle change of ±15°, a 'score' variable that increases on each paddle hit, a 'misses' counter, and a game-over backdrop with all scripts stopped after 5 misses. Save as pong.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
long · Long-horizon
Proposed difficulty
5 / 5

Proposed verifier

VM test suite (12 tests) drives mouse x: paddle tracks mouse; ball reflects at walls; paddle hits raise score; 5 misses switch backdrop and stop scripts. Editor drop-event log must cover the blocks; projects assembled outside the editor fail.

Proposed partial credit

15% paddle; 25% ball physics; 20% scoring; 40% miss counter and game-over state

R12.10.01.03-T10 Program a micro:bit dice in MakeCode and test in the simulator

Original instruction

In the MakeCode for micro:bit editor (offline app), build blocks so that on shake the LED shows a random number 1-6 as a dot pattern of the die face, and on A+B it shows the temperature. Test both in the built-in simulator, then download the .hex to ~/Downloads/dice.hex.

Platforms
mac · macOS win · Windows
Applications
MakeCode
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click vis · Visual judgment
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Embedded project source in the .hex is extracted; a headless pxt simulator test fires shake 100 times: LED patterns must be the 6 die faces only with each value seen; A+B shows the temperature string. JavaScript-view edits are logged and disallowed, and the instrumented editor logs block drops; a .hex whose blocks lack matching drop events scores 0.

Proposed partial credit

50% shake shows valid die faces; 20% all six values reachable; 30% A+B temperature

R12.10.01.03-T11 Make a MakeCode Arcade collector game with score and timer

Original instruction

In MakeCode Arcade (local web build), create a game: a player sprite moves with the D-pad (speed 100), 5 food sprites spawn at random positions, overlapping food adds 1 point and respawns it, and a 30-second countdown ends the game. Use the sprite editor to draw a 16×16 player in at least 3 colours. Export the project.

Platforms
web · Any OS (web)
Applications
MakeCode
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop path · Continuous path click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

Project JSON: player image 16×16 with ≥ 3 colours; headless arcade sim script moves the player onto food: score increments and food respawns; game over at 30 s. Blocks-only (JS view edits logged). DevTools are disabled by browser policy, and a project whose blocks lack matching drop events in the editor log scores 0.

Proposed partial credit

20% sprite drawn; 20% movement; 35% overlap scoring and respawn; 25% countdown game over

R12.10.01.03-T12 Refactor duplicated Scratch scripts into one custom block

Original instruction

fixtures/shapes.sb3 draws a triangle, square, hexagon and octagon with four copy-pasted pen scripts. Replace them with one custom block 'polygon (sides) (size)' set to run without screen refresh, called four times. The final drawing must be pixel-identical to the original. Save as shapes_refactor.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

VM renders both projects headless: pen layer pixel difference = 0 (±1 px anti-alias tolerance). Project must contain one procedure definition with 2 number inputs and warp = true, called 4 times, and no remaining duplicated pen loops. The instrumented editor logs block drag/drop events; an .sb3 written outside the editor (no matching drop events) scores 0.

Proposed partial credit

30% custom block with inputs; 10% run without refresh; 20% four calls replace copies; 40% identical drawing

R12.10.01.03-T13 Spawn falling clones that are deleted at the bottom in Scratch

Original instruction

In fixtures/rain.sb3, make the 'Drop' sprite hidden and spawn a clone every 0.5 s at a random x between −220 and 220 at y = 180. Each clone falls 4 px per frame and deletes itself at y < −170. A 'count' variable must show how many clones currently exist. Save as rain_clones.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

VM run for 20 s: clone creation every 0.5 ±0.05 s, x within range, clones removed at the bottom, total clones never exceeds 300 limit, and 'count' equals the live clone count at 10 sample times. The instrumented editor logs block drag/drop events; an .sb3 written outside the editor (no matching drop events) scores 0.

Proposed partial credit

25% clone spawning timing; 25% fall and delete; 20% random x range; 30% live count variable

R12.10.01.03-T14 Fix nested if/else logic in a Blockly clothing recommender

Original instruction

In the locally hosted Blockly playground fixtures/clothes.html, a program reads temperature and rain and prints an outfit, but four of the eight test cases in the side panel fail. Rearrange and edit the nested if/else blocks (do not add new block types) until all eight tests pass, then press 'Save'.

Platforms
web · Any OS (web)
Applications
Blockly
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop click · Point & click
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Saved workspace XML run against the 8 visible plus 8 hidden test cases; no new block types relative to the start toolbox usage. Workspace change log must show drag events, and DevTools are disabled by browser policy, so the workspace cannot be rewritten by script.

Proposed partial credit

40% visible tests; 40% hidden tests; 20% no new block types

R12.10.01.03-T15 Sequence a three-scene Scratch story with broadcasts and timing

Original instruction

In fixtures/story.sb3 (backdrops Forest, Castle, Night; sprites Knight and Dragon), make a story: Forest 0-4 s Knight says 'Onward!'; broadcast 'scene2' switches to Castle at 4 s where Dragon glides to (100, 0) in 2 s; at 8 s 'scene3' switches to Night and both sprites hide at 10 s. Save as story_timed.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click av · Audio/video over time
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

VM trace sampled every frame: backdrop switches at 4.0 and 8.0 s (±0.2 s), Dragon reaches (100, 0) at 6 s ±0.2, both hidden at 10 s ±0.2. Scripts must use broadcast blocks for scene changes. The instrumented editor logs drag/drop events; an .sb3 written outside the editor (no matching drop events) scores 0.

Proposed partial credit

30% backdrop timing; 25% glide; 20% speech; 25% broadcasts used and hide timing

R12.10.01.03-T16 Implement visible bubble sort over a list in Snap!

Original instruction

In Snap!, open fixtures/sortme.xml (list 'data' of 10 numbers shown on stage). Implement bubble sort with nested loops and swaps using only list and control blocks (no 'sort' library block). Each swap must update the on-stage list watcher. Count swaps in variable 'swaps'. Export as bubble.xml.

Platforms
web · Any OS (web)
Applications
Snap!
Interfaces
brow · Browser
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
G2 · GUI-essential
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
4 / 5

Proposed verifier

Headless run on the fixture and 5 hidden lists: 'data' sorted ascending and 'swaps' equals the bubble-sort inversion count. No sort primitive or library import in the XML. The instrumented Snap! page logs block drops and XML imports, and DevTools are disabled by policy; an export without matching drop events scores 0.

Proposed partial credit

50% sorts correctly on all lists; 30% swap count equals inversions; 20% no sort primitive

R12.10.01.03-T17 Draw a square spiral with the Scratch pen extension

Original instruction

In a new Scratch project, add the Pen extension and build a script that clears the stage, moves the sprite to (0, 0), sets pen colour to hue 60 and size 2, and draws a square spiral of 20 segments where segment k has length 10·k. Hide the sprite at the end. Save as spiral.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Headless render of pen layer compared to a reference spiral image: IoU of stroke pixels ≥ 0.9; pen colour and size match; sprite hidden at end; script uses a loop. The instrumented editor logs block drag/drop events; an .sb3 written outside the editor (no matching drop events) scores 0.

Proposed partial credit

20% pen extension and setup; 60% scaled stroke IoU; 20% loop and hidden sprite

R12.10.01.03-T18 Add and position a library sprite with rotation style and layer

Original instruction

In fixtures/park.sb3, add sprite 'Dog2' from the Scratch sprite library, set its size to 80%, rotation style to left-right, position to (−120, −80), and move it to the front layer above the 'Bench' sprite. Save as park_dog.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
click · Point & click drag · Drag & drop type · Text & forms
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
1 / 5

Proposed verifier

project.json: sprite with Dog2 asset IDs, size 80, rotationStyle 'left-right', x −120, y −80, layerOrder above Bench. Library-dialog click events are logged by the instrumented editor; an .sb3 written outside the editor (no matching events) is detected and scores 0.

Proposed partial credit

30% Dog2 added; 40% size and rotation style; 30% position and layer

R12.10.01.03-T19 Control: generate the 1-to-100 sum project by editing project.json

Original instruction

Control pair of T04. Without opening the Scratch editor, write a Python or shell script that creates sum100_cli.sb3: a project.json with variables i and sum and a green-flag script with repeat-until that sums 1..100 and says the result, zipped with the default stage assets.

Platforms
mac · macOS win · Windows lin · Linux
Applications
Python
Interfaces
term · Terminal
GUI need · task setting
CL · CLI-sufficient
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
code · Code & commands
Work product
WP06 · Code/engineering
Conditions
None declared
Proposed difficulty
3 / 5

Proposed verifier

Same scratch-vm test as T04: sum = 5050 and bubble text '5050', loop present, no 5050 literal. Serves as the CLI control to measure the drag gap against T04.

Proposed partial credit

30% loadable sb3; 40% loop structure; 30% correct output

R12.10.01.03-T20 Build a Scratch platformer with gravity, ground-only jumps and a goal

Original instruction

In fixtures/platformer_assets.sb3 (player, platforms painted in colour #4C97FF, flag), build a platformer: arrow keys move left/right, gravity accelerates the player down, the player lands on platform colour, jump (space) only works when on ground, the player cannot pass through platforms from below, and touching the flag shows 'You win!'. Save as platformer.sb3.

Platforms
mac · macOS win · Windows
Applications
Scratch
Interfaces
desk · Desktop GUI
GUI need · task setting
G3 · GUI-only
GUI need · ordinary access
CL · CLI-sufficient
Interaction primitives
drag · Drag & drop click · Point & click type · Text & forms
Work product
WP06 · Code/engineering
Conditions
long · Long-horizon
Proposed difficulty
5 / 5

Proposed verifier

VM test suite plays a scripted input sequence: gravity, landing, no double jump mid-air, no tunnelling through platforms at max fall speed, and the win message when the scripted route reaches the flag. The instrumented editor logs drag/drop events; an .sb3 written outside the editor (no matching drop events) is detected and scores 0.

Proposed partial credit

35% movement, gravity and landing; 20% ground-only jump; 25% solid platforms; 20% win state

Mapped research references

Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.

In this workflow family