## Spreadsheets as an intuitive approach to variables: I don’t buy it

A piece in The Guardian (linked by Deepak Kumar on Facebook) described how Visicalc became so popular, and suggests that spreadsheets make variables “intuitive.” I don’t buy it. Yes, I believe that spreadsheets help students to understand that a value can change (which is what the quote below describes). I am not sure that spreadsheets help students to understand the implications of that change. In SBF (Structure, Behavior, Function) terms, spreadsheets make the structural aspect of variables visible — variables vary. They don’t make evident the behavior (how variables connect/influence to one another), and they don’t help students to understand function of the variable or the overall spreadsheet. If we think about the misconceptions that students have about variables, the varying characteristic is not the most challenging one.

The Bootstrap folks have some evidence that their approach to teaching variables in Racket helps students understand variables better in algebra. It would be interesting to explore the use of spreadsheets in a similar curriculum — could spreadsheets help with algebra, too? I don’t expect that we’d get the same results, in part because spreadsheet variables don’t look like algebra variables. Surface-level features matter a lot for novices.

Years ago, I began to wonder if the popularity of spreadsheets might be due to the fact that humans are genetically programmed to understand them. At the time, I was teaching mathematics to complete beginners, and finding that while they were fine with arithmetic, algebra completely eluded them. The moment one said “let x be the number of apples”, their eyes would glaze and one knew they were lost. But the same people had no problem entering a number into a spreadsheet cell labelled “Number of apples”, happily changing it at will and observing the ensuing results. In other words, they intuitively understood the concept of a variable.

Entry filed under: Uncategorized. Tags: , , .

• 1. shriramkrishnamurthi  |  April 15, 2016 at 8:06 am

Spreadsheets are an instance of a reactive programming language, where the language automatically reacts to changes in state. That is, you can have state like in a traditional imperative language, but changes propagate transparently so that the program is more like an mathematical formula, like in a functional language.

I’ve built two reactive languages (FrTime and Flapjax), and besides research on/with them also used them some in classes. For advanced programming they are fantastic. For beginners, as long as they don’t think about it everything is quite nice, but the moment they stop to think the complication of the underlying machinery can be overwhelming, because there is no longer a simple “notional machine”.

FrTime and Flapjax implement what we called “transparent reactivity”, meaning every program in the underlying language (especially if it’s a functional program) is automatically one in the extended language —FrTime extends Racket, Flapjax extends JavaScript— and has the same meaning as before. You can then add reactivity “as you go”. For this reason, many teachers have asked me about using, especially, FrTime in place of Racket for teaching. I have generally recommended against it, and while a few have had great success, they are again in advanced programming contexts (e.g., students build a physics simulation quickly and easily, and their programs look almost exactly like the equations they are implementing).

Spreadsheets of course manage to hide a lot of this complexity. They achieve this by offering an almost absurdly simple computational model (at least until you poke around the corners: e.g., what happens if you have cyclic dependencies; how do you write `map`; etc.). But that simplicity in turn depends on having a very impoverished language where it’s hard to do very much. We couldn’t, for instance, build a useful Bootstrap curriculum in Excel. I’ve tried a bit of VB hacking to see if I pull it off, and I just wasn’t up to it (but that may have also been my distaste for VB).

That said, I think there are very many attractive aspects to spreadsheets. When I created a “data science” course at Brown in 2005, I maintained as a design principle that the first month of it would be run entirely in spreadsheets, and we still do that, to great success. Computer science certainly undervalues spreadsheets, both in our teaching and in our research. I just don’t think they’re useful for teaching about algebraic _or_ imperative variables, because what they have is a bit of neither.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

## Follow Blog via Email

Join 10,184 other followers