## Aligning Computer Science with Mathematics by Felleisen and Krishnamurthi

*July 7, 2009 at 7:44 pm* *
4 comments *

The July 2009 *Communications of the ACM *has an interesting article by Matthias Felleisen and Shriram Krishnamurthi *Why Computer Science Doesn’t Matter* with the great subtitle “Aligning computer science with high school mathematics can help turn it into an essential subject for all students.” The argument that Matthias and Shriram are making is that we can use programming to teach mathematics better, and help students learn both. In so doing, we prevent marginalization of computer science and support an important goal of the American education system, the teaching of “‘rithmetic.”

It’s a good argument and one that I support. I am dubious about some of the education claims made in the argument, like “we have already seen our curricular approach…help students raise their alebra scores” and “Formal evaluation shows the extremely positive impact this curriculum has…” (I’ve been searching through the sites given in the article, but can’t find peer-reviewed, published papers that support these claims.) But these are really minor quibbles. Having written one of these pieces, I know that the tyrany of 1800 words is severe, and the authors can be excused for not providing background citations to the studies supporting their claims. Instead, I’d like to provide some of the background literature that supports their claim.

Can we use programming to help students learn mathematics? Absolutely! Probably the most famous study supporting this argument is Idit Harel’s dissertation work on *Instructional Software Development Project (ISDP). *Idit had fourth graders write software in Logo to teach fractions to third graders. She found that a real synergy occurred between the concepts of programming and the concepts of mathematics, and her students ended up learning more about both compared to another class. Yasmin Kafai (who just moved to Penn from UCLA this last year) continued this project, exploring novel collaboration models (e.g., the fourth graders become fifth grade “consultants” as another cohort of fourth graders helps another cohort of third graders) and expanding from mathematics into science. My own dissertation explored the synergy between physics and programming. My results weren’t as strong — I had good physics learning, but not good computer science learning. I suspect the problems were the challenge of making real learning in only a three week summer workshop, and not having the kinds of IDE’s that Matthias and Shriram are calling for.

“Our community must realize that minor tweaks of currently dominant approaches to programming won’t suffice.” Completely agreed, and the best argument for this point came from Bruce Sherin’s powerful dissertation (with Andy diSessa at Berkeley). Bruce taught two groups of students lessons in physics, one using programming and one using algebra. (Andy would probably argue with Matthias and Shriram, “The ideal language and the IDE for imaginative programming are still to be designed.” Over 20 years ago, Boxer implemented much of what they’re calling for.) Bruce found some really interesting differences between what was learned via each form of notation. For example, programming was better for figuring out *causality* and *sequencing.* An algebraic formula like *x = x0 + vt* leaves invisible to the novice that the *t* is what will typically vary in that equation. On the other hand, algebra was better for understanding *balance *and *equilibria*. A formula like *F=ma* works in both directions: increase the mass or acceleration and the force increases, or if the force declines, then either the mass or the acceleration must have declined. Most programming languages do not make evident how constraints work in the world. The media extensions that Matthias and Shriram describe help address some of the challenges Bruce found when students had a single physics concept (e.g., an object moving because it’s location changed) being represented by multiple lines of code.

“As computer science educators, we must also demand a smooth, continuous path from imaginative programming to the engineering of large programs.” Alan Kay has been making this argument for years. He refers to the concept of *Omniuser* who can move from scripting in E-Toys, to changing how the levels close to the metal of the machine work, all with a single system and (hopefully) a single notation. His STEPS effort is seeking to build such systems. In particular, Alan and his team are exploring “systems math” which is a kind of powerful mathematics that can only really exist in the powerful medium of programming. Thus, STEPS gives us a way to go beyond just support “‘rithmetic” to support powerful new kinds of mathematics learning.

I’m a big fan of Scheme and consider DrScheme to be one of the finest pedagogical IDE’s ever created. TeachScheme is a brilliant curriculum. My guess is that careful studies of the effort would support many of the claims being made by Matthias and Shriram. More importantly, though, I believe that they’re right that programming could actually *improve* mathematics learning. Doing it in such a way that students’ mathaphobia doesn’t drive even *more* students from computer science is a real challenge. An even bigger challenge is doing it in such a way that can gain the support of organizations like NCTM and that meets the mathematics standards in our schools. As they say, “Any attempt to align programming with mathematics will fail unless the programming language is as close to school mathematics as possible.” It’s more than just the programming language — the whole package (curriculum, IDE, language) has to look and feel like mathematics to make it successful with the mathematics education community.

Entry filed under: Uncategorized. Tags: Boxer, CACM, DrScheme, high school CS, math education, physics education, Scheme, science education.

1.Matthias Felleisen in Response to Blog Post « Computing Education Blog | September 9, 2009 at 12:49 pm[…] 9, 2009 Matthias Felleisen tried to comment to the blog post where I commented on his and Shriram Krishnamurthi’s recent CACM article, but WordPress kept discarding his comment! I offered to post it here as a new […]

2.Playing the Cards You’re Dealt: A Story of GT and HtDP « Computing Education Blog | May 11, 2010 at 11:06 am[…] ACM Karlstrom Award for contributions to education, for which I congratulated him here. I wrote a commentary on an article that they published last year in CACM, and I posted here Matthias’s response. I admire HtDP. […]

3.Tom Morley | October 16, 2018 at 10:03 amAnother aspect of programming and mathematics is that the existence of programming changes what is interesting and important in mathematics. This aspect is widely misunderstood in the mathematics community.

4.What do I mean by Computing Education Research? The Computer Science Perspective | Computing Education Research Blog | November 12, 2018 at 8:01 am[…] (e.g., as in Bruce Sherin’s work) or algebraic forms (e.g., as in Bootstrap) — see here for discussion of both. I’m intrigued by the idea of the affordances of reading code even […]