Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Impact of programming on primary mathematics learning (sciencedirect.com)
60 points by chaosprint on Sept 5, 2022 | hide | past | favorite | 85 comments



Well, it only proves Scratch is not good for kids learning math, and the paper has some weak points as pointed out in other posts.

Actually, my first reaction when I heard of Scratch was -- why are these poor kids forced to learn something they will never use in the future of their lives?

The paper got one thing right -- it doesn't make any sense to design visual language deliberately for kids education. It's like saying -- kid, you are so naive so you have to do visual programming, even though it is slow and inefficient. If you are the kid, will you feel good?

If I have to choose a programming language for kids, I will choose LOGO.

Code for visual! Not visual for code!


My 9 year old started programming lua in Roblox. He doesn't really know whats going on, he is just following the tutorials, transcribing what he sees on screen. When he makes a mistake he has a hard time reading through the code to see what went wrong.

A few weeks ago he rediscovered Scratch. It's a completely different experience. He started out following tutorials like he was with Roblox, but quickly made the metal leap to altering and enhancing the tutorials. Adding sound effects, changing values. Restructuring and reconstructing for loops to do what he wants.

Now he is breaking problems down and solving them one at a time. Setting a goal and working out how to achieve it. I think that's a far more valuable skill at this stage.


This is his latest creation. He would love to see that view count go up.

https://scratch.mit.edu/projects/728260409


Hah, this was great!

This is actually my first time looking into the platform. It's interesting to have the ability to peek into the "code". Though I initially felt I agreed with an earlier comment in the chain, "just start with something real", I see my own path with Lego's NZXT visual programming language in Scratch. The visual element seemed to help me build a mental model much better than lines of code, at the start.

I left it up on 18 for others to try and break. Thanks for sharing.


I got into programming by first using PowerPoint for developing animations and then moving into Macromedia Flash (Actionscript).


Why? PowerPoint is Turing complete.

https://www.youtube.com/watch?v=uNjxe8ShM-8

/s


Haha, that was hilarious, thank you!


> why are these poor kids forced to learn something they will never use in the future of their lives?

Exactly. I withhold cycling, they'll use a car later; I withhold bow and arrow or .22, because they can just get a real rifle later; I withhold picture books, because all real books have only text; I withhold flag football, because it's real only with concussion; if my 3yr old cannot hold the axe to split wood, fuck him, certainly I won't get him anything he can handle already; a toy grocery shop? where's the fun when milk can't spill or spoil? Playset 'Doctor'? Real surgical grade anesthesia and scalpel is where it's at. Play with a plush tiger? Not on my watch he's not.


I did LOGO as a kid and scratch, although not much of either. Either way, though, you teach programmatic thinking. Not only that, but an introduction to variables, loops, if else, etc. all in an easy to parse manner (scratch blocks). I think I saw that, by numbers, scratch is now a hugely used language. Given that there's a shortage of programming teaching in schools, I think it's nice.


With scratch, kids can start programming without needing to type fast, or debug errors caused by typos.

That allows them to focus on the logic of their programs.

A 10yo might be fine starting by typing programs in from a manual (what I did) but nowadays people want to introduce programming to 6yo kids.


typing fast has nothing to do with programming

debugging errors has a lot to do with programming

typos are a kind of bug

When I was 10, I started programming in BASIC ... we're talking about simple expressions and statements.


"When I was 10, I started programming in BASIC"

Me, too! On the Acorn Electron.

My son will turn 6 soon. I think he's ready for Scratch (or at least Scratch Jr) but I'm not sure he's ready for BASIC. I guess I could him a printout of some code and see if he can type it in without errors...


I am not sure why programming should even be considered as beneficial for Math learning. Isn't the question the other way around? - Should Math be beneficial for programming? Math is a tool (for everyone except for 0.000001%, who could use it as an occupation) to use somewhere else. While programming technically is also a tool, it's a tool which is also an occupation for millions of people. So we better make sure that teaching of Math benefits programming, not the other way around.


It’s surprising because (anecdotally), math students in college consistently have a much easier time learning computer science than other students. I’m not sure if there have been studies on this, but it was remarkably consistent when I taught first year CS.


Yeah that’s a bit of a chicken vs egg problem though, isn’t it? It’s like how physics students routinely have the highest LSAT. If they were already towards the top of their class upon entry, it’s not surprising to see them doing well in comparison to their peers.

Edit: added last sentence.


As a math major who studied CS: Math I encountered in CS classes was always something I'd encountered earlier and had well in hand so I could focus on the CS specifics. My classmates only studying CS, conversely, often struggled with the math side of things.

I'd imagine that + some sampling bias (math majors almost universally love complex abstractions and algorithms unlike almost any other major) feels like it would explain it?


Mathematical proofs and computer programs are isomorphic, so it's not unreasonable to start from the premise that with the right guidance, many skills would transfer.


> Mathematical proofs and computer programs are isomorphic

I've heard this multiple times and it always misses the point.

Isomorphisms exist whenever we focus on particular structural features of mathematical objects, to the exclusion of irrelevant characteristics. For example, all completions of "the" rational numbers are isomorphic with respect to the structure of ordered fields, be they equivalence classes of Cauchy sequences, Dedekind cuts or something else. But they're clearly not isomorphic as sets.

Similarly, all n-dimensional F-vector spaces, for fixed n and a field F, are isomorphic as vector spaces. That doesn't mean they're all the same - 4-dimensional vectors and 2x2 matrices are very different things, for example.

Mathematical proofs and computer programs are isomorphic from a very specific point of view, namely type theory (which doesn't even apply to dynamically typed languages). That doesn't translate into mathematics necessarily being useful for all other aspects that are important in computer programs, nor into computer programmers having a good understanding of how proofs work.


> Math is a tool (for everyone except for 0.000001%, who could use it as an occupation)

0.000001% of 8 billion is 80 people. Your math is off by a few orders of magnitude : P


Nice catch! :-) I am not sure how many people are actually doing Math for a living. Between Academia, some agencies, selected hedge funds and few other places. Few hundred thousand?


If anything, programming helps someone appreciate math more, which in turn gives additional motivation to learn. For some people, it's not fun to learn math and only be able to apply it on paper. Some of my earliest Visual Basic programs were a quadratic equation solver, a Fahrenheit/Celsius converter, and something that drew a guitar fretboard.

Another benefit is that getting programs to work made me more systematic with my math and pay attention to all the variables/equations required to solve something. I've had colleagues who would derive something and share their formulas, not realizing there are missing things, because they haven't tested it in code.


I found programming to be exceptionally helpful when learning trig. I was able to not just understand a few examples, but really generalize the concepts and relate them.

That was an experience that really stuck with me, and I must say I'm kind of surprised at many of the naysayer opinions in this thread.

To this day I'll fire up a REPL to explore some math ideas. Maybe I'm weird and am just more programming minded than most, or my prior programming helped.


My personal experience is, that when I code something mathematical, it sticks. If I had learned math stuff this way, I would know much more today, than I do.


This studied fourth and fifth graders. However I might add my one irrelevant anecdotal data point from when I was in 10th grade 20 years ago. In an attempt to "cheat" at Chemistry class I wrote a stoichiometry equation balancer with step by step answers on a TI-83. I wrote various solvers for Physics class and Stats class. Working through all the edge cases of these problems helped immensely. Fourth and fifth graders just don't have as many opportunities to apply programming to the real world.


My anecdote: I did my intro aerospace engineering homework on spreadsheets instead of using my HP15C calculator and paper. The spreadsheets helped organize and track errors easily. To no ones surprise except my freshman self, I couldn't replicate the results on tests where I didn't have access to spreadsheet software. Doing things more 'by hand' results in more reinforced learning in my humble opinion. Did not become an aerospace engineer :(


I wrote lots of scripts into my ti-89 titanium.

I made some matrix helper functions, and loops through some of the standard stress/strain/failure criteria and so on, with some fully set up problem solvers etc

For tests, I did the hard part, figuring out what matters and what to check, then delegated the math to my calculator. Saved like an hour on a variety of open-textbook tests

If I was better with my calculator in jr high, I could have done a ton with it there too


Bizarre study that does not shed much light on anything.

Programming is most similar to algebra; anyone studying both at the same time can't help but see the obvious connection.

At least in the USA, algebra is typically taught in 7th, 8th, 9th, or 10th grade, not 4th or 5th. Fourth graders are usually more concerned with more foundational topics as multiplication and division.

The same study in 8th or 9th grade would actually be interesting. Or on advanced fourth graders that are studying Algebra I. Or if you followed up years later to see if once the same children are in 8th grade, they have an easier time with Algebra I.


I am curious what exactly you mean by algebra here, that is studied in 7-10th grades but that is similar to programming. The only algebra I studied in that period was linear algebra (polynomial equations and systems of equations), and I don't see any obvious connection to general purpose programming (say, I don't see how that kind of algebra helps with understanding quicksort).


It helps with general concepts of manipulating variable and solving systems of equations will introduce you to your first symbolic algorithms. That gets you more than 50% of the way to understanding quicksort from zero.


Speaking anecdotally, algebra taught me squat about variables. I didn't know what variables even were other than that it was some random letter with some random hidden number given by a teacher/textbook I had to solve for.

Long after, programming then came along and taught me:

* Variables are used to store data, including data of my choosing. Algebra never taught me that.

* Variables can hold values besides just numbers. Algebra, and daresay math classes in general, never taught me that.

* Variables can have math operations applied to it, and variables can be not-numbers. Therefore, things that are not numbers can have math applied to them. Literally nothing in math academia taught me that.

I honestly think this recent push to teach kids how to program is a symptom of and response to long-standing failures in math academia. Kids hating math has become an age old stereotype, and I think there's some basis in reality for that. Namely, math academia /fucking sucks/ at giving context to the math that we ask kids to do.

Programming gives some of that vital context, which in turn vastly improves the chances that someone will see the value in math and be inclined to learn more about it.


> * Variables are used to store data, including data of my choosing. Algebra never taught me that.

That's because it's not true in mathematics (or declarative programming) the way it is in imperative programming. In mathematics, variables are sometimes just placeholders substitutable by a particular expression, sometimes they establish relationships between inputs and outputs (e.g. "f(x) = x^2") and sometimes they're even objects in their own right (for example in polynomials).

> * Variables can hold values besides just numbers. Algebra, and daresay math classes in general, never taught me that.

> * Variables can have math operations applied to it, and variables can be not-numbers. Therefore, things that are not numbers can have math applied to them. Literally nothing in math academia taught me that.

Not sure why you're angry at "math academia" here when every undergraduate math degree will teach you plenty of maths that isn't (exclusively) about numbers, e.g. group theory, topology, graph theory, ...

Do you mean "math education", maybe, instead of "math academia"? If so, I would share your criticism, at least in part.


>In mathematics, variables are sometimes just placeholders substitutable by a particular expression, sometimes they establish relationships between inputs and outputs (e.g. "f(x) = x^2") and sometimes they're even objects in their own right (for example in polynomials).

So what you're saying is variables store data.

For some reason math academia absolutely failed to teach me /what/ variables are. Don't tell me to "solve for X", tell me what the bloody hell is a variable, why it's important to me, and what I can do with it. Programming told me, math academia didn't.

>Do you mean "math education", maybe, instead of "math academia"? If so, I would share your criticism, at least in part.

Math academia and education are one and the same as far as I'm concerned.


> So what you're saying is variables store data.

No? That's really not what I said. If I give you a polynomial in x and ask you to find its zeroes, that x is not really storing any "data".

> Programming told me, math academia didn't.

Except programming just told you what variables are in imperative programming, which is only indirectly related to what they are in mathematics (or even in functional programming).

> Math academia and education are one and the same as far as I'm concerned.

Then your criticism is unfounded because it doesn't pertain to actual "math academia".

It's fine if you don't care about how variables are used in maths, but you can't blame maths education for not telling you about a programming concept.


I absolutely will criticize math academia for failing to teach mathematics.

Questions like "I give you a polynomial in x and ask you to find its zeroes" in textbooks and from teachers tell me fucking nothing as regards why I should bother to spend my precious time learning any math. Inevitably I might temporarily memorize some of it for the express purposes of passing some tests, but it's getting unloaded immediately afterwards because it's not important.

Programming, as I've already said, taught me the hows and whys of why math is important long after the student phase in my life, and I sorely wish someone or something in all of math academia would have taught me all that back then.

No other academic subject faces the amount of hate math gets, because their importance are all immediately obvious. Language? Communication is important, a matter of life and death. Social studies? Becoming a functional member of society is a matter of life and death. History? Learning from our past enriches our lives. The sciences? Of course it's important to understand how the universe and everything within it is made and works.

Math academia is a resounding failure because it only ever seems concerned with teaching the results. Fuck the results. Teach me the process, the vital context illustrating why I should bother to learn math. I don't need math to know I have two hands and ten fingers, show me how to do mindblowingly amazing things with math instead.

It's this critical lack of context that leads to people hating math, because we can't relate math to our lives with the way math academia teaches it. I will criticize math academia every chance I get until this is addressed.


> I absolutely will criticize math academia for failing to teach mathematics.

It's not the job of a professor of pure mathematics to teach kids mathematics in school. That's like saying that it's Stephen King's job to teach people how to read.

> Questions like "I give you a polynomial in x and ask you to find its zeroes" in textbooks and from teachers tell me fucking nothing as regards why I should bother to spend my precious time learning any math.

The problem with mathematics is that it's so versatile as a tool that it can be used many different contexts, but no teacher can predict which contexts are going to matter or be accessible to you.

That said, it is not my experience that you're never told why certain things are useful. In my experience, most people just forget those examples, because when they're 16, things like "businesses have to solve large systems of equations to optimise their processes" or "this function models the pattern of growth of a population of animals (or of an epidemic outbreak)" don't really mean a lot to them either. But those things are far from useless in real life.

> Programming, as I've already said, taught me the hows and whys of why math is important

I feel that you try to view all of mathematics through a programming lens, but mathematics is important to a whole range of other disciplines, such as physics, economics, social sciences, etc. Programming gives you a view into mathematics, but it's usually a narrow view.

> No other academic subject faces the amount of hate math gets, because their importance are all immediately obvious.

Math does tend to stand out (at least in the West; it is my understanding, that in many Asian societies, maths is valued much more, because the societal value of it is more evident), but every subject gets that "hate" to a lesser extent. There's no lack of complaints from people not understanding why they ought to read Shakespeare in school, or why they should care about "all these people that are long dead".

> Math academia is a resounding failure

Your very own job wouldn't exist without "math academia".

I already said that I agree that there are deficiencies in mathematical teaching (especially at the school level). It's not unreasonable to want to devote more time in school to applications of maths than to its techniques. But that blanket anger you seem to have towards mathematics as a whole is wholly unjustified.

> show me how to do mindblowingly amazing things with math instead

The "mindblowing" stuff you can do with maths, such as cryptography or machine learning, can only be understood by means of studying highly abstract and, at first glance, "useless" maths.


I am angry, yes, but not at mathematics. I'm angry at math academia (and math education, if the difference means anything) for not giving mathematics the care it deserves.

Math is an amazing academic subject, not the least because it's the language the universe is written in, but none of that sheer sense of wonder is ever conveyed when it comes to teaching math to students. That's what I'm angry about, and of course I would love to not be angry eventually too.


Since I am developing Glicol (https://glicol.org), I am particularly interested in this question, also because many often say Glicol should be used in education.

My take is:

Good education should be personalised.

The main challenge for programming education is to let the student build the motive for coding, asking questions: why should I program? what can I do with codes?

To do music live coding can be one motive. But in the end, I want to let them know, they can have any kind of motive.

Motive/curiosity first. Math, or programming is just the method they will employ, not the goal. Perhaps with the motive, they can pick up math/programming more efficiently using "traditional activities".


First time seeing Glicol - really cool!


My anecdotal experience as a teacher of the impact of programming on undergraduate mathematics is also negative. If students are allowed to solve integrals or differential equations using equation solvers, they go all in on using them to mindlessly get to the correct answer without trying to intuit the patterns that result in the solution.

Eg. I observed that students who took a computer-aided Linear algebra course had almost no true understanding of where numbers go in matrix multiplication. Like the fact that for matrix A, and vector x = (0,..0,1,0,..0), where 1 is in the i-th position, the operation Ax picks out the i-th column of A. They had to compute this every time.


I have a converse case. I once TA'ed for "computational physics," a course that often can be (sometimes) "remdedial programming" for physicists. I distinctly remembered one very bright scientist who just could not understand how to program because they had not developed the intuition in their mind that a computer works as a state machine. Statements like

  x = y + 1
  x+= 2
would leave them thinking y would get modified or worse. They knew the words "assignment vs. equality" but they didn't really understand what was going on despite that mantra being hammered on in lectures, because of that which (unfortunately) was not said, which is mental model: there are boxes in memory, assignments put things into memory, and that in a program, there is a progression of steps, where each step modified state...that is, the mental model of a state machine. Their mind still worked in the sense of mathematical statements you see in a physics or math class or calculation, that each statement is a statement of truth simultaneously, and there is no "sense of time" or series of steps that have an order, much less the concept of a state machine. That's why, even if they knew somehow that x could change value, they didn't get that the second line was an instruction that only had to do with the box labelled x and would not have any effect on y, because that was another instruction, and these weren't statements of truth.

I feel like may be part of it may be the confusion from the conflation of conventions here, but given my work with him at the time, I do not think an assignment operator (like := ) would help because a program being a series of steps and the concept of state being modified over time is something you have to internalize, or worse unlearn if you're a bright physicist who's never programmed.

For me, I have (and I had to) made that distinction in my mind because at some point in my learning long ago just to make sense of the difference in my mind. To be honest, I don't think that difference was ever really taught to me explicitly.


> there are boxes in memory, assignments put things into memory

You are forgetting about functional programming, which has no assignments, only bindings that are immutable — just like in math. And your program is one big expression that is being reduced by a computer.

I wonder what would happen if your friend started with, say, Haskell.


> I wonder what would happen if your friend started with, say, Haskell.

They might get confused as soon as they saw "do"-notation which, while technically only being syntactic sugar over monadic functions, still ends up looking an awful lot like a sequence of operations being performed one after another.


I'm waiting for the reply that explains why teaching Haskell to physics students out of all languages is not only a good, but the right idea.


The reversed relationship however, is strong: maths benefits programming learning immensely.


Do you have proof of this like a large participant study or it is just intuition or your personal experience? I feel like lots of people who are good at maths are good at programming but they are not actually similar structurally.

To me it was always much more similar to some combination of learning a language and learning the linguistic rules of that language in great detail to the point where you have a metalinguistic understanding of it. Then, math would be an adjunct but very separate component that could be manipulated by the programming language.


Languages are part of mathematics.

Please read this fascinating book: https://dickgrune.com/Books/PTAPG_1st_Edition/

Parsing, generating phrases, understanding (analysis), etc, are all studied in applied math.


Ah cool, that looks interesting!

My interest in the comment was whether learning programming is like learning for natural languages or mathematics. At least one study shows that both intuitions about learning programming turn out to be wrong lol:

https://boingboing.net/2020/12/30/study-finds-brain-activity...


Python is fairly distant from actual math.

Haskell, for one example, is much closer, the definitions in Haskell are very math-y: let this = that in what; f x = z where z = g x y. Even list comprehension in Haskell is much more like the actual math notation than what is implemented in Python.

I work with fairly large code base(s) with tons of legacy, as of late. In my case, I do the detective work - find alleged culprits, link them, present evidence, prove, etc.

I guess in next study one should do MRI for detectives and programmers working on legacy code base. ;)


> but they are not actually similar structurally.

The Curry-Howard isomorphism wants a word.


True, I guess as the other commenter has pointed out there is a huge difference between scripting languages and their seeming closeness to natural language compared to mathy languages like Haskell that have this isomorphism and are very structurally similar.


A less type-safe language would still be isomorphic to a mathematical proof, but it could contain a wider range of errors compared to a more type-safe language. The language could be either functional or imperative, and still be isomorphic to a proof.

A correct (error-free) computer program written in any language (even javascript) would be equivalent to a correct mathematical proof.

It's a bit mind-bogglingly profound, but that's the beauty of the Curry-Howard correspondence.


Completely agree. And also disagree with the research results to some extent. My anecdotal experience is quite the opposite. I have started grasping programming while at school specifically to be able to make games. And that helped me immensely to learn math and physics.


Absolutely, in practice, math degree is such a good indicator whether a hire will grok code.


> The reversed relationship however, is strong

Is it? How do you know?


By osmosis.

Are you seriously wrestling with the proposition that computing is a subfield of mathematics?

My intuition here is strong. I am deficient in maths and struggle with formalisms in computing. All my competent programming family & friends who program are mathematically literate. Those who program in functional languages especially so.

But your point though tersely made stands: it deserves to be demonstrated rather than just asserted. Certainly there are proponents of the theory language faculty matters more than mathematical ability.


I'm absolutely atrocious at maths and I have a PhD and successful-enough research career in CS - they seem disjoint to me.


Yes but that's anecdata against statistics, studies and theories of mind.

I am also 44 years into an uninterrupted career in CS and networks. I still believe it's a strong indicator of skill and ability to have the maths chops I don't


> Yes but that's anecdata against statistics, studies and theories of mind.

I'm using anecdata? You said your argument was just 'intuition' a second ago and then gave some anecdotes about your mates.

Can you reference the statistics, studies and the data supporting the theories of mind?


There's a bizarre adversarial quality in your engagement here. If I implied I didn't know I was speaking anecdata I apologize. However, since the searches in google to find papers which discuss the role of mathematics in computer science education are trivial as are the ones which argue language skills are more important, I really don't see why I have to do this.

If you want to disrate my responses because you feel they lack quality, go ahead. I see little signs you actually want to consider this possibility, where I am open to the question "which is more important, language or maths"

https://scholar.google.com.au/scholar?q=the+role+of+mathemat...

https://scholar.google.com.au/scholar?q=the+role+of+language...

or you could drill down in the royal society review of computer science education

https://royalsociety.org/-/media/policy/projects/computing-e...


I am not surprised there was little to no improvement in algebra and arithmetic capabilities. They should measure for discrete math performance instead, as that is what CS is. Programming (for general purpose applications) has very little to do with non-discrete math unless you are doing ML/scientific programming/game development.


Programming and math both depend on mastering a language, while much simpler than natural languages, that is both rigid and abstract, at least for beginners. While repetition leading to pattern recognition and comprehension works for everyone acquiring a mother tongue, I am troubled by the de-emphasis of the need of rote learning (that is, work) at the elementary school level. In my own case we did extra exercises (adaptitve q&a a couple of times a day) to make sure our younger one actually master multiplication and division. I remember being worried how kids without additional attention at home would fare.


"In Theory There Is No Difference Between Theory and Practice, While In Practice There Is"

For me personally it seems rather obvious that learning theory is a prerequisite for being good at practice, not the other way round.


What is a programmer? What is a mathematician?

For everyday web development, you hardly need any serious math in my experience. However, 3d game engine development won't get you far without proper knowledge of math. Same goes for algorithms. Graph theory applied brings you a lot of super powers in certain CS domains, which you cannot reach without Math knowledge.

I think that at the intersection of Math and programming lies a lot of magic. Mazes, generated art are examples. SQL has so much more to offer, if you understand Set theory. Fraud analytics is another topic that is quite easy to handle with Graph databases. Even Arrays are nothing more than a defined Set. Functional Programming is in my experience way easier to grasp, if you understand functions like in Calculus/Analysis and not how some web programmer explains it.

It is not black or white and of course great mathematic guys are not necessarily great programmers. On the other hand, I have seen a lot of code in some areas, that would seriously benefit from better Math knowledge. ;)

Math is hard. It is a niche, however can be very fascinating, especially in the fields of generative art.


What about teaching excel? I swear that would turn some lights on.


I learned programming before I learned algebra, and it made algebra seem like an old fashioned and slow waste of time. I could solve the same problems more quickly and naturally by writing a short program.

That put me off math for a long time. In retrospect I wish I had stuck with it to get to the more interesting parts. In the end though, having not done that, I’m not really sure that math and programming are interchangeable skills as some here are asserting.


Mathematics and programming are not interchangable, but programming is one form of expressing mathematics and giving context to seemingly meaningless numbers.

Personally, I /fucking hated/ math as a kid. The numbers were meaningless to me because nothing, neither the teachers nor the textbooks nor anyone/anything else, ever taught me what the numbers meant. "Solve for X and tell me what Y is" they said, "How many apples do you have if you hold one in each hand." they said. Pointless.

It was only after I got into programming, incidentally of my own self-taught volition, that all those numbers suddenly had meaning and I truly understood the value of math.

"54 / 36 = ?" is meaningless to me, but "screen_width / 2" and "screen_height / 2" to figure out the center point of a monitor do have meaning, and my mind was blown with a sudden astronomical understanding of the world.

Perhaps the most mind shattering moment was when programming made me realize I could apply math to things that aren't numbers:

"apple" + "orange" = "appleorange"

Mind. Fucking. Shattered.

So programming is amazing at teaching math, at giving math crucial context to keep a kid's mind interested, but teaching programming itself will not teach math.


Software engineering and programming have very little to do with math. It‘s rare for a programmer to even need percentage calculation.

Computer Science has many parts that are heavily connected to, dependant or even built on math.

And lastly, computer science has not that much to do with programming.

The majority of programmers, software engineering workers and computer scientists don‘t seem to be able to grasp the difference.


Seems to me programming is more a discipline of logic, reason, communication and organisation than mathematics.


And yet admissions to most university level CS programs require high math grades, and the profession as a whole skews towards individuals with high enthusiasm for math.

(FWIW I was unable to pursue a CS degree for this reason. I came out of high school without the right math pre-requisites for the Canadian university system. I got a career in software development nonetheless... and 20 years on I have never really needed to use any of the math they demanded I take... Even after 10 years @ Google I still get the odd door closed on me because of my lack of a CS degree... I might be a little bitter as a result)


CS is actually math, not really programming at all. You can get through a CS degree without being a competent programmer.


You can get through a CS degree at some universities with barely any programming at all (maybe 3 courses involving programming)


That sounds exactly like mathematics to me.


While I get where you are coming from, I myself am a decent programmer, and a terrible mathematician. So from my N of 1, they can’t be the same skillset.


Its obvious why they got such results, look at the language they used. They should have used Rust.


Highlights:

• Compared to traditional activities, programming did not benefit mathematics learning.

• A negative though small effect of programming on mathematics learning was found.

• High-road transfer from programming to mathematics is not self-evident.

• Visual programming languages might distract students from mathematics activities.


Grades four and five.


What does math learning mean? A basic understanding of boolean algebra can get you far in programming.

Some fields such as graphics programming and machine learning do apply advanced mathematics, but you are likely to use a high level abstraction that wraps the hard parts.


I’ve been teaching my kid algebra and there was a big epiphany when she realized (in her words) that it’s just like programming except = isn’t assignment. She is a bit older than this study’s cohort so maybe the effect requires a bit more time?


Time to teach her about references and pointers :D


She actually got pointers pretty easily, but references were confusing since the syntax is the same when you… reference them.


It's not on sci-hub yet?


I have some anecdotal evidence against this. Learning how to write automated proofs using Isabel and HOL definitely improved my ability to write proofs with pen and paper. Also, I wonder what is meant by “traditional activities”. Unfortunately the article seems to be behind a paywall so I can’t check…


I don't think writing proofs in Isabel is really comparable to regular programming. Note also that writing formal machine-verifiable proofs is a skill that few career mathematicians have. Writing regular proofs is a comparably much simpler skill, one that is universal among career mathematicians.

So, the fact that your practice of a very complex version of a skill also improved your ability to practice the simpler version of the skill isn't really surprising.

Coincidentally, my understanding is that many mathematicians find such deeply formal proofs hard to follow, compared to more informal ones. It would actually be interesting to know if your proofs have become more or less satisfying to a practicing mathematician after your experience with Isabel and HOL.


Well, others in this discussion are already questioning it, but this particular research was on 4th and 5th grade students using Scratch and on some basic math (arithmetic) concepts. I'm not sure Isabel would be appropriate for them. The submission title is pretty clickbaity, the actual title is more reasonable: Impact of programming on primary mathematics learning.

Which also conveys the level of math (primary math) being evaluated against.


Is there a way to get past this paywall?




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: