Mutable vs. Immutable Data and Strings
Overview
In this lesson, students will begin to develop an understanding of the different between data that is mutable (changeable) and immutable (unchangeable).
Learning Objectives
- 1.1.B.6 Distinguish between mutable and immutable data types.
Skills
- S1.B Explain the impact design has on security.
- S1.C Explain the impact design has on data storage.
- S2.A Write program code and implement algorithms.
Student Outcomes
Students will be able to:
- recognize when data would need to change during the running of a program.
- recognize when data should not change during the running of a program.
- understand waht it means for a
String
to be immutable.
Duration: 0.5 class period
Resources
Warm-up / Motivation
Ask students to think about an app that they use regularly. You can ask them to use the app they used in the Determining a Data Type Lesson. Ask them: what data changes while you are using the app?
Learn
Either as a group or on their own, have students work through the tutorial on mutable and immutable data: Learn - Mutable vs Immutable Data
Some additional examples of mutable data:
- The score of a vidoe game.
- A person's mailing address.
- The ammount of money you have in a bank account.
- A person's current location as they travel to a restaurant.
- The price of a menu item in a restaurant app.
Some additional examples of immutable data:
- A person's social security number
- A physical address. This is different from an address that has been assigned to a person. A person can change their address, but that address will still exist. It will likely become someone else's new address. But the physical location will not change.
- Data related to a meteorite landing. The data it landed, the location, the size, the name of the meteorite. All of this data would not change.
- A bank account number. You can close this account, but the bank account number will stay constant. And it should. You wouldn't want a program to change the account number and you lose access to the account.
Practice
Wrap-up / Extensions
Ask students to revisit their app from earlier. Ask them: Is there data that should not change in the app?
Next Lesson
Lesson Plan: Creating Records