1 / 26

Introduction to the Scratch Programming Environment

Introduction to the Scratch Programming Environment. What is Scratch?. Developed by the “life-long kindergarten” group at MIT Simple, “code-free” style that lets you write programs by visually combining ‘blocks’ Built-in graphics and sound Share Projects online

trixie
Download Presentation

Introduction to the Scratch Programming Environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to the Scratch Programming Environment

  2. What is Scratch? • Developed by the “life-long kindergarten” group at MIT • Simple, “code-free” style that lets you write programs by visually combining ‘blocks’ • Built-in graphics and sound • Share Projects online • Made for beginners, but ‘expert-level’ programs are possible

  3. Main Scratch Window Start (optional) and Stop Buttons Block Types (more to follow) Scripts tab: add commands for Sprite1’s actions Performance Area = Stage (background) + Sprites (characters) Pick a Sprite to program Script Inventory (block palette): drag new commands from here to the scripts tab

  4. Block Shapes • Trigger: • Statement • Ending Statement • Boolean (true/false) value • Numeric or Text value

  5. Block Types • Blocks are sorted into categories: • Motion: move a sprite • Looks: change costume/color • Sound: play instrument, song • Pen: draw lines on stage • Control: have sprite make ‘decisions’ • Sensing: See/hear/touch objects • Operators: mathematics and text • Variables: give sprites memory

  6. Motion Blocks

  7. Looks Blocks

  8. Sounds Blocks

  9. Pen Blocks

  10. Control Blocks

  11. Sensing Blocks

  12. Operator Blocks

  13. Variable Blocks

  14. A Simple Manual Program Click on the block to make the sprite walk 10 steps

  15. The GO Button This trigger block will make any attached script run when the green flag is clicked. This is a good way to start multiple scripts at the same time.

  16. Add some control Question: How many steps will Sprite1 take?

  17. About Loops • Repeat loop: simplest type • Whatever is inside, do that same thing as many times as it says in the top of the block • Equivalent (but tedious!) solution: • Copy/paste ‘move 10 steps’ 30 times • Not feasible if you want to repeat something 1000 times • We’ll learn about the other two loop types later: • Forever • Repeat until

  18. Stuck! • Our Sprite walked as far as he’s allowed and is now stuck! • Here are some possible solutions: • Click on the sprite and move him back to the center (MANUAL strategy) • Some sprites can walk off and disappear! • Add a script that walks backward 300 steps (UNDO strategy) • Use Motion blocks to ‘transport’ Sprite1 to a fixed location (RESET strategy)

  19. Motion Explained • The stage is set on an X-Y plane • ‘Move 10 steps’ moves about 10 steps on the grid • But you can turn to move in different directions • ‘Go to x: 0 y: 0’ puts Sprite1 in the center of screen • Lower-right shows coordinates of mouse pointer • Xposition, Yposition: current location of a sprite • Can be used for boolean testing, or for drawing shapes in certain locations Y X

  20. What’s Going On? • Scratch tends to ‘go with the flow’ • Whatever script you run, Scratch will run it as best as it can • After the script runs, the effects remain • Can lead to unintended outcomes • This is actually kind of annoying • Testing must always have the same initial situation • Games always start in level 1 • We’re used to having a ‘reset’ button when our programs develop problems • Returns us to the initial error-free configuration • Scratch doesn’t have one, but we can make one

  21. Green-Flag Reset • Reset Script: return to whatever initial situation you want • Sprite Positions (motion) • Pen Markings • Variable Values (more later) • Green-Flag Reset: • Upside: Green flag acts as both ‘start’ and ‘reset’ button • Downsides: • Other green-flag scripts will start running right away • Human must force reset

  22. Keyboard Reset • Keyboard Reset: run reset script when a certain key is pressed (can choose any key) • Upside: Good when testing non-green flag scripts (so the other green flag scripts don’t run) • Downside: A human is still in charge of re-setting

  23. Subroutines • Subroutine: • A script that can be run by itself to some useful effect • Can be executed independently by the computer or initiated by a human • Re-use Property: the more a subroutine can/will be re-used, the more valuable it is • When combined with abstraction, subroutines make programs feel simpler • Real-world examples: • Cooking: “Separate the yolks from the whites” • Driving: “Take Exit 9” • Others?

  24. Reset Subroutine • Subroutines have a: • Definition: The actual subroutine script, starting with a ‘When I receive <name>’ trigger block • Call: Subroutines do nothing unless called upon to execute, via a ‘broadcast <name> (and wait)’ command • Calls can be attached to human input (above) or computer control (next slide)

  25. Computer Controlled Subroutine • Modified walking script: • Repeating 100 times, • Move 10 steps • If I reach the edge of the stage: • Call the reset subroutine • After I’ve done the above 100 times, call the reset subroutine one more time

  26. Summary • Scratch: Easy to get started programming, no experience required • Different block types: allow us to modify a Sprite’s behavior in different ways • Script: One or more blocks fastened together • Complex combinations lead to complex behavior! • Loops: Abstraction for repetitive processes • Subroutines: Allow fast re-use of a script by humans or the computer

More Related