Envisioning a Computationally Enhanced Mathematics Curriculum in Hong Kong’s Primary & Secondary Schools
Deposit Problem
Lesson Overview
â€‹This project contains two practical problems related to savings. The first question is an introduction activity, which allows students to learn the setting of variables and simple conditional iteration blocks by understanding the relationship between deposit and donation in a simple mathematical situation. The second question is the main activity, which is a more complicated deposit problem. Students need to understand the meaning of multiple different variables (e.g., deposit, balance) involved in the situation, and after having indepth understanding of the numerical relationship of different deposit methods, they can use more complex conditional and iteration blocks to simulate and solve practical problems.
Prior Knowledge

Addition and Subtraction Operations

Inequality
Learning Objectives

To solve problems related to numbers in Scratch

To use iterations and conditionals to model different reallife situations

To work with two or more variables at the same time
Mathematics & CT Outcomesâ€‹

Mathematics: Arithmetic sequence, numerical relationship, mod

CT Skills: variable, iteration, conditionals, sequences, operator
Teaching Resources
The Desmos Activity used in this Task.
Lesson Details
The Problem of Ken and Carrie (1)
Ken and Carrie subscribed to a donation plan to support elderly people. Ken chooses the basic plan to donate cost $5 per month; he has $80 in his account initially. Carrie chooses another plan to donate $8 per month; she has $100 in her account initially. One day, Ken’s amount was greater than Carrie’s. How many months has it been since they both subscribed?
Learning Objective
In this activity, students would first need to understand the numerical relationships in the reallife situation (how Ken and Carrie’s amount change) and then program to understand the meaning of variables, learn how to set up different variables (e.g., Ken’s amount, Carrie’s amount, month) and manage the relationship between multiple variables. At the same time, an understanding of recurring events (i.e., Ken and Carrie donate equal amounts of money each month) will help students develop the concept of using the ‘iteration’ to make the problem easier.
CT Skills:

To understand the difference between [change variable by] [XX]; and [set variable to] [variable + XX];

To understand the iteration and conditionals [repeat until] [XX].
â€‹
Mathematics:

To understand the numerical relationship of the donation and the remain money in the account.
Students' Work
About this sample:
In this work, the student not only solved the problem but also optimized the program by adding a questionandanswer session. In addition, conditionals block (If...then...else...) and iteration block (repeat until...) were used correctly, and unlike “set [variable] = [variable] – XX”, there is a different way of calculating the change in Ken’s and Carrie’s amount through “change [variable] by XX”.
A101 From: https://scratch.mit.edu/projects/490348423
Possible Challenges and Misconceptions
The most frequent difficulty students had was to use iteration block correctly and to understand the relationship between iteration and conditionals block. Some students would choose to use the [repeat XX] block instead of [repeat until] and then use conditionals block [if...then...] to make a judgement, but they were not able to put the [if...then...] in the correct place resulting in an error in the program.
Sample 1: Misunderstanding of iteration blocks
In this work, the student did not set up the iteration block but simply made one change to all the variables and therefore could not run the conditionals block (if...then...) correctly either.
D124 From: https://scratch.mit.edu/projects/490349548
Sample 2 & 3: Misunderstanding of the relationship between iteration and conditional blocks
B108 From: https://scratch.mit.edu/projects/490348541
This work attempts to verify that the reader’s answer whether it is correct through a questionandanswer session, but the lack of a questionandanswer block makes the [answer] an invalid variable. In addition, the conditionals block in this work is only used to verify that the answer is correct or not, leaving the iteration block useless.
E125 From: https://scratch.mit.edu/projects/490349599
The purpose of this work, similar to the previous one, is that it can be used to verify that the reader’s answer is correct or not. Although the questionandanswer block, iteration block and conditionals block are all valid here, students still have a misunderstanding of the relationship between the iteration and conditional blocks. At this point, if the answer entered is 8 (the correct answer is 7), this answer will satisfy all blocks and will eventually be judged as the correct answer. Therefore, the use of combined blocks of [repeat XX] and [if...then...] is difficult for students. Teachers can guide students to compare this combined block with the [repeat until] block to better understand the role of each.
The Problem of Ken and Carrie (2)
Ken and Carrie are saving money for future donations to supporting elderly. For Ken, he saves $3 today (Saturday) and $222 everyday thereafter. For Carrie, she saves $3 today; then on each subsequent weekend (Saturday & Sunday), she deposits double the amount she last deposited. After how many days will Carrie’s amount greater than Ken’s?
Learning Objective
In this activity, students will try to solve a more complex realworld problem using Scratch. They first need to understand the variables involved (e.g., what is balance and what is the deposit?). Next, students need to understand the numerical relationship between balance and deposit in different ways of saving money to create a program to solve the complex calculations. In particular, Ken and Carrie’s different ways of saving money will provide students with opportunities to explore mathematics and programming.
CT Skills:

To clarify the number of variables needed to set and their relationship, e.g., deposit and balance.

To understand the difference between [change variable by] [XX]; and [set variable to] [variable + XX]

To understand the iteration and conditionals [if…then…] to determine Ken and Carrie’s balance changes with different setting: everyday vs. only weekend
â€‹
Mathematics:

To understand the numerical relationship of the deposit and balance, especially Carrie’s balance. E.g., because “Carrie’s deposit = Carrie’s deposit * 2”, therefore Carrie’s balance can be set to “Carrie’s balance = Carrie’s balance + Carrie’s deposit”.

To understand how to convert days into days of the week so that Ken and Carrie’s balance changes can happen at the same time.
Student's Work
About this sample:
In these two works, different ways of setting the change in Carrie’s balance are used. The first is a calculation based on a textual understanding: [set Carrie’s amount to Carrie’s amount + (Carrie’s deposit *2)], while in the second, specifically, the student abstracted the calculation by observing the pattern of deposits: [change C$ by 3*times].
â€‹
These two works also deal well with how to convert days into days of the week. Although they set up different conditions, they were able to configure them reasonably well in the rest of the code, so that the overall code works well.
Possible Challenges and Misconceptions
Sample 1: Create multiple variables / select the wrong variable, cannot understand the numerical relationship between Carrie’s deposit and balance
In this work, students did not understand Carrie’s rules for saving money and were missing a variable about the amount of money Carrie saved each time, so they could not accurately represent Carrie’s total amount.
B112 From: https://scratch.mit.edu/projects/490351781
Sample 2 & 3: Difficult to present the two changes with different setting: everyday vs. only weekend
In this work, the student also misunderstood Carrie’s rules for saving money and therefore set Carrie’s balance change incorrectly [change Carrie’s money by Carrie’s money * 2]. In addition, the student used the block of [mod] to determine when Carrie deposited her money, but as there was only one condition [if day mod 7 = 0 then…], a specific day cannot be accurately calculated.
A106 From: https://scratch.mit.edu/projects/490359478
E125 From: https://scratch.mit.edu/projects/490357468
In this work, the student misunderstood the numerical relationship between Carrie’s balance and the amount of each deposit [change Carrie’s money by [Carrie’s money * 2] + Carrie’s money]. There are also problems with the use of iteration and conditional blocks. Since Ken and Carrie’s money changes manually [when d/w key pressed], not automatically, it’s easy to make a mistake by setting this conditional block because their saving times are out of sync.
Students' Reflections
Acknowledgement
The author would like to appreciate all the anonymous teachers and students who participated in this research.