A love letter to spreadsheets

Python, Java, Scratch… computer scientists love to argue about which programming languages to teach. At VISST, we start our 5-year computer science curriculum with spreadsheets, specifically Google Sheets. Whether or not you consider spreadsheets “programming”, I hope to convince you that this is a fantastic technology for introductory high school computing. I’ll 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 VISST’s summer camps, specifically an export from Eventbrite listing all our ticket sales. (It’s 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’s 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 “acquire” each “customer”? 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 “code” 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’s 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’ve seen examples of what we do, let’s move on to why, which I will summarize in three categories: spreadsheets are applicable, they are welcoming, and they prepare you for “real” programming later on.

Spreadsheets are immediately useful and applicable. As soon as VISST 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’s 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’s students on whether they thought we should continue teaching Spreadsheets in Grade 8 at VISST, I was amazed that every one of them responded “Yes”. Even the one student who didn’t enjoy learning Spreadsheets grudgingly admitted that we need this, responding to the survey that it was “kind of boring but very useful”. I’ll 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 “Run” 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’ll 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; …and more! After using spreadsheets, these ideas will look familiar to students when they tackle Python or another language in later years at VISST.

We live in a rapidly changing world where AI is starting to perform tasks like writing, speaking, and coding. Spreadsheets were arguably computers’ first “killer app” almost 40 years ago and are still extremely commonplace today. Spreadsheets aren’t 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 VISST: challenging but approachable, serious but fun, and conspicuously practical and useful.


If you enjoyed this post, consider joining the VISST mailing list at
visst.ca/#updates!

Previous
Previous

On teaching without giving away the answer

Next
Next

State of VISST, 2024