Pīkau 9: Programming with loops
Introduction
Why this matters
The idea of a loop in programming is very powerful - in just a few commands you can get the computer to do hundreds, or even millions, of operations. This could involve getting it to look at every pixel of the millions in a photograph, locating someone’s information where there are millions of names stored in a database, or processing all the purchases that customers have made in one day. This is where we go from having a device simply follow some one-off instructions, to doing them over and over, day after day.
We’ll also look in more detail at how to get input from the user, and storing the input so that we can do interesting things with it.
Remember that this is a readiness programme. In this pīkau we’ll be spending less than an hour on these ideas. We won’t be able to fully cover everything there is to know, but we’ll get you started.
At this level our main goal is that you understand the point of Progress Outcome 3 in the New Zealand Curriculum.
Also, there’s an important part of Progress Outcome 3 that we’re not covering here, but will be in a later pikau: “They understand that digital devices store data using just two states represented by binary digits (bits).”
The idea of binary digits is fundamental to how everything is stored on computers and is relevant to nearly everything in Digital Technologies, including programming, but it’s worth looking at on its own.
Pīkau 16 – Representing data in binary
By the end of this pīkau you will have been shown how to:
- Identify inputs, outputs, sequence and iteration in simple programs
- Describe the role of a variable
- Predict the behaviour of simple programs
- Explain how multiple algorithms can be used to solve the same problem
Links to existing knowledge
You might already know some of this.
The material we’re covering here builds on the previous pīkau about computational thinking. We’ll be looking in a lot more detail at what was covered in pīkau [LINK to EM-P7] What is programming, but we’re also building on the ideas in the first two Progress Outcomes, which were covered in:
We’re mainly going to use the Scratch programming language. If you’d like to save your work, it’s worth setting up a (free) Scratch account.
- Start by visiting the Scratch website.
- Click on “Join Scratch”.
- Choose a username that you don’t mind using in front of your class!
Please remember: this isn’t a lesson in programming, just an overview of how programming works.
A quick introduction to variables
While variables aren’t explicitly mentioned in the Progress Outcomes until Progress Outcome 5, we are going to introduce them here because you can’t do much without them. Variables are for storing information you want to use later. Find out more by watching the following video.
The Scratch program used in the above video is available on Scratch:
- Variables demonstration on Scratch
- Remember to click on “see inside” to view the actual program.
Activity - Playing with variables
Try these programs, and by clicking on “See inside”, see if you can predict what the cat will say before you click on the green flag to run the program! You can check your answer by clicking on the green flag in Scratch. (These programs don’t do anything very useful - they are just an exercise to check your understanding!)
Activity - Playing with variables Q1
See if you can predict what the cat will say before you click on the green flag to run the program!
Check your answer:
Activity - Playing with variables Q2
See if you can predict what the cat will say before you click on the green flag to run the program!
Check your answer:
Activity - Playing with variables Q3
See if you can predict what the cat will say before you click on the green flag to run the program!
Check your answer:
Inputs in Scratch
Inputs are how we get information from the user or other external sources into our programs. There are many ways to get input.
In this video we’ll have a look at a few of them that are more relevant in an education setting, using the Scratch programming language as an example.
Programming in an authentic context
In the following video Joanne and Tim discuss inputs in projects done by some of Joanne’s students. It’s a good example of how programming can be integrated practically into other learning areas. The students are in a Māori immersion kura, so the programs are written in te reo. Their programs are related to a field trip to Te Koroneihana (annual Māori monarchy coronation celebrations).
Inputs in other languages
We’ve looked at inputs in Scratch. Let’s look at how input can be done in other languages, in this case, Python and JavaScript. You’ll see how a block based coding language really does scaffold up to more complex languages.
The Python program used in this demonstration is available here:
The simpler JavaScript program can be explored here:
By the way, the unusual URLs are made up by the repl.it site, and are assigned randomly - we didn’t choose to use words like “Guiltware”!
Iteration in Scratch
Iteration is a powerful idea in coding as it makes the computer do things over and over. This means a programmer can write a small amount of program code to quickly instruct the device to do hundreds - or even millions - of instructions over and over. It can also prevent bugs being introduced in repetitive code since the programmer only needs to get it right once, and the computer repeats the correct code over and over. This all makes for efficient use of a programmer’s time!
The Scratch program used in the above video is available at:
Link to programme design
As we saw in the video Programming in an authentic context, writing programs in Scratch can be used to support other learning areas. Writing the code itself can give many mathematical concepts an authentic context, such as coordinate geometry and angles.
Programming can also be used to bring Digital Technologies / Hangarau Matihiko into other subjects in the curriculum; in this case it gave students a way to share their experience from a field trip.
Wrapping up and where to next
The elements of Progress Outcome 3 that have been covered in this pīkau are highlighted in the following video. We’ve set the scene to look at Progress Outcome 4, which will be covered in the next pīkau, Getting programs right: the end-user, and fast algorithms (CT PO 4) (EMP09).
Facilitation notes
If you are working through this pīkau as a group feel free to download and use these facilitation notes:
References
Some Year 7 students from Te Kura Kaupapa Māori o Te Whānau Tahi in Ōtautahi (Christchurch) kindly spoke about and shared their Scratch projects for this pīkau.