Learning Objectives

Students will be able to:

  • Complete small coding tasks
    • Hour of Code
  • Explain why computer programs are written in specialized languages

Materials and Preparation

  • Computers with Internet Access
  • Synchronous online meeting tool such as Zoom or Bluejeans if teaching online and completing the lesson with the class
  • Asynchronous such as Google Classroom if teaching online but recording the instructions for students to complete on their own
  • Work through at least one of the coding activities on your own before the lesson:

World Wall

Terms introduced you may want to add to a classroom Word Wall either online or in person.

Word Definition
Algorithm A complete, well-defined sequence of steps for completing a task or solving a problem.
Computer An electronic machine that can solve different problems, process data, store & retrieve data and perform calculations.
Computer Science The study of the principles and use of computers.
Computer Program A sequence of instructions or steps, written in a language that can be understood by a computer, that will be used by the computer to complete a task or solve a problem.
Debug A process of locating and removing computer program bugs, fixing errors or abnormalities.
Programming Language A vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks.

Lesson Plan Pacing for a 55 Minute Lesson

Duration  Description 
5 minutes Welcome, attendance, bell work, announcements
5 minutes Introductory discussion
35 minutes Coding activities
10 minutes Debrief and wrap-up

Guiding Notes

Introduction

  • Introduce the concept of a computer program: a sequence of instructions or steps, written  in a language that can be understood by a computer, that will be used by the computer to complete a task or solve a problem
  • Play this Introduction to Programming Video by Khan Academy
  • Ask the group what aspect of programming might be the most challenging and what skills are the most useful
    • Sample guiding questions:
      • What are the steps required to write a computer program:
        • This is essentially developing an algorithm for writing a program!
      • What knowledge might make writing a program easier?
      • What might you need to do when writing a computer program that you have never or rarely done before?
      • What parts of programming are most intimidating or scary?
      • What are you good at that might help you be a good programmer?

Activity

  • Allow students to struggle with the activities if needed, stressing the importance of patience and persistence in programming.

Debrief

  • Guide students in a discussion about the activities including strengths, surprises and struggles
    • What was most challenging?
    • Explain that programming is a language and required editing and problem solving for a correct “sentence” or program to run and make sense
    • What was different about solving these computer program problems than other problems in school, other subjects, or in your every day life?
    • Why can instructions not be given in simple English? Why must we be limited to certain operations for building solutions?
    • If some students are interested, this can be an opportunity for a conversation about the difference between high-level programming languages and machine languages (assembly code). This video explains the difference between the two.

Accommodations and Differentiation

  • Let students struggle! Avoid the urge to show students the answer right away, and encourage them to try many approaches and develop partial solutions. This develops creativity in their expression of answers, as well as grit and determination when problem solving.
  • Do not let students skip out on certain steps, disengage or copy from a partner. The focus here is for individual expression of learning and demonstration of understanding. You can decide which students can work together, but only if collaboration and teamwork is part of your assessment.

Picking a program that is right for your students

  • LightBot Hour of Code is more challenging, but not substantially so, and is more game-like, which often leads to greater engagement. LightBot is recommended if students seem capable of handling the challenge.
  • SNAP Hour of Code is simpler, and has easier goals which take a shorter amount of time to accomplish. This task can be completed with the assistance of a guardian at home or with a teaching support in the classroom for students with specific learning accommodations.
  • It is unlikely that students will finish both activities in one class period. On the rare occasion some do, encourage them to explore SNAP! on their own or to try the full version of LightBot 2.0