A New Year's Perspective on Coding
In an earlier piece with Beth Holland, I talked about reframing coding as computational thinking or creative problem-solving. As we enter a new year, there are so many new tools, toys, languages, and approaches to teaching coding that it can be difficult to sort one from another. Here are three important things to keep in mind as you envision and evaluate new ways to introduce your students to coding, computational thinking, and computer science.
1. Hook them with Design.
Start by studying finished apps. M. David Merrill's (2002) First Principles of Instruction Theory states that integrating new knowledge into a student's existing context is an effective way to promote learning. Even kids who have never programmed before have a list of their favorite apps. They have an intuitive understanding of which apps are easier to use, and which are harder. They may also understand that many apps have things in common, such as where to go back to the previous screen, or which icons allow you to share things.
Have kids start drawing and sketching new apps they themselves would want to use to solve problems they face in their own lives. You can use a design thinking process to get kids designing, sharing, talking, and testing their ideas with others in their community. Much of user-centered design is fundamentally collaborative, and starting with Design brings in lots of kids who would not normally be motivated to learn how to code without a relevant context for those skills.
2. Coding = Making
By reframing coding as a form of making, rather than simply learning a new language or creating more future computer science majors, you provide a context that engages a wider range of kids and emphasizes the value of building something that matters. Engaging learners in solving real-world problems promotes learning (Merrill, 2002). The DIY, or Maker mentality, is "if you can dream it, you can build it." In the world of software development, you don't need a fancy printer or a dedicated building to have an ambitious idea, and then code it into reality. All the tools you need are built into your laptop or web browser. Every laptop is a makerspace that fits in a backpack.
At Punahou School, teams of students have created apps that teach tennis strokes, direct students to other students who can tutor them, and teach children with autism to count. Encourage your students to dream big, and then find or make the tools they need to bring their vision to life. Much of coding is developing the ability to find open source libraries and bits of code that, assembled and remixed (and properly attributed,) create apps that can solve a unique problem. GitHub (education.github.com) offers many public repositories of content, much of it freely available to learners, and there are special resources for educators and students. Thunkable (www.thunkable.com) is another web-based tool that allows students to create original iOS and Android apps.
3. Computer Science is Problem Solving
At its root, computer science is simply a process of patient problem solving. Harvard University's CS50 course hosts a "Puzzle Day" at the beginning of the semester where computer science students work together to solve an array of brainteasers and puzzles. They discover that there are sometimes several different approaches to solving a puzzle, and that with a diverse team of people, you are more likely to be successful at solving a variety of problems than if you were working alone. This is an important message to send to students, because it helps them appreciate that software development is fundamentally collaborative, that solving difficult and complex problems efficiently often requires analyzing a range of solutions, and that a diverse team is a stronger team. Consider framing coding in this context by hosting a Puzzle Day of your own.
Let us begin the new year with these things in mind. Our aspirations are made greater when we collaborate in ways that are inclusive and that celebrate differences in backgrounds, approaches, and strategies. Computer science, coding, and making are about far more than learning a particular language. They are about understanding fundamental concepts and applying them to new situations in ways that address disparities, balance injustices, confront challenges, create beauty, and move the heart.
Merrill, M.D. (2002). First principles of instruction. Educational Technology, Research and Development, 50(3), pp43-59.