# Gas station without pumps

## 2010 November 1

### Computational thinking lesson plans

Filed under: Uncategorized — gasstationwithoutpumps @ 22:44
Tags: , , , ,

Earlier this summer, I read two posts by Mark Guzdial on computational thinking: NRC Non-Statement on What is Computational Thinking
and Go to the Data: Two stories of (really) Computational Thinking.

Now Google has released lesson plans for teaching their idea of computational thinking to 6th graders through 12th graders.  The development of these lesson plans is documented on the Google Research blog, though they don’t list the individual “California-credentialed teachers” who helped develop the lesson plans.

One of them is well-known in the math-teacher-blog world: Dan Meyer of dy/dan blog, who reports his contribution as “Roots of an Equation”, which appears to be just a Python program (and not a particularly well-written one) for finding the root of $x^2-1=0$. I suppose that the code is easy enough to read and modify, but my 14-year-old son felt that he could do better, even though he’s not learned much Python yet.

He suggested removing the extraneous parentheses in the print statement (so that the output reads normally, instead of printing a list.  We also noticed that changing the function to $x^2-2$ causes the program to get into an infinite loop as lower+step = lower when the step is small enough, and the while loop never terminates.  This will always happen if the root does not have an exact representation as a floating-point number.  If we are to teach computational thinking, surely we need to teach about avoiding infinite loops!  Perhaps that is part of the lesson plan, but I saw no lesson plan to go with this buggy program.

1. Yeah, the exact representation bug jumped right out at me. I think Python may max out at 53 bits of precision, so there’s some chance the program will be saved – but the calculations could also jump around the nearest answer without ever hitting it.

It’s not clear how Google intends teachers to use the programs – as an answer key?

I’ve long been interested in using programming to teach math, though. I think Geogebra has a language that is powerful enough to be interesting and built specifically for investigating mathematical objects. Also, the language is very close to standard algebraic notation, so spending time learning Geogebra is a great way to solidify understanding of the symbols we’d be using in class anyway.

Comment by Riley Lark — 2010 November 2 @ 06:23

2. I think that teaching computational thinking overlaps with teaching math, but is not the same thing. Most of elementary and secondary school math is fairly straightforward manipulation of simple concepts, and does not require the “thinking about the edge cases” that good programming requires. The particular error that Dan made here was to assume that floating-point addition behaved the same as real numbers do, which is approximately true, but not true in the limit as you make one of the numbers small. Thinking about the usual case is often good enough for high-school math, but is never enough for computational thinking.

Comment by gasstationwithoutpumps — 2010 November 2 @ 08:02

3. […] Geogebra Tools: Programming Will Fix _Everything!_ 02 NovEveryone’s talking about programming in math, and I’m here to tell you: I AGREE!  Let’s do more programming in math!In order to […]

Pingback by More Geogebra Tools: Programming Will Fix _Everything!_ « Point of Inflection — 2010 November 2 @ 08:56

4. Dan Meyer says “Yeah, it’s weird to me they didn’t include the lesson plan I wrote to accompany the program. That was the more time-intensive task.” This is an egregious omission on Google’s part: I would trust Dan Meyer to write a decent lesson plan, even if his programming skills are lacking. It seems that Google has thrown away the baby and kept the dirty bathwater.

Comment by gasstationwithoutpumps — 2010 November 6 @ 08:07

5. […] Computational thinking lesson plans […]

Pingback by NaBloPoMo is over « Gas station without pumps — 2010 December 1 @ 00:18

6. […] Note: I’ve posted on computational thinking twice before: Algorithmic vs. Computational Thinking and Computational Thinking Lesson Plans. […]

Pingback by Computational Thinking « Gas station without pumps — 2011 March 27 @ 10:12

This site uses Akismet to reduce spam. Learn how your comment data is processed.