The Ontario Curriculum, Grades 1–8: Mathematics, 2020

Grade 1 Coding Specific Expectations

*New Skill = Sequential Events


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves sequential events

  • In coding, a sequential set of instructions is executed in order.

C3.2 read and alter existing code, including code that involves sequential events, and describe how changes to the code affect the outcomes

  • Changing the sequence of instructions in code may produce the same outcome as the original sequence, but it may also produce a different outcome. It is important for students to understand when the order matters.


Grade 2 Coding Specific Expectations

*New Skill = Concurrent Events


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves sequential and concurrent events

  • In coding, a sequential set of instructions is executed based on the order of instructions given (e.g., a pixelated image stops its motion and then changes colours).

  • Concurrent events are when multiple things are occurring at the same time (e.g., a pixelated image is changing its colours while moving).

  • Sometimes concurrent programs need to use time delays or wait blocks. For example, to ensure that two pixelated images do not collide on the screen, or, similarly that robots do not collide in real life, one may need to pause while the other passes.

  • Some sequential events can be executed concurrently if they are independent of each other (e.g., two pixelated images are moving across the screen at the same time).

C3.2 read and alter existing code, including code that involves sequential and concurrent events, and describe how changes to the code affect the outcomes

  • Code can be altered to develop students’ understanding of mathematical concepts, and to ensure that the code is generating the expected outcome.

  • Changing the sequence of instructions in code can sometimes produce the same outcome and can sometimes produce a different outcome.

  • Predicting the outcome of code allows students to visualize the movement of an object in space or imagine the output of specific lines of code. This is a valuable skill when debugging and problem solving.

  • When predicting the outcomes of programs involving time delays or wait blocks, it is important to confirm that the action is actually possible; for example, one agent pauses to allow another agent to pass when both are trying to occupy the same location at the same time.


Grade 3 Coding Specific Expectations

*New Skill = Repeating Events


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves sequential, concurrent, and repeating events

  • Loops make code more readable and reduce the number of instructions that need to be written. Loops can also help to emphasize the repetitive properties of some mathematical tasks and concepts.

  • Using loops helps students organize their code and provides a foundation for considering efficiencies in program solutions.

C3.2 read and alter existing code, including code that involves sequential, concurrent, and repeating events, and describe how changes to the code affect the outcomes

  • Code can be altered to develop students’ understanding of mathematical concepts, and to ensure that the code is generating the expected outcome.

  • Altering code to use loops can simplify instructions while generating the same outcome.

  • The placement of a loop in the code can affect the outcome.

  • Changing the sequence of instructions in code can sometimes produce the same outcome and can sometimes produce a different outcome.

Grade 4 Coding Specific Expectations

*New Skill = Nested Events


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves sequential, concurrent, repeating, and nested events

  • A loop is used to control a structure that allows for a sequence of instructions to be repeated.

  • Loops make the code more readable and reduce the number of instructions that need to be written.

  • Loops can be used to repeat steps or tasks that occur more than once in an algorithm or solution.

  • Loops can exist within loops, referred to as “nested loops”.

C3.2 read and alter existing code, including code that involves sequential, concurrent, repeating, and nested events, and describe how changes to the code affect the outcomes

  • Code can be simplified by using loops or by combining steps and operations.

  • Reading code is done to make a prediction about what the expected outcome will be. Based on that prediction, one can determine if the code needs to be altered prior to its execution.

  • Code must sometimes be altered so that the expected outcome can be achieved.

  • Code can be altered to be used for a new situation.

Grade 5 Coding Specific Expectations


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves conditional statements and other control structures

  • Conditional statements are a representation of binary logic (yes or no, true or false, 1 or 0).

  • A conditional statement evaluates a Boolean condition, something that can be either true or false.

  • Conditional statements are usually implemented as “if…then” statements or “if…then…else” statements. If a conditional statement is true, then there is an interruption in the current flow of the program being executed and a new direction is taken or the program will end.

  • Conditional statements, like loops, can be nested to allow for a range of possible outcomes or to implement decision trees.

C3.2 read and alter existing code, including code that involves conditional statements and other control structures, and describe how changes to the code affect the outcomes

  • Reading code is done to make a prediction about what the expected outcome will be. Based on that prediction, one can determine if the code needs to be altered prior to its execution.

  • Reading code helps with troubleshooting why a program is not able to execute.

  • Code must sometimes be altered so that the expected outcome can be achieved.

  • Code can be altered to be used for a new situation.

Grade 6 Coding Specific Expectations


C3.1 solve problems and create computational representations of mathematical situations by writing and executing efficient code, including code that involves conditional statements and other control structures

  • A flow chart can be used to plan and organize thinking. The symbols used in flow charts have specific meanings, including those that represent a process, a decision, and program input/output.

  • Efficient code may involve using the instructions to solve a problem, using the smallest amount of space to store program data, and/or executing as fast as possible.

  • Using loops whenever possible is one way to make code more efficient.

  • Conditional statements are a representation of binary logic (yes or no, true or false, 1 or 0).

  • A conditional statement evaluates a Boolean condition, something that can either be true or false.

  • Conditional statements are usually implemented as “if…then” statements, or “if…then…else” statements. If a conditional statement is true, then there is an interruption in the current flow of the program being executed and a new direction is taken or the program will end.

  • Conditional statements, like loops, can be nested to allow for a range of possible outcomes or to implement decision trees.

C3.2 read and alter existing code, including code that involves conditional statements and other control structures, and describe how changes to the code affect the outcomes and the efficiency of the code

  • Reading code is done to make predictions as to what the expected outcome will be. Based on that prediction, one can determine if the code needs to be altered prior to its execution.

  • Reading code helps with troubleshooting why a program is not able to execute.

  • Code is altered so that an expected outcome can be achieved.

  • Code can be altered to be used for a new situation.

  • Altering code to make it more efficient often involves refining algorithms so that there are no unnecessary steps and using control structures effectively.

  • Loops can be used to create efficient code.

Grade 7 Coding Specific Expectations

*New Skill = Defined Count and Sub-Programs


C3.1 solve problems and create computational representations of mathematical situations by writing and executing efficient code, including code that involves events influenced by a defined count and/or sub-program and other control structures

  • Sub-programs are used to assemble a complex program by writing portions of the code that can be modularized. This helps to create efficient code.

  • Sub-programs can be used to run specific sequences of code that are only needed or activated in response to specific inputs from the main program.

  • Sub-programs can be reused for multiple programs or can be called upon more than once from one main program. For example, a sub-program to determine the area of a rectangle can be used in a program to optimize area, determine the surface area of a rectangle-based prism, and calculate the volume of a rectangle-based prism.

C3.2 read and alter existing code, including code that involves events influenced by a defined count and/or sub-program and other control structures, and describe how changes to the code affect the outcomes and the efficiency of the code

  • Reading code is done to make predictions as to what the expected outcome will be. Based on that prediction, one can determine if the code needs to be altered prior to its execution.

  • Reading code helps with troubleshooting why a program is not able to execute.

  • Code is altered so that an expected outcome can be achieved.

  • Code can be altered to be used for a new situation.

  • Altering code to make it more efficient often involves refining algorithms so that there are no unnecessary steps and using control structures effectively.

  • Loops can be used to create efficient code.

  • Using sub-programs makes it easier to debug programs, since each sub-program can be tested individually.

Grade 8 Coding Specific Expectations

*New Skill = Data Analysis


C3.1 solve problems and create computational representations of mathematical situations by writing and executing code, including code that involves the analysis of data in order to inform and communicate decisions

  • Data can be stored in lists, or input into a program, in order to find solutions to problems and make decisions.

  • A flow chart can be used to plan and organize thinking. The symbols used in flow charts have specific meanings, including those that represent a process, a decision, and program input/output.

  • Efficient code can include using the fewest number of instructions to solve a problem, using the smallest amount of space to store program data, or executing as fast as possible.

  • Loops can be used to create efficient code.

  • Conditional statements, like loops, can be nested to allow for a range of possible outcomes or to implement decision trees.

  • Sub-programs are used to assemble a complex program by writing portions of the code that can be modularized. This helps to create efficient code.

C3.2 read and alter existing code involving the analysis of data in order to inform and communicate decisions, and describe how changes to the code affect the outcomes and the efficiency of the code

  • Reading code is done to make predictions as to what the expected outcome will be. Based on that prediction, one can determine if the code needs to be altered prior to its execution.

  • Reading code helps with troubleshooting why a program is not able to execute.

  • Code is altered so that an expected outcome can be achieved.

  • Code can be altered to be used for a new situation.

  • Altering code to make it more efficient often involves refining algorithms so that there are no unnecessary steps and using control structures effectively.

  • Using sub-programs makes it easier to debug programs since each sub-program can be tested individually.