Learn about functions and why we use them in programs. Then create some functions of your own using Marty.

24 of 24 linked standards shown.
| Curriculum area | Linked standards |
|---|---|
| Digital Technologies, Design & technologies: Design & Technologies | |
| Digital Technologies, Design & technologies: Digital Technologies |
Select a code to read the full standard.
| Curriculum area | Linked standards |
|---|---|
| General standards |
Select a code to read the full standard.
| Curriculum area | Linked standards |
|---|---|
| Health and Wellbeing: Mental, Emotional, Social and Physical Wellbeing | |
| Literacy & English: Listening and Talking | |
| Literacy & English: Writing | |
| Technologies: Computing Science | |
| Technologies: Craft, Design, Engineering and Graphics |
Select a code to read the full standard.
| Curriculum area | Linked standards |
|---|---|
| Computing, Design and Technology: Computing | |
| Computing, Design and Technology: Design and Technology |
Select a code to read the full standard.
| Curriculum area | Linked standards |
|---|---|
| International Society for Technology in Education (ISTE) |
Select a code to read the full standard.
| Curriculum area | Linked standards |
|---|---|
| Middle School Technology Applications: Grade 6 to Grade 8 |
Select a code to read the full standard.
In this lesson, Learners will have a chance to experience functions. Functions are an important part of programming that reduce the amount of repeated code by being responsible for ideally one thing.
Up until now, code blocks have been long, this has made them limited in terms of how easy they are to read and change. Functions help a program's readability and support debugging.
Learners will begin by thinking about games they may have played when they were younger and create a tactic which is akin to a function in a program. Later, learners will either repurpose old code by organising repeating blocks in a function, or develop the parts for functions that are already available in Blocks.
Experience using sensors and variables
| Timing | Activity | Possible adaptations |
|---|---|---|
| — | Warm upHave learners think of a playground games they may have played when they were younger. Now, have them think if there were any that they regularly won (because they figured out something) or that they often saw others win at, which was frustrating. Ask if learners ever thought this was like cheating. Was there something that the winning players always seemed to do which led to a win? Below are some ideas:
Click to expand for talking points for Duck, Duck, Goose or look at slide 4 in the presentation, which includes a video
Slide 5 from the presentation has a suggested flowchart that could be used to illustrate a function for Duck, Duck, Goose. Learners will need access to the internet to research the game they have chosen to write about. The minimum they will need to research is if there is a point system, if there are teams and what decides a winner. |
| Timing | Activity | Possible adaptations |
|---|---|---|
| — | Get learningLearners will need to take one of the games researched and decide on a tactic they think would be most beneficial for winning. The group will need time to discuss the ideas in order to reach consensus. Once they have decided, learners will use pseudocode to describe the routine they are going to use and give it a name. Then, they will need to place it in the ‘program’ of the game. Groups will present their ideas to the class describing how their tactic can be used repeatedly through the game to improve the chances of success. Show slide 7 on the presentation to display the function block, in Blocks, the section is called ‘My Blocks’. There are notes on slide 7 to support discussion. Following the idea sharing, display Marty standing with legs side by side, and press the walk forward block on your device (alternatively, use slide 8 from the presentation, which shows a slowly walking Marty. There are notes on the page that describe how you can use this slide). This will cause Marty to take two steps forward, by default. Have learners look carefully as you press the button again. What different movement do you see Marty make to carry out that command? If necessary, run the Marty Controller, where you can more easily control the speed of the walk block, which will enable learners to see individual movements more clearly. Have one learner in each group be the Marty. Have the other learners develop a function so that that Marty can walk. Encourage learners to look at Blocks for the single commands they could use to build their function. Allow for sufficient time for trial and error to allow learners the most chance to successfully build a walk function. This needn't be recorded in the workbook, it is more a chance to get a feel for how the individual commands come together to make a function. Allow for lots of discussion within and between groups, also be sure to walk around the class asking questions and making comments. |
| Timing | Activity | Possible adaptations |
|---|---|---|
| — | Cool DownBring learners back together to discuss the challenges they faced and overcame. Have groups model their creations and explain what is happening, when. Encourage other groups to ask questions to deepen the understanding of the processes. Suggested questions you might ask:
Carry out any end of lesson routines. Log off devices and clear everything away. | — |
| — |
Specific angles are not a requirement for the human-Marty walk function as that is challenging to estimate but adjectives of some kind would be good.
There is a description of how to code a walk function in the teacher guide and slide 9 shows the blocks in Blocks if you wanted to showcase Marty doing it in real life. Take time to talk through the sequence, timing and angles used in the function. Preparing this on the class device to demonstrate the function would support the learning.
| — |
| — | Time for PracticeSuggest that learners investigate the kick block:
The teacher guide has the code that is needed to carry out this action. For learners, they could choose a different learner to be Marty for this function and group members can experiment with the different code blocks until there is a suitable function; while building their function, groups should record their planning and ideas in their workbooks. Take time to walk around listening to discussion and asking questions to promote more thinking. If there is time, either link devices to the class Marty or quickly create the code blocks on the teacher device from different group ideas to display Marty in action. | SupportHave physical code cards available for learners to use, when building their scripts:
Have a print out of the basic function statements, using the event block and 'light_action' block. |
In the example video, Marty's walking speed is reliant on the level of light. There is fast and there is slow.