Lesson 17: Functions with Harvester

Overview

Students have practiced creating impressive designs in Artist and navigating mazes in Bee, but today they will use functions to harvest crops in Harvester. This lesson will push students to use functions in the new ways by combining them with while loops and if / else statements.

Purpose

This lesson is meant to further push students to use functions in more creative ways. By also using conditionals and loops, students will learn there are many ways to approach a problem, but some are more efficient than others. These puzzles are intended to increase problem solving and critical thinking skills.

Agenda

Warm Up (10 min)

Main Activity (30 min)

Wrap Up (15 min)

View on Code Studio

Objectives

Students will be able to:

  • Recognize when a function could help to simplify a program.
  • Use pre-determined functions to complete commonly repeated tasks.

Preparation

Links

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

For the Students

Vocabulary

  • Function - A piece of code that you can easily call over and over again.

Support

Report a Bug

Teaching Guide

Warm Up (10 min)

Introduction

At this point, your students should already be introduced to functions. Take this time to have them discuss the advantages and disadvantages of using functions in a program. Either have them pair share or discuss as a class. Try using examples of hard or easy puzzles in either Artist or Bee.

Ask the class:

  • When would you use a function?
  • Why does a function help to simplify your program?
  • Do you think functions make programming easier or harder? Why?

Main Activity (30 min)

Online Puzzles

Some puzzles will have a function pre-declared for the students to fill in. It may be helpful for the students to write the entire program without a function first, then determine where a function would be useful in the program.

It's important to make sure that every student is completing each puzzle with a dark green dot. If some of your students are struggling to simplify code and use functions, set up teams of expert students within your class to go around and answer questions.

Don't forget to provide pencils and paper to help students sketch out possible solutions.

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 did you feel about today's lesson?
  • What makes you realize a function could help your program?
  • How do while loops and if / else statements help your program?
View on Code Studio

Student Instructions

"Have we met before? I'm the harvester!"

Help the harvester get to the pumpkin and pick it.

View on Code Studio

Student Instructions

"Oooh, veggies are cropping up everywhere!"

Now help the harvester pick all of the corn on the way to the pumpkin at the end.


Note: Every square on the way to the pumpkin either has 1 corn or nothing at all. Use the provided check for corn function to make sure you get everything.
View on Code Studio

Student Instructions

Use the function to help the harvester pick the corn and pumpkins.


Each sprout will either grow one corn or nothing.
View on Code Studio

Student Instructions

"I feel so functional!"

Now there are multiple pumpkins in each patch! Look carefully at the function definitions below to figure out how to use each one.


Each sprout will either grow one corn or nothing.
View on Code Studio

Student Instructions

Great! Try your functions out on a longer path.

View on Code Studio

Student Instructions

Did you notice that there was a lot of repeated code in that last puzzle? We can save space by calling that code pick along path and using a new function to call the other functions!

Use pick along path to solve this puzzle again using fewer blocks.

View on Code Studio

Student Instructions

"Functions lettuce do more with less work!"

Create a function that sends the harvester down a square path to pick a single head of lettuce from the middle of each row.

View on Code Studio

Student Instructions

Try writing your function again. Is it still helpful? How can you make it work for this puzzle?

View on Code Studio

Student Instructions

This puzzle is a-MAZE-ing!

Is your function still helpful for this puzzle?

View on Code Studio

Student Instructions

Challenge: Use everything that you've learned so far to solve this puzzle in 19 blocks or less!

View on Code Studio

Student Instructions

Solve this puzzle in 23 blocks or less.


Each sprout will either grow one corn or nothing. To find the best solution, you will need to edit the functions directly.
View on Code Studio

Student Instructions

Look at the functions defined below. What will the harvester pick?

The harvester will pick two pumpkins.

The harvester will pick all of the pumpkins.

The harvester will pick the lettuce.

The harvester will pick the corn.

Standards Alignment

View full course alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 1B-AP-08 - Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
  • 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.