I'd say that deep maths skills are not needed in general. High school level is indeed probably enough in most cases. But strong reasoning skills are paramount. Software dev is applied reasoning skills.
"My gut feeling says that students never learned strong reasoning skills and mathematical induction."<p>This quote from the linked article resonates with me quite a lot. I see people trying to understand recursion in code and not getting the hang of it.<p>CMU is one university where it's CS curriculum teaches functional programming after a rigorous course on Pure Mathematics Intro - <a href="https://www.math.cmu.edu/~jmackey/151_128/welcome.html" rel="nofollow">https://www.math.cmu.edu/~jmackey/151_128/welcome.html</a>. The functional programming course (15-150) materials are not public, but they use SML and uses heavy use of induction proofs and recursive implementations.<p>The other line of programming pedagogy argues that only simple high school algebra is enough to teach programming via recursion. I am talking about How to Design Programs: <a href="https://htdp.org/" rel="nofollow">https://htdp.org/</a> and now the DCIC book: <a href="https://dcic-world.org/" rel="nofollow">https://dcic-world.org/</a>. They argue that looking at the data and its inherent structure is enough.<p>The above two approaches are mostly polar opposites of each other. I want to know what other HNers think about this.