1) Programming concepts and skills supported in scratch(pdf) (doc)
What problem solving, project design skills, fundamental ideas about computers and programming, and specific programming concepts does Scratch support (and for the latter does not support)? This is an excellent summary, highly recommended, you need to download for the examples (code snippets) provided too, which are really good. Also notethis discussion thread on the Scratch forum about this document, especially the comments by kevin karplus and responses by natalie, the document author, to his suggestions
Scratch supports these Specific Programming Concepts:
sequence, iteration (looping), conditional statements, variables, threads (parallel execution), synchronisation, real-time interaction, boolean logic, random numbers, event handling, user interface design
Scratch does not currently support 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
2) Scratch Programming Projects
Ten excellent projects described in just the right amount of detail, with requirements and extras:
- "Chasing/Eating" (Pac Man Type Game)
- Red Light/Green Light
- Target Game
- Communication Project
- Animation of a short story
- Virtual Musical Instrument
- Virtual Board Game
- Basic Space Target Game
- Shape Drawing Robot (Polygon Robot)
Introductory tutorial, clearly explained with screenshots
4) Comparison of different languages (thread in Scratch forum)
This comment by pkimelma presents a well thought out sequence for teaching Scratch using a games theme.
Other comments in this thread compare Scratch with Phrogram (which has 3D graphics), Alice, Starlogo and others.
5) Kevin and Abe Karplus Scratch page looks to have a nice collection of scratch exemplars
resources of ideas for development by students
1) Use the Letter shapes to write your first name on the page. Then introduce some special effects such as making the letters wobble and change their appearance.
2) Point, click and move
Make an object both point and glide towards the mouse position when you click on the stage
Hint: Motion > point towards
Hint: Sensing > mouse down?
3) Make Dan or Anjuli or Cassy or ballerina dance to a beat, using all of their dance shapes. Include a suitable background that changes colours as the lights flash.
4a) Make two animals have a forwards and backwards conversation
Hint: Use broadcast, (ask for help if you don’t know how broadcast works)
4b) Make it an interesting conversation with each animal speaking at least 3 times and making gestures too
5) Make a sprite gradually grow in size and then shrink
6) Make 2 different balls move around on the stage
a) the first ball moves in straight lines but bounces randomly whenever it hits the edge
b) the second moves randomly, gliding from one position to a new random position continually
7a) One sprite chases another sprite around the stage. The first sprite moves in straight line but bounces off the edge randomly. The chasing sprite chases the first sprite but is moving slower.
b) Extension – if the chasing sprite catches the other sprite then it says something sensible and makes a suitable sound
8a) Play all the different drum sounds automatically
Hint: create a variable for the drum number
b) Extension – keep recycling through all the drum sounds automatically
9a) Count down on a timer. A rocket takes off when you reach zero
Hint: Use the number icons in the letters folder
9b) Your rocket has pulsating exhaust and disappears at the top of the screen
10) Add, multiply or subtract two variable numbers
Hint: Just to do addition only you will need 4 variables: firstNum, secondNum, answer (computer calculated) and myAnswer (human calculated)
11) Variable coloured squares
a) Write a script that can draw a square of any size
Hint: Make a variable for the side length
b) Use the variable square script to draw a series of square with variable sides, with a single click
c) Now add variable pen colour and pen shade to the variable square script and use it to draw a variety of different coloured squares, with a single click
12) Draw lines of random thickness in random directions with random colours. The pen must be lifted up and moved for each new line.
Hint: pen group contains set pen color, set pen size, pen up, pen down
Hint: colours range across the spectrum (ROY G BIV) starting with red = 0. There are about 190 colours in total and you need to display them all!
13A) Make a race
a) choose two suitable sprites, they must have at least 2 costumes to simulate motion
b) the sprites move at random speeds, you can’t predict the winner
c) make a finish line, using a new sprite is best
d) suitable background music
e) when the winner crosses the finish line it announces that it won
f) reset scripts to start again
13B) Extension: Make it a multi-lap race, the number of laps can vary
g) make a variable to set and count the laps (use this on just one of the sprites otherwise you will be counting the laps twice)
h) use “x position” with an if tile rather than “if on edge bounce” to manage the turning and lap increase value
i) hide the finish line so that it only appears for the final lap
14A) Play the scales on a piano
a) Check out the sound > play note tile
b) Teacher has supplies a graphic of a keyboard. Import it to your scratch project.
c) Program the computer keyboard so that it plays a series of notes on the piano keyboard
d) As the notes are played alter the keyboard graphic to make it appear they are being pressed and they revert back to blank when the key is released
e) Add some suitable background graphics
f) As the notes are played a sprite dances to the tune created by the notes, ie. each note triggers a particular movement
g) The names of the notes are spoken by a new sprite as they are played
h) Find a way to play ALL the notes on the keyboard
for more ideas http://billkerr2.blogspot.com/search/label/scratch