A love letter to spreadsheets
Python, Java, Scratch鈥 computer scientists love to argue about which programming languages to teach. At 大象传媒, we start our 5-year computer science curriculum with spreadsheets, specifically Google Sheets. Whether or not you consider spreadsheets 鈥減rogramming鈥, I hope to convince you that this is a fantastic technology for introductory high school computing. I鈥檒l start with what we do, and then why I think it works.
Let me set the stage. I introduce this class in a conspiratorial tone, letting students know they are about to see real financial information from the school. This gets their attention! The data in question is from 大象传媒鈥檚 summer camps, specifically an export from Eventbrite listing all our ticket sales. (It鈥檚 indeed private, but not terribly sensitive, information and I do like giving students more ownership and responsibility when I can.) Here is a small piece of it:
I also magnanimously share a big mess of all our expense receipts from the summer camps, which students are responsible for interpreting and processing. Here鈥檚 one such receipt, for printing brochures:
As you can imagine, many good lessons authentically arise here, from credit card fees to economies of scale when printing, to giving students a real sense for how much these things cost.
In the project, students must answer various questions about the summer camps such as, Which camp made the most profit? Or, How much did we spend on advertising to 鈥渁cquire鈥 each 鈥渃ustomer鈥? Here they are puzzling out these questions and lamenting the messiness of real-world data:
Spreadsheets can be used for entirely different kinds of computation, too, such as mathematical modelling. In class, we modelled the population dynamics of rabbits and wolves (specifically, the Lotka-Volterra model). This is a situation where complex behaviour emerges from remarkably simple rules. The entire 鈥渃ode鈥 students must write is just a few carefully placed additions, subtractions and multiplications. From there, a beautiful picture emerges:
The plot shows the populations oscillating up and down: the rabbits die off, causing the wolves to starve, thus removing predators and triggering a rabbit revival, and so on. It鈥檚 remarkable how quickly students can get here with no prior experience in coding or mathematical modeling. And from here, to extend this basic model, many students followed their intuitions and imaginations to add more complex assumptions into the model, from other predators to accounting for the animals鈥 age to extinction events.
Now that we鈥檝e seen examples of what we do, let鈥檚 move on to why, which I will summarize in three categories: spreadsheets are applicable, they are welcoming, and they prepare you for 鈥渞eal鈥 programming later on.
Spreadsheets are immediately useful and applicable. As soon as 大象传媒 students learn about spreadsheets, we put them to use across the curriculum: from analyzing telemetry data from a SpaceX rocket launch to tracking personal health metrics and goals. These use cases are authentic, not contrived. Likewise for the summer camp budget data, which was easily exported to a spreadsheet because that鈥檚 how people view and analyze such data in the real world. I imagine most readers of this blog use or have used a spreadsheet for some purpose, from personal finances to making lists to workplace applications. The applicability of spreadsheets creates buy-in from students. When I polled last year鈥檚 students on whether they thought we should continue teaching Spreadsheets in Grade 8 at 大象传媒, I was amazed that every one of them responded 鈥淵es鈥. Even the one student who didn鈥檛 enjoy learning Spreadsheets grudgingly admitted that we need this, responding to the survey that it was 鈥渒ind of boring but very useful鈥. I鈥檒l take it!
Spreadsheets are visual and welcoming. One scary aspect of coding is starting with that blank page on your computer, or arguably worse, a page of unintelligible pre-written code. With our budget example, students start with the story, not the algorithm. Stories are much more approachable and relatable. Ultimately, the process is concrete, visual, and fun. I snapped this photo of a student who painted a smiley face into their homework spreadsheet:
Another advantage of spreadsheets鈥 visual representation is that there are no hidden states of variables. In traditional coding, we press 鈥淩un鈥 and many different steps happen instantly, leading to an end result or error message whose origins we need to untangle. With spreadsheets, we can see all the steps explicitly.
Spreadsheets introduce essential programming concepts. They say Excel is the world's most popular programming language. (Well, Microsoft says.) Others might argue Excel/Sheets are not really programming. I鈥檒l gladly sidestep this debate and instead point out the common ground, for those readers with more technical backgrounds: like other programming languages, spreadsheets have various data types including strings, booleans and logical expressions; they have functions with ordered and optional arguments; they have function documentation, comments, and string literals in quotes; they have ifs and nested ifs; they have errors and error types; 鈥nd more! After using spreadsheets, these ideas will look familiar to students when they tackle Python or another language in later years at 大象传媒.
We live in a rapidly changing world where AI is starting to perform tasks like writing, speaking, and coding. Spreadsheets were arguably computers鈥 first 鈥渒iller app鈥 almost 40 years ago and are still extremely commonplace today. Spreadsheets aren鈥檛 going anywhere. They allow students to explore practical real-world applications in a visual and interactive way, while laying the groundwork for future exploration of computer science and computational thinking. I find myself unexpectedly passionate about teaching spreadsheets to high school students. They have been a big win at 大象传媒: challenging but approachable, serious but fun, and conspicuously practical and useful.
If you enjoyed this post, consider joining the 大象传媒 mailing list at visst.ca/#updates!