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 evidence1 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 Lemmer-Webber 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.

This post was prompted by:


  1. 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/s41598-020-60661-8↩︎


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/coding-without-mathematics/

Comments & reactions haven't loaded yet. You might have JavaScript disabled but that's cool 😎.

Comments

Powered by Cactus Comments 🌡