Lesson 16: Functions in Artist
Function  Artist
Overview
Students will be introduced to using functions on Code.org. Magnificent images will be created and modified with functions in Artist. For more complicated patterns, students will learn about nesting functions by calling one function from inside another.
Purpose
One of the most important components to this lesson is providing students with a space to create something they are proud of. These puzzles progress to more and more complex images, but each new puzzle only builds off the previous puzzle. At the end of this lesson, students will feel confident with themselves and proud of their hard work.
Agenda
Warm Up (15 min)
Bridging Activity  Functions (15 min)
Main Activity (30 min)
Wrap Up (15 min)
Extended Learning
Objectives
Students will be able to:
 Categorize and generalize code into useful functions.
 Recognize when a function could help to simplify a program.
Preparation
 Play through puzzles in Course E Online Puzzles  Website to find any potential problem areas for your class.
 Review CS Fundamentals Main Activity Tips  Lesson Recommendations.
 Make sure every student has a Think Spot Journal  Reflection Journal.
Links
For the Teacher
 Course E Online Puzzles  Website
 CS Fundamentals Main Activity Tips  Lesson Recommendations
For the Students
 Unplugged Blockly Blocks (Grades 2  5)  Manipulatives (download)
 Think Spot Journal  Reflection Journal
Vocabulary
 Function  A named group of programming instructions. Functions are reusable abstractions that reduce the complexity of writing and maintaining programs.
Support
Report a Bug
Teaching Guide
Warm Up (15 min)
Introduction
Ask the class to think back to "Functions Unplugged: Songwriting" and recall what a function is. Open a discussion about when to use a function when writing a song.
Tell the class that there are two main components to using functions.

The Declaration: Function declarations are what create a function. In a function declaration, you fill in the function with code and you give the function a name. You must declare a function before you can use it.

The Call: Function calls are what makes the program run the code in the function. To call a function, you place the name of the function in your program. Make sure your function is properly defined before calling it in your program.
The class can use songwriting as an example to understand these two components. In the unplugged activity, the function containing the lyrics to the chorus was named "chorus". When we first made this function, we circled the lyrics that would go in the function. Once we named the function, we could read through the lyrics and replace the repeated chorus lyrics with a function call to "chorus".
Continue the conversation until students have a basic understanding of functions being declared and called. If students don't get to this point, make sure to do one of the bridging activities before moving into the Code.org puzzles.
Bridging Activity  Functions (15 min)
This activity will help bring the unplugged concepts from "Functions Unplugged: Songwriting" into the online world that the students are moving into. Choose one of the following to do with your class:
Lesson Tip
Function blocks:
The block to the left is a function declaration, a block that students will name and use to fill in the function. The block to the right is a function call, a block that makes the function code run. Students will need multiple of the function call blocks.
Unplugged Activity Using Some Blockly
Pick a song to play that the students enjoy and print out the lyrics. You can use the same song from "Functions Unplugged: Songwriting." Break your class into groups or pairs. Pass out the printed out lyrics (including the repeated chorus) and the basic function blocks from Unplugged Blockly Blocks (Grades 2  5)  Manipulatives to each group or pair of students. See lesson tip for details.
Ask the students to cross out any part of the song that can be made into a function (the chorus is a good example) and put it into the function blocks provided. Students should fill in the function declaration with a function name and the words of the repeated lyrics. Once the function declaration is done, ask the students to fill in the function calls and place them on top of the crossed out lyrics.
Once every group or pair is done, ask the class where they put their functions and why. Did everyone make the same function? How often is the function repeated?
Preview of Online Puzzles
Pull up a puzzle from Course E Online Puzzles  Website. We recommend the first puzzle for this activity. As a class, work through the puzzle without using functions. Once you have gotten the solution, display it on a white board or overhead. Ask the class to point to the repeated code. Ask the class how they would simplify the program.
On the white board or overhead, rewrite the program without the repeated code, but leaving one line space. In that/those line space(s), call a function. Off to the side, declare the function like the left example block in the lesson tip. Ask the class what they think the code will do now.
Open up a discussion with the class on why functions could be useful in programming. Invite students to discuss the difference between functions and loops.
Main Activity (30 min)
Course E Online Puzzles  Website
Students may benefit from writing code without functions then creating functions from the repeated code. If students don't enjoy doing this in the Code.org workspace, we recommend providing paper and pencils for students to write (or draw) out their ideas.
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 are some differences between functions and loops?
 Sketch out a drawing you made today. Can you write the code needed to create this?
 Draw a picture you would like to create with code. Try writing or drafting the code that would make that drawing.
Extended Learning
Draw by Functions
Break the class into groups of 23 students. Have each group write a function that draws some kind of shape and a program that uses that function. Depending on the creativity or focus the groups, students might need to be assigned a shape to create. Once every group is done, have the groups switch programs. On a separate piece of paper, each group should draw what the program creates. The groups should then return the programs and drawings to the original group.
Did every group get the drawing they expected? If not, what went wrong? Have the class go through the debugging process and try again.
Standards Alignment
View full course alignment
CSTA K12 Computer Science Standards
AP  Algorithms & Programming
 1BAP08  Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
 1BAP11  Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
Crosscurricular Opportunities
This list represents opportunities in this lesson to support standards in other content areas.
Common Core English Language Arts Standards
L  Language
 4.L.6  Acquire and use accurately gradeappropriate general academic and domainspecific words and phrases, including those that signal precise actions, emotions, or states of being (e.g., quizzed, whined, stammered) and that are basic to a particular topic (e.g
SL  Speaking & Listening
 4.SL.1  Engage effectively in a range of collaborative discussions (oneonone, in groups, and teacherled) with diverse partners on grade 4 topics and texts, building on others’ ideas and expressing their own clearly.
 4.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.
 4.SL.4  Report on a topic or text, tell a story, or recount an experience in an organized manner, using appropriate facts and relevant, descriptive details to support main ideas or themes; speak clearly at an understandable pace.
 4.SL.6  Differentiate between contexts that call for formal English (e.g., presenting ideas) and situations where informal discourse is appropriate (e.g., smallgroup discussion); use formal English when appropriate to task and situation.
Common Core Math Standards
G  Geometry
 4.G.1  Draw points, lines, line segments, rays, angles (right, acute, obtuse), and perpendicular and parallel lines. Identify these in twodimensional figures.
 4.G.2  Classify twodimensional figures based on the presence or absence of parallel or perpendicular lines, or the presence or absence of angles of a specified size. Recognize right triangles as a category, and identify right triangles.
 4.G.3  Recognize a line of symmetry for a twodimensional figure as a line across the figure such that the figure can be folded along the line into matching parts. Identify linesymmetric figures and draw lines of symmetry.
MD  Measurement And Data
 4.MD.3  Apply the area and perimeter formulas for rectangles in real world and mathematical problems. For example, find the width of a rectangular room given the area of the flooring and the length, by viewing the area formula as a multiplication equation with an
 4.MD.5  Recognize angles as geometric shapes that are formed wherever two rays share a common endpoint, and understand concepts of angle measurement:
 4.MD.7  Recognize angle measure as additive. When an angle is decomposed into nonoverlapping parts, the angle measure of the whole is the sum of the angle measures of the parts. Solve addition and subtraction problems to find unknown angles on a diagram in real
NBT  Number And Operations In Base Ten
 4.NBT.4  Fluently add and subtract multidigit whole numbers using the standard algorithm.
Next Generation Science Standards
ETS  Engineering in the Sciences
ETS1  Engineering Design
 35ETS11  Define a simple design problem reflecting a need or a want that includes specified criteria for success and constraints on materials, time, or cost.
 35ETS12  Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.