Envisioning a Computationally Enhanced Mathematics Curriculum in Hong Kong’s Primary & Secondary Schools
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 in-depth understanding of the numerical relationship of different deposit methods, they can use more complex conditional and iteration blocks to simulate and solve practical problems.
Addition and Subtraction Operations
To solve problems related to numbers in Scratch
To use iterations and conditionals to model different real-life 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
The Desmos Activity used in this Task.
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?
In this activity, students would first need to understand the numerical relationships in the real-life 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.
To understand the difference between [change variable by] [XX]; and [set variable to] [variable + XX];
To understand the iteration and conditionals [repeat until] [XX].
To understand the numerical relationship of the donation and the remain money in the account.
About this sample:
In this work, the student not only solved the problem but also optimized the program by adding a question-and-answer 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 question-and-answer session, but the lack of a question-and-answer 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 question-and-answer 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?
In this activity, students will try to solve a more complex real-world 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.
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
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.
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.
Q1: What did you find challenging in Part 2 (showing Carrie's balance)? How did you resolve the challenges?
I thought showing the deposit of Carrie was challenging. [I discussed with my teammates.]
I found the part where we have to keep track of when it is sat or sun. [Make a variable to keep track of it.]
I don’t know how to put days linking with Ken’s balance. [Try to find different blocks to slove the problem.]
Yes, I can’t add the correct amount of money for it. [I add 2 more variables to solve the problem.]
At first we didn’t understand how to represent Carrie’s balance. [We thought of a equation that can represent it, which is “<Carrie Money> + <Carrie Money> * 2”.]
The part that needed to change her amount and deposit. They are two different things. [At last I did it with some thinking and I tried to think it is easy to do. At last, I did it!]
Her money is 2*the money she saved last time, and it is hard to find the answer. [I asked for help from the teacher.]
We need to use Carrie’s balance and deposit but not only * Carrie’s balance by 2. [Use two variables.]
Ken increases daily but Carrie increases weekly. [No, I can’t resolve.]
It’s hard to combine Ken and Carrie. [Design them separately.]
Don’t know how to make Carrie only save money on weekends.
I need a lot of time fix when it’s week or weekend.
Have problems with adding Carrie’s balance with her deposit. [Discuss with my group mate and help each other out.]
The author would like to appreciate all the anonymous teachers and students who participated in this research.