My work at Google last year just shipped. Four of us wrapped our heads around “computational thinking,” an approach to problem solving common to computer programmers (more here), and tried to adapt it to the California high school math and science standards. This felt, at times, like tying Al Roker and Usain Bolt together at the ankle and forcing them to compete in a three-legged race. Other times, they played well together.

Near as I can tell, of the sixty-or-so modules listed, only one of them â€” “Roots of an Equation” â€” is mine. I always admired Google’s lack of sentiment in deciding when to invest itself and when to divest itself. Still it’s strange to see a year of work reduced to a single entry in a long list. I’ll be interested to see where the project goes from here.

## 16 Comments

## Laura

November 1, 2010 - 1:52 pm -I’m curious… which one is yours?

## Laura

November 1, 2010 - 2:27 pm -Ugh, I wish I could delete my post, the answer is right there. Sorry

## MrW

November 1, 2010 - 4:24 pm -Walking on air today?

## Frank Noschese

November 1, 2010 - 7:00 pm -Congrats! And Python is the perfect language for this type of work, IMHO.

If there are any physics teachers out there looking to integrate computational thinking into your classes, I highly suggest looking at VPython: http://vpython.org

Here’s a simple bouncing ball program in VPython:

http://vpython.org/contents/bounce_example.html

Here’s a research paper entitled “Computational physics in the introductory calculus-based course” which gives some rationale and examples:

http://matterandinteractions.org/Content/Articles/ChabaySherwoodComputation.pdf

A whole suite of VPython activities are here:

http://www.compadre.org/portal/document/ServeFile.cfm?ID=5692&DocID=266

Plus, a Google search for “VPython” and “physics” will yield many more good activities in mechanics and E&M.

I use it with my AP Physics C students and they love it! And once they’ve written the program, it becomes a springboard for inquiry as they ask “what if” questions and change the program to find the answers.

## Daniel Schaben

November 2, 2010 - 4:39 am -I learned Calculus I and Calculus II this way in 1992 at Chadron State college in Nebraska under Dr. Montey Fickel with a program called Derive and a Program called ISETL (I think). It actually was pretty interesting. I don’t know that I could have passed an AP Exam after I was done, but I did completely understand what a derivative and integral was when we finished the course. So big idea wise it was great. The one thing I remember about it was setting up infinite loops in the programs to lock them up and also finding the limits of those early PC’S. When you would set up trapezoids to sum up the area under the curve it was really easy to lock up the computers when you made say 500 traps in a given interval. Lot of hours in a computer lab.

## Kris Kramer

November 2, 2010 - 6:41 am -Too bad Google sticks with CA standards; the Common Core would cover so many more folks.

## monika hardy

November 2, 2010 - 5:48 pm -cool jets man..

huge grazie.

## josh g.

November 2, 2010 - 7:36 pm -I love this concept but really don’t like the presentation. More “How to use this” would be great.

Also, they really should be putting a huge “Download Python 2.5 here” link at the top of the page. I installed the newest Python while I started to browse the Intro doc, only to find out halfway through that the very first example of a program *wouldn’t run at all* because apparently any Python >= 3.0 drastically changes how the print statement works, or something.

Btw I’d love to hear how you’d use the ‘Roots of an Equation’ program in a class.

## Dan Meyer

November 3, 2010 - 7:27 am -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.

## Jason Dyer

November 3, 2010 - 9:54 am -As an ex-Computer Science guy, seeing math lessons based on Python warms my heart, but some of these seem like they’d go better with a spreadsheet (and one I’ve done with a spreadsheet before) — there’s no need to teach coding, the algebraic connection is more strikingly apparent (each box is its own variable), it’s related more to prior computer experience, and there’s instantaneous graphing.

After enough spreadsheet experience, one of my students made the remark that “algebra is like cheating for math”.

Have these been tried in practice? What’s the learning / time ratio like?

## Chris Sears

November 3, 2010 - 12:20 pm -I’m new to computational thinking, and I’m initially skeptical. It may be a good idea to supplement a curriculum, but I wouldn’t want to base an entire curriculum on it. I’m not sure that it will work with every learning style. Someone with a kinetic learning style may do as well by looking at the problem as a set of step-by-step procedures.

This also seems to hide the big picture of the mathematics curriculum. I don’t know if the students can see how the topics fit together.

It also reinforces the concept that math problems can be done by memorizing algorithms. Memorizing algorithms is good for arithmetic, but not for algebra. Memorizing is a black hole for solving applications.

This is also not new. I have a book (somewhere) that uses programs in APL to teach math.

Again, these are just my initial thoughts on the topic.

## Sue Downing

November 7, 2010 - 5:27 am -I was intrigued by this so I downloaded the program and started working my way through the lessons. There appears to be an error in Introduction to Python TE, exercise 8.

x=3, yet the page says that x2 returns a false. I got a true, which appears to be correct to me. I couldn’t find a place to contact Google to ask about this. Am I wrong, or is Google wrong?

## Sue Downing

November 7, 2010 - 5:35 am -Obviously when I hit submit, what I wrote appears to have changed, so I will try again. The TE says that x is less than 12 and x is greater than 2 returns a false.

## Sue Downing

November 8, 2010 - 5:04 pm -FYI – I did find the forums on the Computational Thinking site and posted a note. They responded and fixed the error right away.