# Lesson 21: Functions: Songwriting With Parameters

## Overview

One of the most magnificent structures in the computer science world is the function. Functions (sometimes called procedures) are mini programs that you can use over and over inside of your bigger program. This lesson will help students intuitively understand why combining chunks of code into functions is such a helpful practice, and how they can use those structures even when chunks of code are slightly different.

## Purpose

Using functions helps simplify code and develops the student's ability to organize their program. Parameters will help the students customize their functions so that they can be used for patterns that are similar, though not identical. Students will quickly recognize that writing functions will make their long programs easier to read and easier to debug if something goes wrong.

## Objectives

### Students will be able to:

• Modify functions to accept parameters.
• Describe how functions and parameters can make programs easier to write.

## Preparation

• Watch the Functions Unplugged: Songwriting With Parameters - Lesson in Action Video.
• Print several Functions Unplugged: Songwriting With Parameters - Worksheet for each group.
• Print one Functions Unplugged: Songwriting With Parameters - Assessment for each student.
• Make sure every student has a Think Spot Journal.

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

## Vocabulary

• Function - A piece of code that you can easily call over and over again.
• Parameter - An extra piece of information passed to a function to customize it for a specific need

# Teaching Guide

## Warm Up (15 min)

### Vocabulary

This lesson has two new and important words:

• Function - Say it with me: Func-shun

A piece of code that you can call over and over again.

• Parameter - Say it with me: Pa-ram-eh-ter

An extra piece of information that you pass to the function to customize it for a specific need.

### Sing a Song

• Let the class know that today is song day!
• We're going to learn a song together.
• Start with a simple song either written out or projected on the screen
• Point to the chorus and be sure that the class knows how it goes before you begin on the rest of the song
• Blast through the song, singing it with them in the beginning, then see what happens when you get to the part where it calls the chorus

Teaching Tip

Little Bunny Foo Foo is being used here as an example only. If your students know this song, feel free to use it. Otherwise, choose an appropriate song that they might be more familiar with (either from music class or the radio.)

Chorus:
Little bunny Foo Foo
Hopping through the forest
Scooping up the field mice
And bopping ‘em on the head
Down came the Fairy
And she said
“Little bunny Foo Foo
I don’t wanna see you
Scooping up the field mice
And bopping ‘em on the head”

Song:
Chorus

I’ll give you 3 chances.
Then I’ll turn you into a goon!
The next day. . .

Chorus

I’ll give you 2 chances.
Then I’ll turn you into a goon!
The next day. . .

Chorus

I’ll give you 1 chance.
Then I’ll turn you into a goon!
The next day. . .

Chorus

“I gave you two chances.
Now I’ll turn you into a goon!”
(POOF!)
And the moral of the story is:
Hare today, goon tomorrow!

• It's quite likely that the majority of the class will sing the lyrics for the chorus when you point to that bit.
• Stop the song once that happens, and explicitly highlight what just happened
• You defined the chorus
• You called the chorus
• They sang the chorus
• Ask the class why they suppose you only wrote the chorus once at the top of the paper instead of writing it over and over in each place where it is supposed to be sung.
• What are other benefits of only writing the chorus once when you sing it many times?

Lesson Tip

To add more interest, you can look up the lyrics for some popular songs on the Internet. Show the students that the standard for repeating lyrics is to define the chorus at the top and call it from within the body of the song.

Now, imagine that this song is a computer program. Defining a title (like "chorus") for a little piece of code that you use over and over again is called creating a function. This is helpful to computer scientists for the some of the same reasons that it is helpful to songwriters.

• It saves time not having to write all the code over and over in the program
• If you make a mistake, you only have to change it one place
• The program feels less complicated with the repeating pieces defined just once at the top

What about songs where the chorus isn't exactly the same every time? You can still use a chorus, but you have to have a way to let the singer know what special words you will use for each verse.

• These special words are called parameters.
• In programming, parameters are passed as special instructions to functions like this:

chorus(parameter1, parameter2)

Feel like this is starting to get complicated? Don't worry. We're going to play with songs a little more to try to really understand how this technique is used!

## Main Activity (20 min)

### Functions Unplugged: Songwriting With Parameters - Worksheet

A fantastic way to compare functions to something we see in our everyday lives is to look at songs. Songs often have certain groups of lyrics that repeat over and over. We call that a chorus.

Directions:

1. Divide into groups of 4, 5, or 6.
2. Give each group several copies of the Songwriting Worksheet
3. Play a short song for the class that contains a clear chorus that does not change from verse to verse.
4. Challenge the class to identify (and write down) the chorus.
5. Compare results from each group. Did everyone get the same thing?
6. Try the activity again, but this time with a song that changes during each repetition of the chorus. Good examples are: Old MacDonald, Baby Bumblebee, or The Hokey Pokey

Lesson Tip

It's most exciting for students to do this lesson with popular music from the radio, but if you're having a hard time finding appropriate songs where the lyrics repeat exactly, here are a few timeless options:

#### Discuss with the class:

• Can the students identify a chorus when some words change?
• How might they use the same idea of calling a chorus when the chorus is different from verse to verse?
• These changing words and phrases are called “parameters” and you can pass them into the chorus like this: chorus(cow, moo)
• Play this game over and over until the class has little trouble identifying the choruses.

It is often easier just to have the class listen to (or watch) the song, then vote on what the chorus is by singing it together, rather than writing the whole thing down. If you choose this method, consider having the class do a written chorus for the final song selection to be sure that the visual learners get proper reinforcement.

## Wrap Up (15 min)

### Flash Chat: What did we learn?

Lesson Tip

Flash Chat questions are intended to spark big-picture thinking about how the lesson relates to the greater world and the students' greater future. Use your knowledge of your classroom to decide if you want to discuss these as a class, in groups, or with an elbow partner.

• Would you rather write lyrics over and over again or define a chorus?
• Do you think it's possible to make multiple choruses for the same song?
• Does it make sense to make a new chorus for every time it's needed in a song?

### 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?
• How do you see functions being helpful in computer science?
• Describe why parameters are helpful when writing the lyrics for a song where the chorus changes slightly.

## Assessment (5 min)

### Functions Unplugged: Songwriting With Parameters - Assessment

Hand out the assessment worksheet and allow students to complete the activity independently after the instructions have been well explained. This should feel familiar, thanks to the previous activities.

## Extended Learning

Use these activities to enhance student learning. They can be used as outside of class activities or other enrichment.

Functional Suncatchers Visit the CS Fundamentals Unplugged Table or click on the link for Functional Suncatchers. This activity does take a few supplies from the craft store, but it helps students to see the value of calling multiple functions.

• Start by creating a chorus together, then repeat it between verses of a song that you develop around it.
• Make a change to the chorus, and ponder how much easier it is to change in just one place.
• Change the chorus again, making it much longer than it was originally.
• Add a second chorus and alternate between them in your verses.
• Add parameters to one of your choruses and see how many more options you have.

Songwriting a Program

• What if we acted out songs instead of singing them? All of the sudden, our chorus would be a function of repeated actions, rather than words.
• Use the concepts of the arrows from the Graph Paper Programming lesson and create a program with lots of repeating instructions.
• Circle those repeating actions so that the class can see where they are.
• Define a function called "Chorus" above the program.
• Cross out everywhere the repeating actions appear in the program and write "Chorus" instead.
• Repeat until the class can go through this process fairly undirected.
• Can you figure out how to pass parameters in this exercise?
• Levels
• 1
• (click tabs to see student view)
View on Code Studio

## Standards 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-09 - Create programs that use variables to store and modify data.
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.

## Cross-curricular Opportunities

This list represents opportunities in this lesson to support standards in other content areas.

#### Common Core English Language Arts Standards

L - Language
• 5.L.6 - Acquire and use accurately grade-appropriate general academic and domain-specific words and phrases, including those that signal contrast, addition, and other logical relationships (e.g., however, although, nevertheless, similarly, moreover, in addition).
SL - Speaking & Listening
• 5.SL.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 5 topics and texts, building on others’ ideas and expressing their own clearly.
• 5.SL.1.a - Come to discussions prepared, having read or studied required material; explicitly draw on that preparation and other information known about the topic to explore ideas under discussion.
• 5.SL.4 - Report on a topic or text or present an opinion, sequencing ideas logically and using appropriate facts and relevant, descriptive details to support main ideas or themes; speak clearly at an understandable pace.
• 5.SL.6 - Adapt speech to a variety of contexts and tasks, using formal English when appropriate to task and situation.

#### Common Core Math Standards

MP - Math Practices
• MP.1 - Make sense of problems and persevere in solving them
• MP.2 - Reason abstractly and quantitatively
• MP.3 - Construct viable arguments and critique the reasoning of others
• MP.6 - Attend to precision
• MP.7 - Look for and make use of structure
• MP.8 - Look for and express regularity in repeated reasoning

#### Next Generation Science Standards

ETS - Engineering in the Sciences
ETS1 - Engineering Design
• 3-5-ETS1-1 - Define a simple design problem reflecting a need or a want that includes specified criteria for success and constraints on materials, time, or cost.