Lesson 2: Introduction to Online Puzzles

Sequencing | Debugging | Loop | Angry Bird | Maze | Artist

Overview

In this progression, students will begin with an introduction (or review depending on the experience of your class) of Code.org's online workspace. Students will learn the basic functionality of the interface including the Run, Reset, and Step buttons. Dragging, deleting, and connecting Blockly blocks is also introduced in the beginning video. In the puzzles, students will practice their sequencing and debugging skills in Maze and Artist.

Purpose

We recognize that every classroom has a spectrum of understanding for every subject. Some students in your class may be computer wizards, while others haven't had much experience at all. In order to create an equal playing (and learning) field, we have developed this "Ramp-Up Stage" for Course E. This can be used as either an introduction or a review to the Code.org interface and basic computer science concepts. This stage, along with the three that follow, cover all prerequisites needed to start Course E.

Agenda

Warm Up (15 min)

Bridging Activity - Programming (15 min)

Main Activity (30 min)

Wrap Up (15 min)

Objectives

Students will be able to:

  • Order movement commands as sequential steps in a program.
  • Modify an existing program to solve errors.
  • Break down a long sequence of instructions into the largest repeatable sequence.

Preparation

Links

Heads Up! Please make a copy of any documents you plan to share with students.

For the Teacher

For the Students

Vocabulary

  • Bug - Part of a program that does not work correctly.
  • Debugging - Finding and fixing problems in an algorithm or program.
  • Loop - The action of doing something over and over again.
  • Program - An algorithm that has been coded into something that can be run by a machine.
  • Programming - The art of creating a program.

Support

Report a Bug

Teaching Guide

Warm Up (15 min)

Introduction

Students will either be learning a lot of new concepts or reviewing a lot of basic concepts. Based on your class's experience, you can cover the following vocabulary or move on to a bridging activity. We recommend using the following words in sentences if the definitions aren't explicitly covered.

Vocabulary

This lesson has four new and important vocabulary words:

  • Program - Say it with me: Pro - Gram An algorithm that has been coded into something that can be run by a machine.

  • Programming - Say it with me: Pro - Gramm - ing The art of creating a program.

  • Bug - Say it with me: Bug An error in a program that prevents the program from running as expected.

  • Debugging - Say it with me: De - Bugg - ing Finding and fixing errors in programs.

  • Loop - Say it with me: Loo-p The action of doing something over and over again

Bridging Activity - Programming (15 min)

This activity will help bring the unplugged concepts from "Graph Paper Programming" into the online world that the students are moving into. Choose one of the following to do with your class:

Unplugged Activity Using Paper Blocks

Similar to "Graph Paper Programming", have the students in your class pair up. Pass out multiple fill 1 and move ___ blocks from the Unplugged Blockly Blocks (Grades 2 - 5) - Manipulatives to each pair. Have each pair of students draw a design on a four by four graph from Graph Paper Programming - Worksheet. Next, have the students work together to write the program needed to draw this design using the paper Blockly blocks. The students will need to write up, down, right, or left on the move ___ block. Make sure the students know that the program goes from top to bottom and the blocks need to touch!

Preview of Online Puzzles as a Class

Pull up a puzzle from the associated lesson on CSF Express Course - Website. We recommend puzzle 6 for this activity. Break up the students into groups of three or four. Have them "program" Scrat, the squirrel from Ice Age, to get to the acorn using arrows from "Graph Paper Programming."

The class will not need to use the last arrow.

Once all the groups have an answer, discuss the path as a class.

Main Activity (30 min)

CSF Express Course - Website

Teacher Tip

Show the students the right way to help classmates:

  • Don’t sit in the classmate’s chair
  • Don’t use the classmate’s keyboard
  • Don’t touch the classmate’s mouse
  • Make sure the classmate can describe the solution to you out loud before you walk away

Teachers play a vital role in computer science education and supporting a collaborative and vibrant classroom environment. During online activities, the role of the teacher is primarily one of encouragement and support. Online lessons are meant to be student-centered, so teachers should avoid stepping in when students get stuck. Some ideas on how to do this are:

  • Utilize pair programming whenever possible during the activity.
  • Encourage students with questions/challenges to start by asking their partner.
  • Unanswered questions can be escalated to a nearby group, who might already know the solution.
  • Remind students to use the debugging process before you approach.
  • Have students describe the problem that they’re seeing. What is it supposed to do? What does it do? What does that tell you?
  • Remind frustrated students that frustration is a step on the path to learning, and that persistence will pay off.
  • If a student is still stuck after all of this, ask leading questions to get the student to spot an error on their own.

Wrap Up (15 min)

Journaling

Having students write about what they learned, why it’s useful, and how they feel about it can help solidify any knowledge they obtained today and build a review sheet for them to look to in the future.

Journal Prompts:

  • What was today's lesson about?
  • How do you feel about today's lesson?
  • What does it mean to "program"?
  • Why is programming important?
  • What's something about computers that you would like learn more about?

Standards Alignment

View full course alignment

CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
  • 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.