Skip Navigation


By Kassandra Lenters 30 minutes
For Everyone
English Language Arts,
Physical Education
  • Programming
  • Data
Tools & Languages

Key Coding Concepts

  • Algorithms
  • Debugging
  • Sequences



A step-by-step set of operations to be performed to help solve a problem



Finding problems or ‘bugs’ in code and solving them



Identifying a series of steps for a task. Computers and Scratch read and perform commands in order from top to bottom

This is a variation of “Do the Robot,” where learners explore algorithms while practicing basketball skills.


  • Basketballs

Before the lesson...


Ask: Who has heard of James Naismith? What is he known for? (A: He is a fellow Canadian who invented the game of basketball!)

Shooting/passing is a huge part of basketball. We’re going to practice this skill - but with a twist.

Grades 1-3:
  • Ask: How do we make a bounce pass? → Review proper form from Active Start resource
  • Have a volunteer help you demonstrate a proper pass to the group
Grades 4-6:
  • Ask: How do we shoot a free throw? → Review proper shooting form using the B-E-E-F approach: Bend knees, Eyes on target, Elbow in, Follow through)
  • Have a volunteer demonstrate proper form for the group (have them shoot the ball straight up in the air, then catch it)


Ask: Who do you think is more intelligent - a human or a computer? Why? (A: Humans! We program computers and give them instructions in the first place!)

We are going to practice our shooting/passing form as robots and programmers.


  1. Pair up learners
  2. Have one partner in each pair raise their hand - they will be the robot.
  3. Robots have officially forgotten everything (except for blinking, breathing and standing..) - they need to be programmed to pass/shoot a free throw.
  4. Have the other partner raise their hand - they will be the programmer.
  5. Programmers: With great power comes…. great responsibility! The programmers will give simple, clear instructions to their partner to help them complete this task - using words only! (no actions)
  6. Briefly demonstrate how clear the instructions need to be. Show them that “Bend your knees” could mean bending all the way into a squatting position. Programmers will need to be very clear! (e.g. “Bend your knees slightly” or “Bend your knees so that your legs are at a 150 degree angle”)
  7. Explain that when we give an instruction that doesn’t work, then fix it by trying again, we are debugging. This is very important in programming!
  8. Have one partner find a spot along the wall for passing, or at a basketball net for shooting (or along a wall if nets aren’t available), and the other grab a basketball
  9. Give them 5 minutes before having partners switch roles


Put basketballs away for a debrief.

Ask: What was it like being the Robot? Programmer? - What extra steps did they need to add to their instructions? What did they need to consider when giving instructions?

Congratulate them on creating their first algorithm (a step-by-step set of instructions)! Just like the robot role, computers require very clear, simple instructions in a specific order - or sequence.

Learning Outcomes

I can create an algorithm
I can give clear, simple instructions in the correct order - or sequence
I can problem solve and ‘debug’ instructions
I can learn programming concepts without computers
I can use proper shooting/passing form

Assessment Ideas

Have volunteers demonstrate their process and instructions used to the group.

If using the extension of calculating their own free throw %, have learners record their answers to show their work.

Have pairs come up with a pre-shooting routine and add it into their algorithm. Steve Nash dribbles three times before each free throw (plus a few other things!) Watch his routine here


  • Spend time researching the greatest free throw shooter in NBA history (fellow Canadian and hall-of-famer) Steve Nash! Nash had a 0.9043 shooting percentage during his basketball career - even better than Steph Curry! (Stat from 2018. More info here)
  • Add some math into the equation! Have learners calculate their own free throw percentage. Start off by having them count how many they make out of 10 shots. Increase to a higher number if you have time.
  • Any Curry fans? Use live statistics from the Curry Count to create some basketball-related math equations:


  • Watch this video about the "Edmonton Grads"

    Research NBA and WNBA player salaries and use this data to support a discussion on the gender wage gap between male and female athletes. (See this article)


  • Hang hula-hoops off of the basketball nets if the rims are too high for younger learners to reach when shooting.
  • If basketballs are not available, try using a beach ball or balloon.

Teach lessons that are tied to your existing curriculum!


More Lesson Plans For For Everyone

    View All Lesson Plans

    Explore lessons based on components

    The K-12 Computer Science Framework

    Although learning how to build digital projects is a key part of Computer Science education, students should also learn a wider set of skills and competencies that will help them to harness the power of digital technologies as both creators and consumers. A comprehensive approach to K-12 Computer Science education includes learning about the following five focus areas:

    View Framework ➝


    By the end of high school, students should be able to create a simple computer program.

    Computing and Networks

    By the end of high school, students should understand and be able to use the tools and devices commonly used to build digital projects.


    By the end of high school, students should be able to explain how we use computers to create, store, organize, and analyze data.

    Technology and Society

    By the end of high school, students should be able to explore the ways in which technology and society have mutually shaped each other.


    By the end of high school, students should be able to apply design principles to the digital projects they create.