On learning to code without mathematics
 Rephrased to remove (unintended) implication that maths is taught badly (thanks @TeaKayB@mathstodon.xyz for pointing this out and further discussion)
Why is it that so many beginner programming tutorials assume that the learner is both a) comfortable with maths; and b) motivated to learn by seeing simple arithmetic? Go look at your favourite tutorial (I’ll wait) and I’ll give you good odds it starts with some variation of “look, you can use this as a calculator!”
Seriously, there must be so many people who would be great programmers but who never get past the thought:
“Why would I want to install and configure this whole programming environment just to see that 5Γ7 is 35?”
A lot of people are instantly put off when they see mathematics. That’s not a personal failure, it’s a natural consequence of the (inaccurate) way maths is seen in our culture, as a binary thing where everything is questions that have only one “right” answer and a lot of wrong ones, though it’s actually a beautiful, creative and constantly evolving language. There’s a weird little duality, often instilled in us before we even reach school, whereby on the one hand not being able to “do maths” is seen as a shameful thing while on the other it’s far more acceptable to make a general statement like “oh, I don’t really do maths” than to say “oh, I don’t really do reading”.
That perceived double bind must put off loads of people who would otherwise be very creative solvers of problems involving some maths, and when we make it look like being “good at maths” is a prerequisite of being able to program a computer we put those same people off that too. In any case I believe this is all based on a false premise: maths is much more accessible than many have been led to believe, and learning to code by manipulating text or images has a lot of potential for demystifying mathematical concepts through familiarity.
Aside: there is some evidence^{1} that natural language skill is a better predictor of programming aptitude than mathematical skill, though I don’t know whether that study has been replicated.
Anyway, that’s why I really like the tutorial for the Racket programming language: it focuses 100% on drawing pictures and introduces programming concepts as ways of composing simple shapes (like squares and circles) into more complex images.
Building on this idea, Christine LemmerWebber has a tutorial for Digital Humanities folk called “Building a snowman with Racket” which takes the learner through making a little picture of a snowman using Racket’s slideshow module.
I don’t know about you, but I think that’s pretty cool and I’d like to see more tutorials taking a similar approach.
Further Reading
This post was prompted by:
 “Lisp but beautiful; Lisp for everyone”, Christine & Morgan LemmerWebber’s 2022 FOSDEM presentation about the Racket dialect of Lisp
 Episode 49 of their podcast FOSS & Crafts (the audio from the above talk), which I listened to while driving down the A1 the other day

Prat, C.S. et al. (2020) βRelating natural language aptitude to individual differences in learning programming languages,β Scientific reports, 10(1), p. 3817. Available at: https://doi.org/10.1038/s41598020606618. ↩︎
Webmentions
You can respond to this post, "On learning to code without mathematics", by:
liking, boosting or replying to a tweet or toot that mentions it; or
sending a webmention from your own site to https://erambler.co.uk/blog/codingwithoutmathematics/
Comments
Powered by Cactus Comments π΅