# “Calculators are so twentieth century.”

Even though I studied maths, I became familiar with programming in my junior year at university. I'm indebted to the professor who encouraged me in that pursuit, as it provided me with an avenue not just for problem solving but for exploration that many of my classmates neglected.

In many K-8 math and science classrooms, coding is beginning to creep into the curriculum in the form of fun and kid-friendly applications like scratch and initiatives like Hour of Code.

Is there any scholarly research or professional education publications that report that 9-12th grade maths classrooms are beginning to incorporate coding as a standard tool for problem solving, as the graphing calculator was in the 1990's, or that recommend that maths teachers move in this direction?

• In terms of recommending this in the US, CCSSM's SMPs include: "Mathematically proficient students ... are able to use technological tools to explore and deepen their understanding of concepts," and "Mathematically proficient students consider the available tools when solving a mathematical problem. These tools might include ... a calculator, a spreadsheet, a computer algebra system, a statistical package, or dynamic geometry software." For spreadsheets and tech more generally in math education, try google scholaring: Sergei Abramovich... – Benjamin Dickman Nov 6 '15 at 20:07
• At a local school in NJ, the incoming students have taken a foreign language in elementary school. They are then given a choice between a second foreign language and learning to code. However the coding is not part of the math curriculum. – Amy B Nov 6 '15 at 20:48
• I've incorporated some very simple coding into my community college physics courses. My experience was that it was much, much, much more difficult for many of the students than I could ever have imagined. All I was asking them to do was basically to take short (~10 lines) samples of python code and make slight modifications, but the whole idea was completely alien to most of them. This was counterintuitive to me, since coding came easily to me as a kid, but even many CS graduates can't do simple coding: blog.codinghorror.com/why-cant-programmers-program . – Ben Crowell Nov 6 '15 at 22:16
• Some perspective: Circa 1980 we had computers in our grade-school classrooms and did BASIC programming on those. I taught from a college algebra book circa 1990 that had programming exercises embedded in the problem sets. These things tend to be cyclical in my opinion. For me programming seemed essential to my math skills but my college students never seemed to agree. – Daniel R. Collins Nov 6 '15 at 23:31
• I have posted my answer. Please let me know if it can be improved to deserve the "Accepted" label ;) – Pavlo Fesenko Jul 6 '18 at 7:28

You have perhaps heard of code.org. They have developed

a curriculum which teaches algebraic and geometric concepts through computer programming.

It is described here: Computer Science in Algebra. Here is a bit more detail:

Algebra goes beyond just solving for x, and Code.org CS in Algebra goes beyond this writing code. Through learning to program, students will also practive problem decomposition, clear communication through documentation, testing their own functions against example cases and input/output tables, and much more. Many of the practices employed by CS in Algebra directly correlate to key concepts in the Common Core math standards: data types teach domain and range, test cases introduce students to input/output tables, and our block based programming language allows students to write functions with manipulatives.

I have no direct experience with this curricular approach myself, but it may be an indication of a nascent beginning of "incorporat[ing] coding as a standard tool for problem solving" (to quote the OP's question).

• What do you mean by "circular approach"? – Andrew Nov 13 '15 at 1:11
• @Andrew: That's curricular approach, not "circular approach." I meant I have no experience actually following this curriculum. – Joseph O'Rourke Nov 13 '15 at 5:40
• indeed. Thanks for your answer! – Andrew Dec 18 '15 at 17:08

At an advanced undergrad level, I have had an encounter with "programming-versus-math" in the crypto course and equally-"applied"-but-different error-correcting codes course that I developed in the late 1990s.

First, let me say that I myself find contemporary computers substantially helpful "even" for purposes that existed prior to them. Communication! Typesetting!

Computational issues in number theory (my general field of interest) are low-hanging fruit in terms of marketability to students, or to amateurs, and have considerable interest to any sensible person. But, of course, there's a limit to what experiment can suggest, all the while thinking that (if we were practical physicists) a think untestable by experiment is nearly worthless.

Somewhat surprisingly to me, I found a bifurcation in the attitudes of students, between computational/experimental verification (or experiment!) and "proof".

In fact, much of the push-back against experiment from undergrads who claimed to exclusively endorse "proof" could be understood, under closer examination, to be a simple-minded resistance to "confusing inputs". In particular, a significant portion of the population was the sort of "math major" who "likes math" because "there are rules" and no general sensibility is relevant.

As a pathetic counterpoint, the people who showed up with some capacity to program (but mostly inefficient graphical interfaces, silly things, nothing high-performance, by a mile...) could not imagine that there would ever be any need to "prove" anything. In fact, the most bizarre conception I'd encountered up to those dates was that ... in computer science students' belief system... computers are so fast/good/whatever that no task is impossible... The reason I had trouble catching-on to this conceit was that I'd have thought they'd have known that it's not clear that P is or is not NP, not to mention that the security of various security systems depends on tasks being difficulty for anyone.

Sad summary: the majority of kids attracted to math as an undergrad major were attracted for reasons violently opposite to computer-science reasons, while the computer-science kids had belief systems that made them unable to understand why/how mathematics was necessary or useful.

That is, apparently, there's a bifurcation in the general population between these ways of thinking. The time I've spent trying to cajole people into seeing the opposite possibility .. has not been repaid in any way, sadly.

But, yes, in the ideal new world, people would learn a few computer languages, especially some scripting languages, and learn some mathematics, and be able to do things...

Here, yet again, I find that the implicit aspects of the question are the real trouble... Yes, I've tried to have an impact on curriculum, and on "attitude", but "computing" and "math" each do seem to have angry, uncooperative constituencies already established... Whah?

Anyway, I honestly think a person would be a fool to not learn about computing (not to mention communication) if they could encompass it, whether or not they were interested in mathematics. Srsly, this is a sort of tail obviously wagging the dog thing, for most purposes. (And, with luck, I will become rich by using Fourier analysis to break the stock market, of course.)

• "in computer science students' belief system... computers are so fast/good/whatever that no task is impossible." This is why Computer Science majors are required to complete Theory of Computation to earn their degree. There they confront undecidability, and learn about the $P=NP$ question (and many other useful & fundamental topics). – Joseph O'Rourke Dec 19 '15 at 2:31
• (Shameless self-plug alert) The journal Involve is nice for student research in (e.g.) computational number theory. After an REU, this emerged and was published there. I still have the referee report: "The method is fairly simple. ... This paper seems to me to be an excellent example of student research. It takes a difficult problem and set of techniques on the cutting edge of current directions in the area and finds a concrete way to explore specific examples... the data that is produced here is of genuine value and interest." – Benjamin Dickman Dec 19 '15 at 4:40
• (cont'd) I found the experience enlightening with respect to the notion that producing lots of numerical data could be considered valuable to mathematicians (!) since it clashes with the trad'l math-class-presentation of statement-proof(-repeat). It is maybe strange to read a report beginning, "The method is fairly simple," and ending with "genuine value and interest." Anyway: It was also an important chance to learn about PARI/GP, which is (unfortunately?) not common during an undergrad math major's coursework afaik. – Benjamin Dickman Dec 19 '15 at 4:44
• I asked about research on programming initiatives in 9-12 math classes, and you answered about your experience as an advanced undergraduate math student. While I appreciate your input, and it's actually quite personally relevant to me and I'd like to chat about it with you, it's not an answer to the question in any sense. – Andrew Dec 19 '15 at 18:17
• Perhaps if you edited your answer to directly address the question and expound upon how your experience teaching computer science to advanced university students over a decade ago is relevant to recent publications that discuss the universal integration of coding in 9th-12th grade math classes, I would understand why it's an appropriate answer. – Andrew Dec 21 '15 at 22:28
1. The most well-known organization that teaches algebra (along with physics and data science) using programming is Bootstrap. Its team even involves the university professors that have a number of publications about the Bootstrap teaching approach. It's not implemented in the curriculum at the official level but they organize a lot of professional development workshops for teachers across the United States.

1. Another popular initiative for teaching math using coding is Computer-Based Maths (CBM). Its founder is Conrad Wolfram, a brother of Stephen Wolfram who created the famous computer algebra system Mathematica. The CBM course in statistics has been run as a pilot study in Estonian schools by the University of Tartu (see the results here). It hasn't become, however, the part of an official curriculum yet.

1. Finally I wouldn't be able to end this post without mentioning legendary Seymour Papert and his influential LOGO project. This research project was supported by NSF and its report can be found here. There is no official curriculum that uses LOGO principles but they have been widely applied by many teachers. Since then the LOGO turtle has become a standard Python module and can even be accessed online using Trinket.

P.S. There is much more action in the universities and, for example, the Brock University has the complete undergraduate program called Mathematics Integrated with Computers and Applications. It is also supported by their own research studies that can be accessed here.

In a paradoxical way, I think coding and beginning coding of math (for neophytes) has gone backwards recently. Read the article "Johnny can't code" by David Brin for reference:

https://www.salon.com/2006/09/14/basic_2/

The calculator push and graphing calculator push has ended up being more show than push (and you could see the signs of it going back to early 80s with NCTM and NSF). Gotta have some of them thar technology. So we throw gazillions at ipads in the classroom. And the kids who really get it have no problem picking up technology. And the ones who don't have same issues. And in some cases have them cloaked by calculator crutch (check out college confidential posts for example).