The more experience I have in teaching CS the more I become convinced that one of the most difficult ideas to grasp for (beginner) students is that of changing the inputs (if not the most difficult of all).
This is so trivial and basic for us that I think we struggle to understand what's so difficult in it, at least I do.
This point is what I call the algebraic aspect of computation, because, at a beginner level, it has something to do with the meaning of the dreaded x
in mathematics that so many students seem to fail to understand, which is to say, the idea of variables.
In today's frustration I bring you the case of my students who, having nonetheless spent weeks copying and writing formulas in a spreadsheet, still persist in writing formulas without variables, even in cases where it's "just so obvious" that we want a result of a computation with some data: they just read the data and write a constant in the formula. I can't understand the reasoning behind this: what, in their opinion, is the usefulness of writing such a formula?
It became quite apparent observing them when doing it correctly that their only drive to use variables (cell references) is "the teacher wants it so": of course this means that they have no will whatsoever of doing it when I'm not watching.
There's even another, so to say interesting, fact: when they need a small computation for themselves, they prefer going to their backpack, take out a calculator and doing it with maybe many calculation steps and often incur some errors and doing it again maybe from the beginning because they lost the intermediate results instead of using 2 or 3 cells of the spreadsheet that they have ready in front of them. Fully oblivious of the usefulness of the tool that we have studied for months.
I know that this student behaviour is not new and I'm sure a lot of teachers have dealt with it.
The main way I (desperately) try to make them aware of all this is by saying and demonstrating with lots of examples that:
- We want it to work when we change data.
- We want to be able to use the same formula for many other cases (copy and make a long table).
But this seems highly ineffective: no connection with their inner drive, even when we beforehand state the computation that we're going to realize and see that it naturally wants to be repeated in different cases.
It struck me recently that, in asking them a question of the kind "what's the result of such and such step of our computation" (we did a thing made of 3 steps: $f(g(h(x)))$) they wrote "7".
Again, fully oblivious of the fact that "the step" can and will be done with differing inputs (of course we had done it and saw it on the screen and remarked it many times).
I'd like to ask if you can share your experience or intuitions about this issue, and if you have any suggestions. Especially since it's so foundational that nothing can be done in computing without this awareness, besides of course they merely copying what I do or guessing what I want from them without having any clue about the meaning.
Keep in mind that the goal for the students in these classes is to learn to use a spreadsheet and, in the minds of those who have no idea who the students are, make some data analysis. Keep in mind, moreover, that these students are not going to be scientists of any kind, the opposite: they are those that struggle a lot in understanding sentences in our own native language and make plenty of grammatical errors. We talk about 14-15 years old who have no passion for studying and are there only because school is mandatory, struggling with mathematics and logic.