Elementary School course

Programming 102

  • GRADES 3-4
  • INTERMEDIATE
  • WEB IPAD
  • 16 LESSONS
Slide: 1 of 18

Answer Key

Module 4: Changing Color

Module 5: Draw a Line

Module 6: Color Pattern

Module 7: Drag the Stars

Module 8: Color Effects

Module 9: Quiz

1. Which of these properties can you check using the {"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":""},{"type":"string","value":""}]} block?

  • The current Costume number of the Actor
  • The current x position of the Actor
  • The current direction of the Actor
  • All of the above

2. Which of these two turn blocks are equivalent? (Choose 2.)

  • {"func":"blockMotionTurnCW","values":[{"type":"string","value":"180"}]}
  • {"func":"blockMotionTurnCCW","values":[{"type":"string","value":"180"}]}
  • {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]}
  • {"func":"blockMotionTurnCCW","values":[{"type":"string","value":"90"}]}

3. Which of these two turn blocks are equivalent? Remember that it takes 360 degrees to turn an entire circle. (Choose 2.)

  • {"func":"blockMotionTurnCW","values":[{"type":"string","value":"60"}]}
  • {"func":"blockMotionTurnCCW","values":[{"type":"string","value":"300"}]}
  • {"func":"blockMotionTurnCW","values":[{"type":"string","value":"180"}]}
  • {"func":"blockMotionTurnCCW","values":[{"type":"string","value":"0"}]}

4. Which block should you use to check the Costume number of an Actor from a different Actor?

  • {"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume #"},{"type":"string","value":"actor"}]}
  • {"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"actor"}]}
  • {"type":"wrapper","func":"valueLooksCostumeNum"}
  • {"type":"wrapper","func":"valueLooksCostumeName"}

5. True or False: You can use the {"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":""},{"type":"string","value":""}]} block to check both the Costume number and Costume name of another Actor.

  • True
  • False

6. True or False: You can use the {"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":""},{"type":"string","value":""}]} block to check what direction another Actor is facing.

  • True
  • False

7. Which of these code block checks for when the knight is facing left?

  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"direction"},{"type":"string","value":"knight"}]},{"type":"string","value":"-90"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"direction"},{"type":"string","value":"knight"}]},{"type":"string","value":"90"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"direction"},{"type":"string","value":"wall"}]},{"type":"string","value":"-90"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume #"},{"type":"string","value":"knight"}]},{"type":"string","value":"-90"}]}]}

8. Michael wants to program a Red Light, Green Light game where the player should move their character towards the traffic light only when it's green. If they move while it is red, they have to go back to the starting position. Which of these code blocks would Michael use to make the character react correctly to the red light?

  • {"func":"blockControlIf","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"traffic lght"}]},{"type":"string","value":"red light"}]}],"containers":[{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}]}
  • {"func":"blockControlIf","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"traffic lght"}]},{"type":"string","value":"green light"}]}],"containers":[{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}]}
  • {"func":"registerKeyTrigger","values":[{"type":"choice","value":"right arrow"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}}
  • {"func":"registerKeyTrigger","values":[{"type":"choice","value":"right arrow"}],"next":{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}}

9. What does this code block do? {"func":"registerFlagTrigger","next":{"func":"blockMotionGoTo","values":[{"type":"number","value":"0"},{"type":"number","value":"0"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"wrapper","func":"valueOpRandom","values":[{"type":"number","value":"1"},{"type":"number","value":"360"}]}],"next":{"func":"blockControlForever","containers":[{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}]}}]}}}}

  • The Actor will start off in the center of the screen and move forever in a random direction
  • The Actor will start off in the center of the screen and move to the right forever
  • The Actor will start in a random location and move forever in a random direction
  • The Actor will start off in the center of the screen and not move

10. Luke wants to program the ghost to move towards the knight only if the knight is on the right side of the screen. Which of these code blocks would we use to do this?

  • {"func":"registerFlagTrigger","next":{"func":"blockControlForeverIf","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"x position"},{"type":"string","value":"knight"}]},{"type":"string","value":"0"}]}],"containers":[{"func":"blockMotionPointTowards","values":[{"type":"string","value":"knight"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}]}}}]}}
  • {"func":"registerFlagTrigger","next":{"func":"blockControlForeverIf","values":[{"type":"wrapper","func":"valueOpLess","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"x position"},{"type":"string","value":"knight"}]},{"type":"string","value":"0"}]}],"containers":[{"func":"blockMotionPointTowards","values":[{"type":"string","value":"knight"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}]}}}]}}
  • {"func":"registerFlagTrigger","next":{"func":"blockControlForeverIf","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"y position"},{"type":"string","value":"knight"}]},{"type":"string","value":"0"}]}],"containers":[{"func":"blockMotionPointTowards","values":[{"type":"string","value":"knight"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}]}}}]}}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"x position"},{"type":"string","value":"knight"}]},{"type":"string","value":"0"}]}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}

11. Jake wants to program a fireball to fly around the screen randomly. When it hits the wall, it should bounce off. If it hits the ghost, it should just pass through. Which of these code blocks could he use to program this behavior?

  • {"func":"registerFlagTrigger","next":{"func":"blockControlForever","containers":[{"func":"blockMotionPointDirection","values":[{"type":"wrapper","func":"valueOpRandom","values":[{"type":"number","value":"1"},{"type":"number","value":"360"}]}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}],"next":{"func":"blockControlIf","values":[{"type":"wrapper","func":"valueSensingTouchingSprite","values":[{"type":"string","value":"wall"}]}],"containers":[{"func":"blockMotionTurnCCW","values":[{"type":"string","value":"180"}]}]}}}}]}}
  • {"func":"registerFlagTrigger","next":{"func":"blockControlForeverIf","values":[{"type":"wrapper","func":"valueSensingTouchingSprite","values":[{"type":"string","value":"wall"}]}],"containers":[{"func":"blockMotionPointDirection","values":[{"type":"wrapper","func":"valueOpRandom","values":[{"type":"number","value":"1"},{"type":"number","value":"360"}]}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}],"next":{"func":"blockMotionTurnCCW","values":[{"type":"string","value":"180"}]}}}}]}}
  • {"func":"registerFlagTrigger","next":{"func":"blockControlForever","containers":[{"func":"blockMotionPointDirection","values":[{"type":"wrapper","func":"valueOpRandom","values":[{"type":"number","value":"1"},{"type":"number","value":"360"}]}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}],"next":{"func":"blockControlIf","values":[{"type":"wrapper","func":"valueSensingTouchingSprite","values":[{"type":"string","value":"wall"}]}],"containers":[{"func":"blockMotionTurnCCW","values":[{"type":"string","value":"0"}]}]}}}}]}}
  • {"func":"registerFlagTrigger","next":{"func":"blockControlForever","containers":[{"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}],"next":{"func":"blockControlWait","values":[{"type":"number","value":".5"}],"next":{"func":"blockControlIf","values":[{"type":"wrapper","func":"valueSensingTouchingSprite","values":[{"type":"string","value":"wall"}]}],"containers":[{"func":"blockMotionTurnCCW","values":[{"type":"string","value":"180"}]}]}}}}]}}

12. What is the difference between the {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]} and {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}]} blocks?

  • The {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]} block changes the Actor relative to its current direction, while the {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}]} block is not dependent on the current direction of the Actor
  • The {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]} block is not dependent on the current direction of the Actor, while the {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}]} block changes the Actor relative to its current direction
  • Both the {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]} and {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}]} blocks change the Actor relative to its current direction
  • Both the {"func":"blockMotionTurnCW","values":[{"type":"string","value":"90"}]} and {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}]} blocks are not dependent on the current direction of the Actor

13. Which block would you use to check if another Actor has the same Costume as your current Actor?

  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueLooksCostumeName"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueLooksCostumeNum"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpLess","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume #"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueLooksCostumeNum"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"direction"},{"type":"string","value":"actor"}]},{"type":"string","value":"90"}]}]}

14. Which block would you use to check if another Actor is further to the right than the current Actor?

  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"x position"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueMotionXPosition"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"x position"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueMotionYPosition"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"y position"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueMotionXPosition"}]}]}
  • {"func":"registerTrigger","values":[{"type":"wrapper","func":"valueOpGreater","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"y position"},{"type":"string","value":"actor"}]},{"type":"wrapper","func":"valueMotionYPosition"}]}]}

15. Tori wants to program a game where the controls are reversed. For example, if you tilt the device right, you should move left. When you tilt the device backward, you should move up. Which of these code blocks does NOT belong in her code?

  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"forward"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":0}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}}
  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"backward"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":180}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":-10}]}}}
  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"left"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":90}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}}
  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"right"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":-90}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}}

16. Michael wants to program a Red Light, Green Light game where the player should move their character towards the traffic light only when it's green. If they move while it is red, they have to go back to the starting position. Which of these code blocks would Michael use to make the character react correctly to the red light?

  • {"func":"blockControlIf","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"traffic lght"}]},{"type":"string","value":"red light"}]}],"containers":[{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}]}
  • {"func":"blockControlIf","values":[{"type":"wrapper","func":"valueOpEqual","values":[{"type":"wrapper","func":"valueSensingSpriteProperty","values":[{"type":"choice","value":"costume name"},{"type":"string","value":"traffic lght"}]},{"type":"string","value":"green light"}]}],"containers":[{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}]}
  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"right"}],"next":{"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}],"next":{"func":"blockMotionMove","values":[{"type":"number","value":"10"}]}}}
  • {"func":"registerTiltTrigger","values":[{"type":"choice","value":"right"}],"next":{"func":"blockMotionGoTowards","values":[{"type":"string","value":"start"}]}}

U.S. Standards

  • CCSS-Math: 3.NBT.A.2, MP.1
  • CCSS-ELA: RF.3.4.A, RF.4.4.A
  • CSTA: 1B-AP-10, 1B-AP-11, 1B-AP-12, 1B-AP-15
  • CS CA: 3-5.AP.13, 3-5.AP.14, 3-5.AP.17
  • ISTE: 1.c, 1.d, 4.d, 5.c, 5.d, 7.c

U.K. Standards

Key stage 2
Pupils should be taught to:
  • design, write and debug programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts
  • use sequence, selection, and repetition in programs; work with variables and various forms of input and output
  • use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs
  • understand computer networks, including the internet; how they can provide multiple services, such as the World Wide Web, and the opportunities they offer for communication and collaboration
  • use search technologies effectively, appreciate how results are selected and ranked, and be discerning in evaluating digital content
  • select, use and combine a variety of software (including internet services) on a range of digital devices to design and create a range of programs, systems and content that accomplish given goals, including collecting, analysing, evaluating and presenting data and information
  • use technology safely, respectfully and responsibly; recognise acceptable/unacceptable behaviour; identify a range of ways to report concerns about content and contact

Lesson 10: Color Effects

Course: | iPad Web

  • Introduction
  • Concepts
  • Color Pattern Example
  • Changing Color
  • Draw a Line
  • Color Pattern
  • Drag the Stars
  • Color Effects
  • Quiz

Description

Advance your class to intermediate level programming concepts using a wider set of visual blocks. In Snowball Siege, students learn about layering, Actor visibiliy, motion, and collisions. Then, in Star Runner, they use line drawing commands and program math art. They build several mini-games while understanding how to create more complex programs. After completing this lesson plan, students will be able to build a wide variety of school projects and their own comprehensive games.

Topics

  • Animation sequences
  • Motion
  • Game design basics
  • Built-in animation commands
  • Advanced keyboard and mouse control
  • Sending and receiving messages
  • Actor layering
  • Advanced events
  • Math operators
  • Functions

What Students Learn

  • Gain confidence in building a variety of programs
  • Apply programming concepts to build your own games
  • Design characters with multiple animation sequences
  • Write interactive stories with multiple scenes
  • Make an image editor using drawing primitives
  • Define more advanced keyboard and mouse interaction
  • Program special effects and explosions
  • Troubleshoot and debug programs

Technical Requirements

* Online courses require a modern desktop computer, laptop computer, Chromebook, or Netbook with Internet access and a Chrome (29+), Firefox (30+), Safari (7+), or Edge (20+) browser. No downloads required.
* Tablet courses require an iPad (iOS 10+) with Tynker or Tynker Junior app installed and Internet access