Computational Thinking in the Middle Year Science Classroom
Computational thinking is a subject that has been growing in popularity since about 2005, but don’t take my word for it. Ask a computer. Now take a moment to consider what has happened there. Somebody has designed a system which, using an algorithm, will take a word or phrase and search for and count the occurrence of that word within Google’s entire corpus of digitized texts. This leveraging of computational power has allowed us to inquire in a way that would take a prohibitively long time were we unable to offset the raw computation to electronic machines. It is the ability to frame and process problems in ways that can be assisted by this programmable power that we refer to as ‘computational thinking’.
You might be tempted to think that this relatively new thinking skill concerns only our technology teachers (if we have them at all). However, as Steven Wolfram noted in his 2016 article “How to Teach Computational Thinking”, there is hardly an academic subject left that doesn’t have an emerging field containing the word “Computational”.
Computational Science at Fairgreen
I have recently transitioned from the role of learning technology coach for a large school in Hong Kong to head of department for science at Fairgreen International School, a new and growing IB school in Dubai. Developing a new curriculum at a new school is always going to be a lot of work, but I’m looking at it as a fantastic opportunity to see just how effectively we can embed opportunities for computational thinking into a new science curriculum. So far this has involved developing activities that teach science with block based or typed programming and investing in classroom sets of microcontrollers and sensors. Therefore, these combined allow students to use electronics and programming to build machines that collect and process real world data. In MYP5, students are introduced to data science techniques using large datasets and the Python programming language. It is this final MYP unit that I would like to focus on.
Our MYP5 curriculum is split into three large units. The first unit is called ‘Computational Science’ and the statement of inquiry for this unit is ‘Computing systems allow for complex patterns and functions to be identified for scientific and technical innovations’. We start this unit by learning to answer questions through data interrogation of medium sized datasets. The dataset I chose for this unit held a lot of information on the elements of the periodic table; you can find it on GitHub here. For many students that are used to dealing with a processed data table of as few as two columns, it can be a real change of perspective to consider how problems can be tackled using dozens of available columns of data. For this reason we began in the familiar territory of Google Sheets, allowing students to explore the types of data transformations they could use to answer various questions about trends in the periodic table. After a few examples were followed, students were tasked with coming up with their own research question and transforming the dataset to find insight. Whilst doing this, the students were asked to record their process with screenshots that would eventually become part of a short presentation on their methodology and findings. You can see copies of two examples of the presentations here and here.
Once the students were comfortable with this approach, we started exploring how the python programming language could be used to import the Google Sheet data into our program so that we could transform the data into graphs using the Pandas, MatPlotLib and Seaborn libraries. This is not an easy topic, and only one or two of the students had enough programming experience to explore the data unguided. Luckily, there are a lot of great resources available online such as these courses by Kaggle. Even better, there is now a Google app called Colaboratory (Or ‘Colab’ for short) which makes data processing with Python a cinch. I’ve written in detail how Colab can be used with Google Sheets and Google Classroom on my website Maker Learners linked here. Eventually all of my projects will be stored here, and I encourage you to add your own projects here also.
Next Steps
At the time of writing, my students have just started to explore creating their own massive datasets with a combination of vernier probes and a fantastic mobile phone app called PhyPhox which allows students to use the existing sensors on their phone for data collection. A similar app that you might prefer to use is Google Science Journal, which was recently purchased by Arduino. The bulk of our microcontrollers are Arduino Uno boards, so I’m excited to see how well we’ll eventually be able to connect our electronics units to our data science units.
Our next steps will be to use these datasets to return to Google Colab to further explore Python’s utility for identifying patterns and functions within large and complex datasets. I also hope to find one or two ways in which our students can use these new skills and techniques to support some element of sustainability within our community. Fairgreen International School exists inside of Dubai’s ‘Sustainable City’, so sustainability is a central part of the ethos of both our school and our surrounding community. If you’re reading this and have any ideas, I’d love to hear from you!