Minds On
Innovation in Canada
This learning activity features emerging technologies, STEM contributions, and Canadian innovations that are making a difference.
Water systems
Let’s explore examples of innovative water systems found in Canada.

Kananaskis Dam in Seebe, Alberta

Rideau Canal lock system in Ottawa, Ontario

Cleveland Dam in Vancouver, British Columbia

Seawall in Victoria, British Columbia
A carousel of four images. Image 1: Water being released from a hydroelectric dam through 10 concrete columns. Image 2: A series of locks along a canal with buildings on either side leading to a large river. Each section contains water at different heights, and metal walkways cross over each section. Image 3: Water flowing down a concrete chute into a river in a forest with a road on a cliff to one side. Image 4: A large wave crashing against a concrete wall next to a road. There is a fence on top with people watching the waves. "
Brainstorm
Brainstorm
- What purpose do water systems serve?
- What factors might determine where a water system is constructed?
- What challenges do you think are associated with engineering a water system?
- How might coding be integrated into the engineering of a water system?
Record your thoughts in your notebook or using a method of your choice.
Action
Different types of water systems
Water systems serve many roles. They can meet the energy needs of communities by being used to generate electricity. Water systems can also be used as protective measures against flooding and storm surge as is the case with the construction of levees and barriers.
Press the following tabs to access different types of water systems.
Dams, such as the Hoover Dam in the United States, are used to control the flow of water and generate electricity known as hydroelectricity.

Micro dams are usually constructed with various forms of soil upon which sits a layer of stones. The main uses are for providing water for agriculture. Some micro dams have the potential and capacity to generate up to 100 kilowatts of electricity. A small or micro hydroelectric power system can produce enough electricity for a single home, farm, ranch, or village. Micro dams are common in rural areas that may be far away from city or town centres and electricity grids. These dams offer a way to generate and meet the electricity needs of such communities.
A micro dam. A person is on the dam touching a device with an opening that may release the water when turned. There is a forested area in the background. The walls of the dam are rectangular and beige.
Locks, such as the ones shown here in St. Catherine's, Ontario, are a series of compartments that raise and lower water levels so that ships can pass from one region to another, often between lakes or oceans. The compartment is flooded or drained depending on whether the ship is moving to a body of water at a higher or lower elevation.

A lock system. There is a red ship in a lock where water is being flooded in order to raise the water level to the same level as the river behind the lock’s doors. The walls of the lock are concrete and there are walkways on either side of the lock walls. A building also stands adjacent to the lock. Barren trees and brownish fauna line the banks of the river in the background.
Aqueducts are artificial channels that convey water from one location to another. They were used by the Romans, Aztecs, and many other societies throughout history to deliver water to growing urban populations. This image shows an aqueduct system in Mexico.

Levees, such as the one shown here in Germany, are embankments often used in regions with low elevation to control the flow of water. These areas are frequently under the threat of flooding. Regions who have used levee systems in innovative ways include the Netherlands, where 26% of the country is below sea level. Cities such as New Orleans have also improved their water systems in the aftermath of Hurricane Katrina.

Water systems have been used in Bali and other parts of Asia for centuries in the cultivation of rice. Parallel lines run across the face of hills and form terraces in which rice is cultivated. Water runs from platform to platform, ensuring that topsoil remains in place and its growing effects are maximized.

Let’s complete a matching activity based on various types of water systems.
For each image, select the corresponding water system.
Pause and Reflect
Pause and reflect
- How does the natural environment affect water systems?
- How can mountainous communities use terraces to produce agriculture?
- How can water systems produce energy?
Record your ideas using a method of your choice.
Advancements in technology have allowed for automated water systems. This use of automation helps control the flow of water and improved methods of treating water. Automation can decrease waste as well as consumption, which means that it can save energy and water.
Let’s explore an automated water system through coding.
Let’s code!
Let’s explore coding with Scratch!
Coding is a computer programming language that can be used to model concepts and design programs.
Scratch is a coding application that uses blocks to create code. Let’s learn more about how we might use Scratch.
Student Success
Let's think about code!
When you start your own project in Scratch, you will be making code using blocks. A block is a small piece of code that appears to be a puzzle piece or a building block. You can use blocks to build your own code. Each kind of block controls an action. There are 9 kinds of blocks available at the start! As you learn more, you may find other types of blocks to add to your code.
Each block describes an action that is performed by a character. An action is like an instruction. A character can be a sprite or a backdrop. A sprite is an image of a person or object. A backdrop is an image of a background or a place. Your code creates actions that affect a sprite or a backdrop. You can choose if you are using a sprite or a backdrop.
As you make your code, you are connecting blocks to make a code block. Your block of code is known as a code block or a script! The space where you build your code is also known as the scripts area. Press and place each of your blocks into the centre area to make your code. When you activate your code, it is known as running your code.
To start creating code, press on a block and move it to the center area. Press and snap or place your next block under your current block. Now you have created a code block!
Once you have made a code block, your code should perform an action. The action can be made by a character like a sprite or a backdrop. You can make as many characters as you like. You can make different coding instructions for each one!
You can change the order of your blocks or delete a block at any time. You can also copy or duplicate a section of your code. To copy code, right-click on the first block you want to copy. It will copy all of the blocks that follow it. Connect your copied code to the bottom of the code block you want to it added to!
Note to teachers: See your teacher guide for collaboration tools, ideas and suggestions.
To explore some possible code elements and blocks that you may come across in this learning activity, press on the following tabs:
A sprite is a character that carries out the actions that you make with your code.

The backdrops can also be changed by your code. Some blocks change what the backdrop will do!

A motion block makes a sprite move! You can move, turn or ask a sprite to move to a certain position.

A looks block changes how a sprite looks! You can choose costumes for each of your sprites.

A sound block make audio, or a sound. You can use the audio that is included in Scratch. You can also record your own sounds!

An events block is the start button for a code block. To decide when you want your code to run or start, place an events block at the beginning of your code. Your events block is how you decide when your code will start!
Your events block has to be your first block because it starts your code. You can choose how you want your code to start!

A control block is a block that controls when an action happens. A control block can change the order and timing of an action. You can use control blocks to wait, to repeat and even to loop your code!

A sensing block is a block that helps characters work with each other.
For example, what happens if you have two sprites ask each other a question?

An operators block is a block that adds math to your code.
Operators blocks can be tricky to put together.
Before you can put an operators block in your code block, you have to add another block! You could use a sensing block or a variables block. You will need to fill any blank spaces that are part of your operators block. Press and drag a sensing or variables block to snap into any blank spaces. Now you can put your operator block in your code block!

A variables block is a block that keep track of information. A variables block helps to change how to code is run each time. It can be used to create a challenge in a game!

My Blocks is a special area to keep your very own blocks! You can save your own blocks in the My Blocks category.

Now you have explored what kind of blocks you can use in Scratch!
In this activity we will use a coding program to explore automated water systems.
Explore the following Automated Dam program, which was created using Scratch.
Access the following Scratch code: Scratch
In this program, the micro dam uses an automated system that can control the flow of water while considering water levels at various stages.
A reminder: An automated system is a system of controlling or operating a process by electronic or mechanical devices that run continuously in an automated fashion.

The dam separates the water on the left from dry land on the right. When the water level reaches the red line at the top of the dam, the dam will open and release water, generating electricity.
After exploring the program, answer the following questions.
1. What happens as the water level rises?
Press ‘Answer’ to access the answer to this question.
The dam opens and the relative amount of kilowatt-hour electricity goes up by three kWh. Note that it starts at one kWh.
2. What happens when the electricity generated reaches 24 kWh (kilowatt hours)? Kilowatt hours refers to how much energy it takes to run an item using 1,000 watts for one hour.
Press ‘Answer’ to access the answer to this question.
As the water level rises, the dam opens and closes. Each time the dam opens, the amount of kilowatt hour electricity increases by three. When the electricity generated reaches 24 kWh, a new building will appear to show how many buildings can be powered with renewable energy.
One of the main reasons for the construction of dams and micro dams is to harness energy for the creation of electricity in order to meet the energy needs of local communities. If a surplus of energy is created, it may be exported to more distant communities.
Energy generating water system: Looking for patterns and algorithms
Let’s consider a way to simulate a similar water system using a table and pseudocode. Pseudocode is the description of an algorithm written in natural language, avoiding the syntax of programming languages, but allowing the programmer to think about the steps in an algorithm. In other words, it allows humans to understand the program without the programming language.
We will use similar parameters for our activity as used in Scratch, but for this activity, four kWh of electricity will be generated each time the dam opens and our dam will stop after 100 houses have been built.
The simulation will be made in such a way that every time the dam’s water level reaches its maximum safe level, the dam is opened, and water is allowed to flow through, generating 4kWh of electricity in the process. After 24 kWh has been generated, a building is then built, demonstrating what can be powered with this amount of electricity.
To better see the relationship between the number of times the dam door opens and shuts, and the amount of energy generated, we will organize our data into a table.
Table 1 represents the number of times the automated dam door opens and closes, which leads to a rise in energy by four kWh.
The centre column uses conditional language to code the door opening and shutting, and the increase in energy. A conditional is a coding instruction used to compare values and make decisions. It is often represented as an if-then.
Energy Generating Water System: Table 1
Number of times through code | Pseudocode | Energy cumulative value |
---|---|---|
1 |
If door opens and shuts, then increase energy by 4 record 1 cycle end if
|
4 |
2 |
If door opens and shuts, then increase energy by 4 record 1 cycle end if
|
8 |
3 |
If door opens and shuts, then increase energy by 4 record 1 cycle end if
|
12 |
4 |
If door opens and shuts, then increase energy by 4 record 1 cycle end if
|
16 |
5 |
If door opens and shuts, then increase energy by 4 record 1 cycle end if
|
20 |
Student Success
Let’s think!
What do you notice about the data?
How many cycles of door opening and shutting would we need to generate 100 kWh?
Can you make this code more efficient?
Press ‘Answer’ to access one way you could make the code more efficient.
Use a repeat!
Repeat 25
[
If door opens and shuts, then
increase energy by 4
record 1 cycle
end if
]
Energy value table
Complete the table to check if 25 repeats results in an energy value of 100 kWh.
Complete the Energy value table in your notebook or using the following fillable and printable document. If you would like, you can use speech-to-text or audio recording tools to record your thoughts.
Repeat number | Energy value |
---|---|
1 | 4 |
2 | 8 |
3 | 12 |
4 | 16 |
Press the ‘Activity’ button to access Energy value table.
Press ‘Answer’ to verify your energy value answers.
Repeat number | Energy value |
1 | 4 |
2 | 8 |
3 | 12 |
4 | 16 |
5 | 20 |
6 | 24 |
7 | 28 |
8 | 32 |
9 | 36 |
10 | 40 |
11 | 44 |
12 | 48 |
13 | 52 |
14 | 56 |
15 | 60 |
16 | 64 |
17 | 68 |
18 | 72 |
19 | 76 |
20 | 80 |
21 | 84 |
22 | 88 |
23 | 92 |
24 | 96 |
25 | 100 |
Nested conditional statements
We also need to add a fully powered building every time the dam generates 24 kWh. In order to code this, we can use a conditional statement within a conditional statement, which is called a nested conditional. In our energy value table, we follow the pattern to 100 kWh, so let’s use a repeat to see how many buildings can be supported by that much power.
Repeat ?
[
if door opens and shuts, then
increase energy by 4
record 1 cycle
if energy is a multiple of 24 then
build a house
end if
end if
]
Pause and Reflect
Pause and reflect
How many buildings could be supported by 100kWh? How do you know?
Extension idea
Compare the following pseudocode to the pseudocode shown above.
Repeat ?
[
If door opens and shuts, then
increase energy by 4
increase energyForHouse by 4
move record 1 cycle
if energyForHouse = 24 then
build a house
energyForHouse = 0
end if
end if
]
Pause and Reflect
Pause and reflect
How are they the same? Different? Which makes the most sense to you and why?
Continue to follow this conditional code in the same way until the energy cumulative value equals 96 kWh of electricity.
How many houses were built?
Record your thinking using a method of your choice.
Consolidation

Test it out!
When completing the Energy Value Table and exploring pseudocode, did you…?
Pause and Reflect
Pause and reflect
Using a method of your choice, record your ideas.
- What are some of the similarities and differences between the water systems explored in this learning activity?
- How do water systems impact local and global communities? Consider the potential positive and negative impacts as you formulate your response.
- Which water system do you think is most efficient in its ability to meet community needs? Explain your thinking.
- How did this coding task demonstrate automation in water systems?
- What are some other ways that coding programs might be used in automated water systems?
Reflection
As you read the following descriptions, select the one that best describes your current understanding of the learning in this activity. Press the corresponding button once you have made your choice.
I feel…
Now, expand on your ideas by recording your thoughts using a voice recorder, speech-to-text, or writing tool.
When you review your notes on this learning activity later, reflect on whether you would select a different description based on your further review of the material in this learning activity.
Learning goals
We are learning to…
- write code and model concepts, with a focus on automating large systems in action
- identify various types of systems
- assess the impact of scientific discoveries and technological innovations on local and global water systems
Success criteria
I am able to…
- identify and describe the impact of various water systems on local and global communities
- explore and develop a coding activity that simulates a water system, including conditionals and repeats