Scratch Programming: Best Programming Language for Kids

Great pedagogy for programming and even mathematics.

Developed by MIT, Scratch is the current favorite programming tool of mine for teaching programming to much younger children.

It used to be Logo. Which I think is still a good teaching tool.

But who could beat MIT. It's easy to pick up, drag and drop, fun.

Though unlike other subjects' tutorials, Scratch's tutorial is one not easy to find online at this time. A good website for learning Scratch: http://learnscratch.org/.

There is a book promoted by Slashdot (one could browse through its rich comments): Super Scratch Programming Adventure!, too bad there isn't a kindle version for android phone at this time. The promo video is very promising. I will just put this in my wishlist, until I finish reading another scratch book which I have just requested from the Queens Library: Scratch Programming for Teens.

This entry was posted in News, Technical. Bookmark the permalink.

One Response to Scratch Programming: Best Programming Language for Kids

  1. timlyg says:

    EdX has recently finished a course in Scratch (By Professor Collin Lewis from Harvey Mudd College).
    I joined to gather pedagogy information, which was quite helpful.
    This teaching method helps a child's math skills as well as programming (thinking logically).
    I think this is inspiring enough for me to layout a good pedagogical method:

    Brief Intro. With sound as teaching object.

      Week 1:

    • repeat
    • a. # of repeat, 0, 1, etc.
      b. nested repeats, complex nested repeats
      c. bonus: setting instruments
      Project: Write song with 3 instruments + repeated loops.
      HW: enquire # repeats sound will make from sample codes, Simplify codes with repeat.

    • drawing
    • a. basic draw
      b. repeated draw (saves time, avoid error)
      c. guessing polygon angles (with triangle)
      d. concept of turning right and left (how are they different in drawing)
      e. mathematics behind polygon angles
      f. moving negative steps
      g. drawing circles
      Project: Drawing with colors, pen size.
      HW: from sample, which part draws square, which line is different than original script.

      Week 2

    • Tempo
    • a. set and change tempo
      b. Tracking tempo
      c. Changing tempo in repeats

    • Variables
    • a. Show list with different block values, then replace values with variable, then use repeat.
      b. order of blocks
      c. change instruments in repeat

    • Introduce hat block
    • Coordinates
    • a. concept of X and Y axes, illustrate with X Y status.
      b. set and change X, Y. Relationship to sprite (usually center of sprite). Glide block.

    • Conditional
    • a. If block - testing inequalities
      b. If-Then-Else block
      c. Use variables in If block (for x, y axes)
      d. Predicates (AND, OR and NOT)
      e. Multiple If, with variables, nested If.

    • Game of Tag
    • a. Concurrency and Race. Use hat block to start at the same time. Compare with time delay, etc.
      b. Move sprite with arrow keys, other keys. So there will eventually be controlling of 2 sprites.
      c. Touching the other sprite...(play sound, text, etc., forever checking)
      d. Difference between If inside Forever and vice versa.
      e. Repeat-Until Block, Wait-Until (Show they are different from forever, they don't always repeat forever)
      f. Reminder of Click Green Flag to start.
      g. Keeping score. Use Wait or score increases fast in forever loop.
      Bonus: Random Number. Star/Banana catching game (appears @ random location to be caught)

      Week 3

    • Drawing with iteration
    • a. Increasing size, color, tones, etc: Bigger and bigger circles, triangles, etc. squiral or spiral patterns
      Project: Draw a house

    • Random Numbers
    • a. Use Rock Paper Scissors to demo
      b. Number guessing game

      Week 4

    • Updating Variables in Repeats
    • a. Trace variable changes in repeats
      b. Trace complex variables in repeats
      c. Trace variables in nested repeats

    • Iterative Development
    • a. Show colorful changes with iteration.
      b. Methodology: Draw with pen first, then implement variables and effects.

    • Ask and Join Blocks
    • a. Ask. User.
      b. Joining two+ words with Join Block.

    • Save as a copy
    • a. File-> Save as a Copy.

    • Helicopter with platform
    • a. Gravity by changing y value, introduce: color () is touching () block.
      b. Change Helicopter costume back and forth
      Project: Game for helicopter to collect points, spin around, falling

    • Jumping Sprite
    • a. Add a key that changes y of sprite while gravity still applies, use color/touching block to make sure sprite jumps only from the ground.

    • Making a Maze
    • a. Illustrate ball touching top, bottom, left, right, by showing status (yes/no). Hint: use forever. Consider adding sound.
      b. Introducing other programming languages (C++, JAVA, PYTHON) and compare their basic implementations to Scratch (e.g. say hello world, arithmetic, etc.)
      c. Illustrate (b.) with table of comparison.
      d. Testing concept of other programming languages

    Advanced

      Week 5

    • Block Creation (functions)
    • a. Create new block that can draw a square, etc. Use parameters.
      b. Use repeat and new block to draw incrementing polygons.

    • Strategies for Games
    • a. Arrow pointing mouse pointer.
      b. Click falling apple to gain points (hint: use mouse down block)
      c. Introduce Clone blocks (including hat block): For multiple falling apples at random rates.
      d. Multiple Levels: create different stages, broadcast/receive blocks, when door is touched, etc., include level #.
      e. Instead of door, use invisible goal area (x,y and inequalities test).
      f. Scrolling games: moving platforms (left or right). Make it cooler by allow sprite to move independently from the platform for a short distance first before platform starts scrolling (more cinematic, realistic).
      g. Health Meter: A new sprite(health) with multiple costumes. (broadcast/receive: lose health)

Leave a Reply to timlyg Cancel reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.