Anda di halaman 1dari 7

Programming Concepts and Skills Supported in Scratch

Lifelong Kindergarten Group


MIT Media Lab
http://scratch.mit.edu
Problem-Solving and Project-Design Skills

logical reasoning
breaking complex problems into simpler parts
debugging problems
developing ideas from initial conception to completed project
sustained focus and perseverence

Fundamental Ideas about Computers and Programming


computer programs tell the computer precisely what to do, step-by-step
writing computer programs doesnt require special expertise, just clear and careful thinking

Specific Programming Concepts


Concept
sequence

Explanation
To create a program in
Scratch, you need to
think systematically
about the order of steps.

iteration
(looping)

forever and repeat can


be used for iteration
(repeating a series of
instructions)

conditional
statements

if and if-else check for


a condition.

Example

variables

The Variables category


allows you to create a
new variable and use it
in a program.
Scratch supports both
global and objectspecific variables.

threads
(parallel
execution)

Launching two stacks


at the same time creates
two independent
threads that execute in
parallel.

synchronization

broadcast can
coordinate the actions
of multiple sprites.

For example, Sprite1 sends the message winner


when condition is met:

This script in Sprite2 is triggered when the message


is received:

real-time
interaction

mouse_x, mouse_y,
and loudness can be
used as dynamic input
for real-time interaction

boolean logic

and, or, not are


examples of boolean
logic.

random numbers

The pick random


block selects random
integers within a given
range.

event handling

user interface
design

when key pressed and


when sprite clicked
are examples of event
handling responding
to events triggered by
the user or another part
of the program
You can design
interactive user
interfaces in Scratch
for example, using
clickable sprites to
create buttons.

Programming concepts not currently introduced in Scratch:

data structures (arrays, etc.)


procedures and functions
recursion
inheritance
defining classes of objects
exception handling
parameter passing and return values
text input
file input/output

Messages
Sprites react to key presses or to touching other sprites or colours. A forever
loop can also contrain logic to test for certain positions on the stage and so forth.
A practical means of communicating between all the object in the applicatiuon
(including the stage) is for a sprite to broadcast a message.
One technique is to broadcast a message when a sprite reaches the edge of the
stage to cause the background picture to change to the next room. This can be
achieved by placing a single pixel of a unique colour onto the background at the
point where the entrance to the adjoining room occurs. A forever loop allows a
test for the sprite touching this unique colour which then broadcasts a message
received by an event conrtol on the background which changes the background.

The sprite logic is as follows and presented in the messages application:

Clicking on the stage icon in the design environment allows program blocks to
bne defined for the background. The broadcast messages can be used to move
from room to room in the Scratch application:

Broadcasting can be used to communicate between sprites and allow sprites to


be used as buttons for example by broadcasting a message to all sprites using
the sprite clicked control block for the button sprite.
Another technique allows the backgound application to monitor a variable against
a second variable contining the previous value of the variable to broadcast a
message when the slider is used to change the value. The following code is
added to the forever loop of the stage:

Any sprite that needs to respond to a change in the value of the slider can wait
for the relevant message to be broadcast:

Iteration
Iteration is the second basic concept in compter programming and is the
repetition of a sequence of commands (known as a loop). The control blocks in
Scratch allow for interation, in particular the forever and repeat blocks.
A square, for example, has four sides and can be drawn by repeating the
sequence MOVE 60 TURN 90 four times. Double click on the outermost control
block to start the sequence and remember to have the pen down if you want the
sprite to draw a trail.

Experiment with different angles and sequences of commands to produce


interesting shapes.

Flowers are produced by drawing a simple shape and then turning a little before
repeating the shape to form a flower. The following example is a square flower
but you can experiment with triangles and hexagons and other shapes.

The above example has a repeat iteration nested within another iteration.
A forever loop combined with a random number can produce continuous random
behaviour easily.

Note the prescence of a wait command within the forever block. This is essential
programming practise for applications that have more that one sprite so that the
forever loop does not hog all the processing power and prevent the commands
for other objects from running in a timely fashion.
Young programmers should master the creation of triangles, squares, and
hexagons using iteration and then move on to creating flowers. Continuos
motion can be implemented on the onekey application with the following loop:

This loop can be attached to the green flag control block so that the sprite begins
moving as the application is started. The onekey commands will still work with
this sprite and the updated onekey application is available here. Ask the
programmers to update their own onekey application to have a continuosly
moving sprite.
You can add a second sprite to the application. In this case we want the same
command sequences and key press controls to work on the second sprite so the
most effective way to duplicate the sprite is to export it and import it back into
the application. Change the sprite costume and the initial starting position and
you have created the iteration application.

Anda mungkin juga menyukai