High School course

Programming 302

  • GRADES 7+
  • ADVANCED
  • WEB
  • 16 LESSONS
Slide: 1 of 21

Answer Key

Module 3: Rocket Shot

Module 4: Rocket Shot Explosion

Module 5: Rocket Blaster

Module 6: Unique Projectiles

Module 7: Quiz

1. Which code block would cause an Actor to move up?

  • {"func":"blockMotionPointDirection","values":[{"type":"string","value":"0"}],"next":{"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"50"}]}}
  • {"func":"blockMotionPointDirection","values":[{"type":"string","value":"90"}],"next":{"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"50"}]}}
  • {"func":"blockMotionPointDirection","values":[{"type":"string","value":"180"}],"next":{"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"50"}]}}
  • {"func":"blockMotionPointDirection","values":[{"type":"string","value":"-90"}],"next":{"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"50"}]}}

2. What is the difference between an impulse and an Actor's velocity?

  • An impulse acts on an Actor, while velocity is a property of an Actor
  • An impulse is a property of an Actor, while velocity acts on an Actor
  • Both an impulse and velocity act on an Actor
  • Both an impulse and velocity are properties of an Actor

3. Which properties of an Actor would change if it was dropped from midair and started off with no x and y velocity? (Choose 2.)

  • x linear velocity
  • y linear velocity
  • x position
  • y position

4. Which direction would an Actor be moving after running this code block? {"func":"blockPhysicsSetLinearVelocityXY","values":[{"type":"number","value":"0"},{"type":"number","value":"-10"}]}

  • The Actor would be moving up
  • The Actor would be moving down
  • The Actor would not be moving
  • The Actor would be moving right

5. Which direction would an Actor be moving after running this code block? {"func":"blockPhysicsSetLinearVelocityXY","values":[{"type":"number","value":"10"},{"type":"number","value":"0"}]}

  • The Actor would be moving up
  • The Actor would be moving down
  • The Actor would not be moving
  • The Actor would be moving right

6. Which direction would an Actor be moving after running this code block? {"func":"blockPhysicsSetLinearVelocityXY","values":[{"type":"number","value":"10"},{"type":"number","value":"10"}]}

  • The Actor would be moving down and to the right
  • The Actor would be moving up and to the left
  • The Actor would be moving straight up
  • The Actor would not be moving

7. Which direction would an Actor be moving after running this code block? {"func":"blockPhysicsSetLinearVelocityXY","values":[{"type":"number","value":"0"},{"type":"number","value":"0"}]}

  • The Actor would be moving up
  • The Actor would be moving down
  • The Actor would not be moving
  • The Actor would be moving right

8. How can we reset an Actor's movement if it is moving out of control?

  • {"func":"blockPhysicsSetLinearVelocity","values":[{"type":"number","value":"0"},{"type":"number","value":"0"}]}
  • {"func":"blockPhysicsSetLinearVelocity","values":[{"type":"number","value":"50"},{"type":"number","value":"50"}]}
  • {"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"0"}]}
  • {"func":"blockPhysicsApplyImpulse","values":[{"type":"number","value":"50"}]}

9. What happens if you set an Actor's restitution to 0? {"func":"blockPhysicsSetRestitution","values":[{"type":"number","value":"0"}]}

  • The Actor wouldn't bounce very much at all
  • The Actor would bounce a lot
  • The Actor would be very hard to knock over
  • The Actor would be very easy to knock over

10. What happens if you set an Actor's restitution to 10? {"func":"blockPhysicsSetRestitution","values":[{"type":"number","value":"10"}]}

  • The Actor wouldn't bounce very much at all
  • The Actor would bounce a lot
  • The Actor would be very hard to knock over
  • The Actor would be very easy to knock over

11. What happens if you set an Actor's density to 1? {"func":"blockPhysicsSetDensity","values":[{"type":"number","value":"1"}]}

  • The Actor wouldn't bounce very much at all
  • The Actor would bounce a lot
  • The Actor would be very hard to knock over
  • The Actor would be very easy to knock over

12. True or false: An Actor's X linear velocity determines how fast it is moving horizontally

  • True
  • False

13. True or false: Setting an Actor's linear velocity to 0 by 0 means it will stop moving. {"func":"blockPhysicsSetLinearVelocityXY","values":[{"type":"number","value":"0"},{"type":"number","value":"0"}]}

  • True
  • False

14. True or false: The denser an object, the harder it is to knock it over.

  • True
  • False

15. True or false: An Actor with no X linear velocity or Y linear velocity is not moving.

  • True
  • False

U.S. Standards

  • CCSS-Math: 6.NS.C, MP.1, MP.2, MP.4, MP.7
  • CCSS-ELA: 6-8.RST.3, 6-8.RST.4, 6-8.RST.7, RI.9-10.3, RI.11-12.3
  • CSTA: 2-AP-10, 2-AP-11, 2-AP-12, 2-AP-13, 2-AP-15, 2-AP-16, 2-AP-17, 3A-AP-17, 3A-AP-22
  • CS CA: 6-8.AP.11, 6-8.AP.12, 6-8.AP.13, 6-8.AP.15, 6-8.AP.16, 6-8.AP.17, 9-12.AP.12, 9-12.AP.16
  • ISTE: 1.c, 1.d, 4.d, 5.c, 5.d, 6.b

U.K. Standards

Key stage 3
Pupils should be taught to:
  • design, use and evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems
  • understand several key algorithms that reflect computational thinking [for example, ones for sorting and searching]; use logical reasoning to compare the utility of alternative algorithms for the same problem
  • undertake creative projects that involve selecting, using, and combining multiple applications, preferably across a range of devices, to achieve challenging goals, including collecting and analysing data and meeting the needs of known users
  • create, reuse, revise and repurpose digital artefacts for a given audience, with attention to trustworthiness, design and usability
  • understand a range of ways to use technology safely, respectfully, responsibly and securely, including protecting their online identity and privacy; recognise inappropriate content, contact and conduct, and know how to report concerns
Key stage 4
All pupils must have the opportunity to study aspects of information technology and computer science at sufficient depth to allow them to progress to higher levels of study or to a professional career. Pupils should be taught to:
  • develop their capability, creativity and knowledge in computer science, digital media and information technology
  • develop and apply their analytic, problem-solving, design, and computational thinking skills
  • understand how changes in technology affect safety, including new ways to protect their online privacy and identity, and how to report a range of concerns

Lesson 7: Changing Direction

Course: | Web

  • Introduction
  • Concepts
  • Rocket Shot
  • Rocket Shot Explosion
  • Rocket Blaster
  • Unique Projectiles
  • Quiz

Description

In this advanced lesson plan, students will be introduced to the physics library as they build Gravity Sling, a projectile game inspired by Angry Birds (TM). They define the behaviors of different kinds of projectiles and use physics commands such as impulse, gravity and collisions to build the game. Ninja Runner is an advanced physics platformer game with a boss fight sequence that challenges them to apply all the concepts and skills they have learned.

Students who successfully complete this lesson plan will demonstrate excellent understanding of a variety of programming concepts and computational thinking skills, and will be able to design and implement projects of moderate to advanced complexity.

Topics

  • List variables
  • Structured data
  • Loops
  • Advanced flow control
  • Physics attributes
  • Velocity
  • Impulses
  • Collisions
  • Sending and receiving messages
  • Parameters
  • Functions
  • Advanced conditional logic
  • Math
  • Boolean operators

What Students Learn

  • Build a complete projectile-based physics game
  • Build a complete platformer game using physics
  • Programmatically generate never-ending platforms
  • Program a hero with multiple actions and access them via keys
  • Use cloud variables and a list data structure to implement a leaderboard
  • Use variables to keep score and game speed
  • Program enemy A.I.

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.