Our third and fourth graders have started their unit on coding with an introduction to “Computational Thinking” or strategies for problem solving. The strategies include decomposition (i.e., breaking a problem apart), pattern matching (i.e., noticing a phenomenon that repeats), abstraction (i.e., pulling out differences to find a “rule” that works for multiple problems), and algorithm (i.e., a list of steps or directions). We learned that computational thinking strategies are very powerful ways to solve difficult problems that are more open-ended and novel in nature.
For example, we discovered that Google uses computational thinking strategies all the time in their development of apps! In class, students examined the problem of “Pegman”, the icon that shows the “Streetview” on Google Maps. As we watched the “Googlers” describe the problem, we tried to define the problem with our own words and brainstormed ways we can solve the problem using computational thinking. Then we watched to see how the developers used the same strategies to make their app better!
Third graders put their computational thinking skills to practice via an online game called “Thinking Myself”. Students were given problems that seemed impossible to solve at first. However, with the guidance of an avatar named “Kiki”, students were scaffolded through the puzzles with reminders of how to use computational thinking to arrive at a solution. Another important idea we discussed in class and during the game was the need for persistence in coding. We thought about what the world would look like if people simply gave up on their ideas when things did not work out straight away. While many students struggled through the game, all the students later reported to their peers how much fun they had while solving the puzzles! A few very enthusiastic students even tackled the puzzles at home!
Fourth graders also put their computational thinking skills to use with an “unplugged” activity. Given a game with no instructions, students paired up to become game instruction writers and had to abstract the rules of the game by examining how a sample game was played. First, student looked for the similarities and difference between the experiences of the different players. Then, they removed the differences to abstract the “rule” of the game. Finally, they checked to see if their rule worked by testing whether the rule worked for every player in the sample game. During the process, students were frustrated by the openness of the problem and realized that they needed to use their computational thinking strategies to solve the problem. They also learned how important it is to work as a team!
We can’t wait to get started on learning to code on our computers!