⭐ Texas educators: our K-5 Tech Apps curriculum is a state-approved instructional material. Learn More.
When you learn a new skill, it’s likely that you aren’t an expert right off the bat. You may google about a topic to learn more about it or break up the skill into smaller pieces before you are able to put all of the pieces together. You’ll probably become better and better at the skill the more you practice it. As a teacher, you may often present new learning in this way for your students – and this is similar to the use-modify-create framework!
The use-modify-create framework is used to gradually introduce students to new concepts through three stages of learning: use, modify, and create. This framework involves a scaffolded approach that is frequently used when students learn how to code.
To understand how the framework works, let’s look at this analogy: You want to learn woodworking. You don’t just pick up a saw and build a bench one day, right? It will probably take you some time to learn how to build a bench. But where do you start? You start with the “use” stage of the framework.
In the “use” stage of your woodworking journey, you may look at someone else’s plans or designs to help you get started. Perhaps you follow a set of instructions or follow along with a YouTube video to guide you through building that bench. Along the way, you learn the basics of woodworking and you start to get the hang of the process.
In the “modify” stage of your learning, you may realize that you can tweak the instructions to make the bench more your own. While you may still follow some of the precreated instructions, you know the process well enough to make modifications.
Eventually, you are ready for the “create” stage of woodworking. You’ve learned the process well enough that you can create a bench without any scaffolds or plans. You are a master woodworker now!
Now that you understand the general idea of the use-modify-create framework, let’s explore how this applies to computer science education.
Students explore a pre-written program. Students will:
Students modify a prewritten program. Students will:
Students create a similar program. Students will:
The use-modify-create framework is an evolution of learning that provides students with gradual scaffolds for support. A study from North Carolina State University showed that the “Use-modify-create sequencing provides students a natural progression to learn computational thinking within a science course, while giving students more ownership over the artifacts they create. We also found that teachers using our Use-Modify-Create curriculum felt it was easy to teach, and that it promoted student engagement and exploration, while teachers using a code-intensive control curriculum desired more scaffolding and features to improve student engagement.” If you want to give the use-modify-create framework a try, download a free Python lesson that explicitly teaches and applies the framework.
In addition to providing students with scaffolding support as they learn coding concepts, the framework also ignites computational thinking skills. In the next section, read about how the use-modify-create framework relates to computational thinking.
The use-modify-create framework can be described as taking a skill and breaking it down into smaller parts. Computational thinking is similar! In fact, the use-modify-create framework was developed by the ITEST Working Group on Computational Thinking. According to this computational thinking pdf by the ITEST Working Group, “The use-modify-create progression is offered as a framework for educators and researchers that are looking at how critical thinking develops, and how that development can be supported.”
Computational thinking skills involve taking apart a problem and figuring out how to solve it using what you already know. It includes four parts:
The use-modify-create framework fosters the development of critical thinking skills because of the progression. To understand this progression, let’s consider the life simulation computer game The Sims. In the “use” stage of the framework, students experiment with a pre-created model. For example, students finagle with ready-made characters in a ready-made house. Students use computational thinking decomposition, and pattern recognition to familiarize themselves with the game until they move into the “modify” stage of the framework. Here, they may alter the characters’ appearance or behavior, rework the existing house, and attempt more sophisticated challenges in the game. They may even alter the code of the game to yield a desired outcome, using the infamous cheat codes “rosebud” and “motherlode” to get free, endless money. Through these modifications, students begin to create something of their own. Eventually, using abstraction and algorithm design, they are ready to “create” their own computer game projects using their unique ideas.
Computational thinking skills are an important part of computer science, but the skills that come with it go beyond technology. Computational thinking is a mindset for solving difficult problems in any area of life! It is inevitable that students will face complex problems in and out of the classroom, but with a foundation in computational thinking, students will be able to conquer these challenges without becoming overwhelmed. Learning these skills through computer science will transfer to any problems students face.
Codelicious provides full-year K-12 computer science curriculum. The use-modify-create framework is taught and practiced throughout our K-12 Pathway. We include a variety of coding activities and challenges within the lessons that utilize the framework. Explicitly teaching the framework is important to our curriculum because developers in the real world usually reside in the “modify” step of this process. Traditional computer science curriculum tends to focus on creating projects from scratch, which doesn’t always prepare students for the real world. The “modify” parts of our curriculum are not only essential to the framework, but also give students practice for development jobs. Each step of the framework is critical for metacognition and problem solving.
So, what is computational thinking in computer science? Below, you’ll find instances of the use-modify-create framework in action and computational thinking examples from a variety of grade levels. To view the courses in which these lessons came from, visit our courses page.
In a third grade lesson, students evaluate, modify, and add to code that uses movement, loops, and dialogue. Students use their knowledge of loops as well as debugging techniques to complete a project. The lesson uses Scratch, a block-based programming language and is from our 3rd grade Computer Science Fundamentals course.
In a sixth grade lesson, students review events and broadcasting as used in Scratch. Then, students explore and manipulate starter code to complete a sentence generator animation using a variety of events and broadcasting blocks. Finally, they complete a unique sentence generator independently. This lesson comes from our coding curriculum for middle school and is in the 6th grade course Computer Science Applications.
In a high school lesson, students are exposed to user input by exploring a prewritten program that requires students to enter information. They compare the syntax of string, integer, and float input and test various input values to evaluate whether a program functions as intended. Students strategically combine input data to enhance program logic and avoid common errors. Then, students independently develop a story program that applies user input and typecasting. This lesson comes from our Python course which includes many Python coding projects for high school students.
If these lessons interest you or if you are looking for more use-modify-create framework ideas, schedule a 30-minute call with one of our curriculum experts.
In the lesson It’s All in the Details, students are introduced to the use-modify-create framework in order to learn the Python programming language. They are introduced to the process and apply it, fostering their metacognition and problem solving skills as they work through the lesson.
Use: Students spend time predicting, running, and investigating code to enhance their understanding of output and print() functions. Students then explore the effects of bugs in a Python program and discuss common Python errors to avoid.
Modify: Students debug a prewritten program through the modification process.
Create: After being exposed to basic debugging, students independently develop two programs to demonstrate their understanding of bugs in Python.
This lesson is built for grades 9-12 and includes links to the appropriate materials and resources, a detailed procedure, activity tips, and a bonus challenge activity. The lesson is a great way to utilize the use-modify-create framework when teaching programming for secondary schools!