Sei sulla pagina 1di 13

Loop Measures Definition Why We Are Looking at it What it looks like

Students may have placed forever


loops into the Scratch code area that
There is a forever loop in the Scratch
they are not/are no longer using.
empty forever loops code area that does not have any The line goes down
Having many empty forever loops may
blocks in it.
show that the student does not know
how to use them very well.

When students place other


There are forever loops in the coding appropriate blocks inside of forever
nonempty forever loops The line goes down
sandbox that have blocks in them. loops, they are showing that they
know how a forever loop can be used.

Although this measure is a


combination of the two above, the
forever Total forever loops, empty or not idea is to see if the student has made The line goes up
their project more complicated by
using more forever loops.

When students place other


There are repeat loops in the coding appropriate blocks inside of a repeat
nonempty repeat loops The line goes up
sandbox that have blocks in them. loop, they are showing that they know
how a repeat loop can be used.

Students may have placed repeat loops


into the Scratch code area that they
There are repeat loops in the coding The line goes down
are not/are no longer using. Having
empty repeat loops sandbox that do not have any blocks (Combined with below for
many empty repeat loops may show
in them. "repeat loop errors")
that the student does not know how to
use them very well.

Students placed a repeat loop into the


Scratch code area, but changed the
default "10" to repeat to a number
that does not repeat. May show that The line goes down
There are repeat loops with a repeat
repeat 0 or 1 the student does not know how to use (Combined with below for
of 0 or 1.
"repeat" very well. (In our case studies, "repeat loop errors")
we had the unique instance of this
purposely being used to get around
requirements for a project. )

Nesting loops shows a deeper


What is the most complex/deep use understanding of how programming
max nested loop depth The line goes up
of loops via nesting? works in Scratch. Shows a "leveling
Up" in programming skills.

Forever if blocks are more difficult to


put into use/understanding than the
forever if The [forever if] block is used Shows if using at all
traditional "forever" block. Shows a
"Leveling Up" in programming skills.
Loop Measures Definition Why We Are Looking at it What it looks like

Repeat until blocks are more difficult


to put into use/understanding than the
repeat until The [repeat until] block is used Shows if using at all
traditional "repeat (10)" block. Shows
a "Leveling Up" in programming skills.
Initialization Measures Definition Why We Are Looking at it What it Looks Like
Many variables need to be set to a
specific "state" or number; if not
repeating the scratch project will
Compared to the total of make it not work as intended. The
variables used, how many ratio of how many variables have been
variable initialization ratio The line goes up
have the initial state of the initialized to how many have not can
variable set? show how many variables students
are initializing to work correctly
compared to how many they have not
initialized.

This measure can show how many


variables are being initialized.
When variables are used, is Compared to the measure above, it
initialized variables the variable set to an initial does not show how many variables The line goes up
state? are not being initialized, therefore
missing part of the student variable
use picture.

Some graphic effects may reset to


initialized graphic effects their initial state when a project is
When using a graphic effect
started again. In cases where they do
(within the Looks blocks: color,
not reset, the student has to manually Over time, the uninitialized
fisheye, whirl, pixelate,
add programming to cause that reset line goes down, and the
mosaic, brightness, and ghost),
to an initialized state. In general when initialized line goes up
is it set to an initial state in the
set, it shows clean programming
uninitialized graphic effects program?
practices, tying up lose ends that
may/have cause/d a bug problem.

Most projects require an initial


location for a sprite. If there is no
sprites with position init initial location set, when the project is
started a second time, the sprite will
When a sprite moves, is the not be in the intended location. There Over time, the uninitialized
location set to an initial state are two reasons this might not apply: line goes down, and the
in the program? 1. the sprite never moves. 2. it does initialized line goes up
not matter where the sprite begins
(example, a ping-pong game, it does
sprites missing position init
not have to have the ball start in a
specific location).

Most projects require an direction


initialization for a sprite. If there is no
sprites with direction init
direction set, when the project is
When a sprite changes the Over time, the direction
started a second time, the sprite will
direction that it is facing, is the initialization line goes up,
not be facing the intended way. There
direction set to an initial state the missing direction
are two reasons this might not apply:
in the program? initialization goes down
1. the sprite never moves. 2. it does
sprites missing direction init not matter if the sprite is facing a
direction. (example, a ball)
Initialization Measures Definition Why We Are Looking at it What it Looks Like
Some projects use the "change size by
sprites with size init Over time, the size
10" to change the size of the sprite
When a sprite changes size, is initialization line goes up,
from the original. If there is no initial
the size set to an initial state in the missing size
size set, the sprite will keep
the program? initialization line goes
sprites missing size init growing/shrinking on successive
down
project repeats.

Some projects use the "change tempo


sprites with tempo init by 20" to change the tempo of the Over time, the tempo
When a sprite changes tempo,
sprite. If there is no initial tempo set, initialization goes up, and
is the tempo set to an initial
the sprite will keep missing tempo initialization
state in the program?
sprites missing tempo init increasing/decreasing tempo on goes down
successive project repeats.

Some projects use the "change


sprites with volume init Over time, the volume
volume by -10" to change the volume
When a sprite changes initialization line goes up,
of the sprite from the original. If there
volume, is the volume set to and the missing volume
is no initial volume set, the sprite will
an initial state in the program? initialization line goes
sprites missing volume init keep getting quieter/louder on
down
successive project repeats.

Many projects require a sprite to hide


sprites with show hide init (example, during a scene change) or
Over time, the show/hide
show (example, after a scene change).
When a sprite shows or hides, initialization line goes up,
If there is no initial state of "hide" or
is the initial state of "show" or and the missing show/hide
"show" set, when the project is
"hide" selected? initialization line goes
started a second time, the sprite will
sprites missing show hide init down.
not be hiding/showing the intended
way.

Some projects use the "go back (1)


sprites with layer init layers" to change the layer of the
sprite (example, if the sprite needs to
be behind another sprite, not in front Over time, the layer
When a sprite changes layers,
of it). If there is no initial layer set, the initialization goes up, and
are the layers set to an initial
sprite will keep moving back a layer. If the missing layer
state in the program?
a sprite is being used as a background, initialization goes down
sprites missing layer init the layer changing sprite can get lost
behind that background sprite. (This
was rarely used)

Some projects use the "pen" blocks to


sprites with pen init create a sprite that draws a trail
behind it. If using pen blocks, a sprite Over time, the amount of
When a sprite uses the pen, is
must have a "pen down" block to "pen down" blocks is more
the pen set to an initial state in
achieve results. Without that block, than the lack of "pen down
the program?
the student is missing part of their blocks.
sprites missing pen init understanding on how to use the pen
blocks.
Initialization Measures Definition Why We Are Looking at it What it Looks Like
Many projects have more than one
backdrop on the "Stage". If a specific
program has scene init
backdrop is not set to start with Over time, the has scene
When a program changes (initialization), upon a repeating the initialization line goes up,
scenes, are the scenes set to project, the backdrop may not be as and missing scene
an initial state in the program? intended. Looking at this will show if initialization line goes
the student understands how to down
program missing scene init correctly program a backdrop that
they want.

This measure shows a ratio of the


above measure, displaying how many
sprites change costume vs. how many
only have multiple costumes, but do
Over time, the student may
not change them. This shows a
Out of sprites with multiple use more costume
clearer picture of student use of
sprites that change costumes costumes, how many change changes, and the line will
sprites with multiple costumes. Do
costumes? go up. This could show
they change the costumes? If so, are
more complex projects.
they changing the sprites costume a
few times or many times? Changing a
costume many times can show a more
complex a project.

Many projects have sprites that use


more than one costume. If the initial
sprites with costume init state (i.e. the first costume) is not set,
Over time, the has
When a sprite changes upon repeating the project, the sprite
costume initialization line
costumes, are the costumes costume will not be as intended.
goes up, and the missing
set to an initial state in the Looking at this will show if the student
costume initialization line
program? can change a sprite costume to what
goes down
they want, and that the costume will
sprites missing costume init be correct once the project is
repeated.
Event-Driven/
Parallelism Measures Definition Why We Are Looking at it What it Looks Like
Many projects have sprites that begin
action when the green flag is clicked.
Sprites that don't have a "When green
Compared to all sprites, how
flag clicked" block hat tend to mean
proportion of sprites with many have a green flag? (Does
that the project is not working/yet. The line goes up
green flag not include starter blocks that are
(This does not take into account the
not green flags, like key presses)
other event blocks, such as when key is
pressed, when sprite is clicked, when
backdrop switches, etc.)

We are looking at this measure


because it can show that a student has
a basic understanding of how to run
two+ code stacks at the same time
(parallelism), i.e. movement and
sprites with multiple green How many sprites have more than costume change on two different code
The line goes up
flags one green flag block used? stacks so a sprite appears to be
walking. Preferably there are more
than 1-3 blocks connected to each
stack, and not simply the addition of
another green flag to handle
something like initialization only.

When more sprites have multiple


green flag hat blocks, the complexity of
Compared to all sprites, how the code increases. This can show
proportion of sprites with
many have more than one green further development of understanding The line goes up
multiple green flags
flag block used? of Scratch programming, and putting
that understanding to use with more
complicated projects.

When a student learns how to do


broadcast, often they do not use it
successfully at first. A common reason
that causes a broadcast not to work as
expected is that the broadcast does
not have a corresponding Receive hat
block. Understanding that broadcast
How many broadcasts have a works to communicate code within a
broadcasts received The line goes up
complete pairing with a receive? project to different sprites and the
stage is a step up in abstraction. No
longer is the code for one sprite
happening only within that sprites
code screen, there now may be
sections of code that it can trigger or
be triggered by from outside of that
sprites code screen.
Event-Driven/
Parallelism Measures Definition Why We Are Looking at it What it Looks Like
Understanding that one broadcast can
trigger multiple receive code stacks on
the same or different sprites and the
Broadcasts have multiple stage is a step up in abstraction above
broadcasts with multiple
receives on same or different having one broadcast trigger one The line goes up
receives
sprites/background receive. When this line goes up, it can
show more complicated or
sophisticated programming
techniques.

If a student is fully using broadcast,


one sprite may be triggered by
multiple broadcast coming from itself
or other sprites or the stage. When
Sprite has multiple receives from this line goes up, it can show more
sprites with multiple receives The line goes up
different broadcasts complicated or sophisticated
programming techniques.

(could be showing the same thing as


measure above)

We are looking at this measure


because it can show that a student has
a more sophisticated (level up)
understanding of how to use a
Sprite has multiple of the same broadcast to run two+ code stacks at
sprites with multiple identical
receives starting parallel code the same time (parallelism) in the The line goes up
receives
with a broadcast same sprite, i.e. movement and
costume change on two different code
stacks so a sprite appears to be
walking, triggered with broadcast
receive hat blocks.
Conditional Measures Definition Why We Are Looking at it What it Looks Like

Shows if the student is trying to use a


conditional statement (if, forever if, if
Count of "If" or "Forever if"
else), and there are more blocks
complete conditionals or "If Else" blocks that have The line goes up
connected below the "If"/"Forever
conditions and consequents
If"/"If Else" block that trigger when
that condition has been filled.

Shows if the student is trying to use a


conditional statement (if, forever if, if
else), but there is something that
causes the conditional statement not
Count of "If" or "Forever if"
to work as expected. Specifically, that
or "If Else" blocks missing
incomplete conditionals something would be if the conditional The line goes up
conditions and/or
blocks are missing, or if there are no
consequents
"consequents" blocks connected
below the(If/Forever If/If Else) block
that trigger when that condition has
been filled.

Count of "If", "Forever If", "If


Else", "Until", or "Wait Until"
blocks having one or more of
the following in the This measure looks at if a student has
condition: 'xpos', 'ypos', used a Scratch variable (such as those
'heading', 'costumeIndex', to the left) within a conditional
conditionals using scratch
'scale', 'backgroundIndex', statement (If/Forever If/If Else/ If used at all
defined variables
'sceneName', 'tempo', Until/Wait Until). Shows advanced
'volume', 'timeAndDate', understanding and use of Scratch
'timestamp', programming concepts.
'getUserName', 'timer',
'soundLevel', 'isloud',
'getAttribute:of:'

This measure looks at if a student has


Count of user-defined used a their own variable (such as
variables used in a condition health) within a conditional statement
variables used in if or until If used at all
in "If", "Forever If", "If Else", (If/Forever If/If Else/ Until/Wait Until).
"Until", or "Wait Until" Shows advanced understanding and
use of Scratch programming concepts.
Conditional Measures Definition Why We Are Looking at it What it Looks Like
Count of "If", "Forever If", "If
Else", "Until", or "Wait Until" This measure looks at if a student has
blocks having one or more of used a sensing block(touching other
the following in the sprites, touching colors, mouse is at x
condition: coordinate, the mouse is being
conditionals using sensing 'senseVideoMotion', clicked), within a conditional If used at all
'touching:', 'touchingColor:', statement (If/Forever If/If Else/
'color:sees:', 'mouseX', Until/Wait Until). Shows advanced
'mouseY', 'mousePressed', understanding and use of Scratch
'keyPressed:', 'distanceTo:', programming concepts.
'answer'

This measure shows if a student uses


Count of "If" or "If Else" multiple conditional statements
nested conditional in statements nested within nested within each other, (e.g. {If
If used at all
conditional another "If" or "If Else" mouse x = 30[if mouse y=30] hide}).
statement Shows advanced understanding and
use of Scratch programming concepts.

Shows up when students create a


smooth user movement integration for
Count of "If" or "If Else"
a sprite within a project. {forever[if
nested conditional in loop statements nested within a If used at all
touching up(move x by 3)]}. Shows
loop
advanced understanding and use of
Scratch programming concepts.

Shows if the student is trying to use a


conditional statement (if, if else) with
Booleans (and, or, not). (Same as
measure in Boolean category that is
Count of "If" and "If Else"
named the same)
statements with an "or",
conditionals with Booleans If used at all
"and" or "not" in the
Example of conditional with Boolean:
condition
For sensing the clicking of the mouse
pointer on a sprite: If <<touching
[mouse-pointer]> and ,<mouse
down?>>
Conditional Measures Definition Why We Are Looking at it What it Looks Like

When students use If/If Else


statements, it is often required that
they use a loop to continually check
the state of the program to see if it
fulfills the statement. If the If/If Else
Count of "If" and "If Else" block is not placed within a loop, it will
conditionals in green flag statements not in a loop. only run once. Often this is
The line goes down
and not in loop The "hat" on the associated undesireable, and is a bug that a
script is a green flag. student must fix. Therefore, if this line
is up, and the student fixes the line will
go down. This shows that the student
found and fixed the bug. (one instance
this may not apply is if they removed
the conditional code entirely)
Boolean Measures Definition Why We Are Looking at it What it Looks Like
Shows if the student is trying to use a
conditional statement (if, if else) with
Count of "If" and "If Else" Booleans (and, or, not).
statements with an "or",
conditionals with Booleans "and" or "not" in the Example of conditional with Boolean: used at all
condition (same as under For sensing the clicking of the mouse
conditionals) pointer on a sprite: If <<touching
[mouse-pointer]> and ,<mouse
down?>>

Shows if if the student set up the


conditional with Boolean statement
correctly. The measure above is
Count of "If" and "If Else"
working.
statements with an "or",
conditionals with
"and" or "not" in the The line goes up
complete Booleans Example of conditional with Boolean:
condition. All necessary
For sensing the clicking of the mouse
arguments are present.
pointer on a sprite: If <<touching
[mouse-pointer]> and ,<mouse
down?>>

Shows if the student did not set up the


conditional with Boolean statement
Count of "If" and "If Else" correctly. The top measure does not
statements with an "or", work as expected.
conditionals with "and" or "not" in the
The line goes up
incomplete Booleans condition. One or more Example of conditional with Boolean:
necessary arguments are For sensing the clicking of the mouse
missing. pointer on a sprite: If <<touching
[mouse-pointer]> and ,<mouse
down?>>

Shows if the student has set up a


Boolean statement correctly, in the
case of it being used without a
Count of complete Booleans
conditional.
complete Booleans ("not" with one argument or The line goes up
"and", "or" with two)
Example of Boolean statement:
Wait until <<touching blue> or
<touching green>>
Sensing Measures Definition Why We Are Looking at it What it Looks Like

User control blocks (such as key press


and mouse press/click) are used to
trigger code within a project. When
they are used, the student has added
Count of key press and mouse
user control block count user interactivity into a project, which if used at all
press blocks
can make a project more interesting.
Adding user interaction often takes
more planning and complicated
programming of a project.

Popular code in Scratch Camp to


Count of touching blocks with
touching edge prevent sprites mving off the screen if used at all
"edge" argument
and getting "lost".

User interaction is required to move


the mouse within the project. Adding
Count of touching blocks with
touching mouse user interaction often takes more if used at all
"mouse" argument
planning and complicated
programming of a project.

If a touching block is used that does


not have the argument portion filled in
(e.g. Touching [sprite]) it will not work
as intended and creates a bug that a
student would need to fix. If looking at
touching missing Count of touching blocks with if used at all/line goes
the non-cumulative plots and this line
argument no argument down over time
is up and then goes down, it may show
that the student has found and fixed
this issue. For cumulative plots, the
line will go flat, since cumulative does
not go down in amount.

How many sprites have a block that


Count of touching blocks with a
touching sprite triggers code when a specific sprite is if used at all
sprite as the argument
touching it?

How many sprites have a block that


Count of touching blocks with a
touching color triggers code when that sprite is if used at all
color as the argument
touching a specific color?
Randomization Measure Definition Why We Are Looking at it What it Looks Like
To create a random effect, such as the
appearance of fruit in a game like Pac-
Man, it takes multiple blocks to be
Counts the amount of that built together to create one block (e.g
the move X by (pick random # to #))
randomization [pick random (#) to (#)] Because of this extra complication o If used at all
light green Operators block building up the block to do what is
gets used in any way. desired in theprogram, it tends to
show more complexity in the
understanding of the student on how
to program in Scratch.

Potrebbero piacerti anche