Python Epistemology

This was the title of a 5-minute 'lightening talk' by Allen Downey, author of Think Python <http://www.greenteapress.com/thinkpython/html/index.html>, during the educational summit here at PyCon. Main points: * - Nat ural L ang uage : expressive and readable, but verbose and imprecise. - Math ematical notation : concise and precise, but not readable or executable. - M ost programming languages: precise and executable, but verbose and not readable. Hmmm ... can anyone think of an expressive, readable, concise, precise, and executable symbolic language? : ) He went on to show a traditional mathematical formula representing Bayesian inference and compared it to the corresponding Python code. The Python code was similar to natural language and represented a flow of ideas. It was comprehensible. His point was that we often think we need to first express our ideas in traditional mathematical notation and then translate the math into executable code. But his point was no, we can code our ideas directly. It is a new kind of mathematical expression. I was so delighted to hear this, as these are the conclusions I have come to as well. It's absolutely true that coding reflectively helps clarify one's ideas, and this is why it belongs in education. I've repeatedly had the experience that coding something I had long taken for granted in math got me to see it in a new light. I've come to view traditional math syntax as a kind of clever shorthand we developed before we had computers. I think the traditional syntax creates a kind of cognitive illusion in students and teachers that that's 'really' the math. And then throwing calculators into the mix just solidifies the illusion. Everyone in K-12, students and teachers, thinks that the math is 'really' on a piece of paper, in traditional notation, and that the technology is something on the side we turn to in order to help us get the math onto the paper when the calculations get too tough. I think that picture is flawed and antiquated. The technology itself is the new paper. Computational languages are the new algebra. * PyCon was amazing. It was my first one. Very inspiring. Time definitely well spent. -- Michel =================================== "What I cannot create, I do not understand." - Richard Feynman =================================== "Computer science is the new mathematics." - Dr. Christos Papadimitriou ===================================

On Sat, Mar 16, 2013 at 8:14 PM, michel paul <pythonic.math@gmail.com>wrote:
This was the title of a 5-minute 'lightening talk' by Allen Downey, author of Think Python <http://www.greenteapress.com/thinkpython/html/index.html>, during the educational summit here at PyCon. Main points:
*
- Nat ural L ang uage : expressive and readable, but verbose and imprecise. - Math ematical notation : concise and precise, but not readable or executable. - M ost programming languages: precise and executable, but verbose and not readable.
Hmmm ... can anyone think of an expressive, readable, concise, precise, and executable symbolic language? : )
*
Yes. I introduced myself to Allen later during coffee break, saying I recommend his book rather frequently to my students (an O'Reilly book after all, though also free on the web). I was thinking of 'Thinking Python' which inherits though 'How to Think...' and Jeff Elkner's edition. However, I should also be reading, then recommending his 'Thinking Complexity' as I think that whole field, of fractals, butterfly effects, cellular automata, is providing that wealth of material we need wherein pre-computer mathematics stays relevant for sure, but needs our new tools and notations in addition. I'm not saying that to be exclusive of other areas of mathematics. Those of us old enough remember the big splash fractals made, because of their merit as art objects, by which I mean nothing dismissive either. Suddenly, our computer graphics capabilities were being exercised to their max. Plus now there's the Mandelbulb. *
He went on to show a traditional mathematical formula representing Bayesian inference and compared it to the corresponding Python code. The Python code was similar to natural language and represented a flow of ideas. It was comprehensible. His point was that we often think we need to first express our ideas in traditional mathematical notation and then translate the math into executable code. But his point was no, we can code our ideas directly. It is a new kind of mathematical expression. *
Even just a single Sigma becomes more comprehensible as a for loop, or even a generator where infinite sequences and series are concerned. http://www.4dsolutions.net/ocn/overcome.html
*
I was so delighted to hear this, as these are the conclusions I have come to as well. It's absolutely true that coding reflectively helps clarify one's ideas, and this is why it belongs in education. I've repeatedly had the experience that coding something I had long taken for granted in math got me to see it in a new light. I've come to view traditional math syntax as a kind of clever shorthand we developed before we had computers. I think the traditional syntax creates a kind of cognitive illusion in students and teachers that that's 'really' the math. And then throwing calculators into the mix just solidifies the illusion. Everyone in K-12, students and teachers, thinks that the math is 'really' on a piece of paper, in traditional notation, and that the technology is something on the side we turn to in order to help us get the math onto the paper when the calculations get too tough. I think that picture is flawed and antiquated. The technology itself is the new paper. Computational languages are the new algebra. *
We're on the same page as the Mathematica people here, and I don't think we should worry about any winner-take-all, king-of-the-hill story here. IPython Notebook has a Mathematica flavor and that's fine, so does Sage. We're in a synergy relationship. That's especially true in the space of my workplace, where a lot of the brain cycles have been committed to Hilbert, software that brings in Mathematica over the server to a browser-based client. Others of us teach Python and other executable notations. Per your integrating vision, it's all one domain. http://www.makingmath.com/ (same group as O'Reilly School)
PyCon was amazing. It was my first one. Very inspiring. Time definitely well spent.
-- Michel
Glad we got to meet. I know my little talk was kinda quirky, and that sometimes worries newbies (my somewhat stream of consciousness style...), but they tend to be reassured that I'm a known quantity, my quirkiness just part of my style. I gave my talk again with different emphasis in the Great Hall on Saturday morning. My gave more focus to my "generator tractor" and the fact that it takes data in through yield, doesn't just give data out. This proved to be a good segue to Raymond Hettinger's keynote I thought. He was likewise extolling the virtues of the keyword 'yield' as among Python's salient and cutting-edge features. Kirby

On Sat, Mar 16, 2013 at 10:07 PM, Kirby Urner <kurner@oreillyschool.com>wrote: << snip >>
We're on the same page as the Mathematica people here, and I don't think we should worry about any winner-take-all, king-of-the-hill story here. IPython Notebook has a Mathematica flavor and that's fine, so does Sage. We're in a synergy relationship.
That's especially true in the space of my workplace, where a lot of the brain cycles have been committed to Hilbert, software that brings in Mathematica over the server to a browser-based client. Others of us teach Python and other executable notations. Per your integrating vision, it's all one domain.
http://www.makingmath.com/ (same group as O'Reilly School)
Here's a post worth linking to right at this juncture as it gives a lot of the history of the O'Reilly School endeavor. Written by the spouse, Trish, of the founder, Scott Gray: http://blog.oreillyschool.com/2013/02/with-respect-to-osts-executive-directo... Scott's transformative trip to Russia is talked more about here: http://blog.oreillyschool.com/2010/05/the-story-of-the-oreilly-school-of-tec... That's somewhat where my slide show comes in, as I mentioned saying our company is based in Sebastopol **, followed by a pregnant pause before I say "California". Kirby ** *Sevastopol* (pron.: /<http://en.wikipedia.org/wiki/Help:IPA_for_English> ˌ <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>s<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> ɛ <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>v<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> ə <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>ˈ<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> s <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>t<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> oʊ <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>p<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> əl <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>/<http://en.wikipedia.org/wiki/Help:IPA_for_English>or / <http://en.wikipedia.org/wiki/Help:IPA_for_English>s<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> ə <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>ˈ<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> v <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>æ<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> s <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>t<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> ə <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>p<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> oʊ <http://en.wikipedia.org/wiki/Help:IPA_for_English#Key>l<http://en.wikipedia.org/wiki/Help:IPA_for_English#Key> / <http://en.wikipedia.org/wiki/Help:IPA_for_English>; previously * Sebastopol*; Ukrainian <http://en.wikipedia.org/wiki/Ukrainian_language>and Russian <http://en.wikipedia.org/wiki/Russian_language>: Севасто́поль; Crimean Tatar <http://en.wikipedia.org/wiki/Crimean_Tatar_language>: *Aqyar*) is one of two cities with special status<http://en.wikipedia.org/wiki/Cities_with_special_status>in Ukraine <http://en.wikipedia.org/wiki/Ukraine> (the other being the capital, Kiev <http://en.wikipedia.org/wiki/Kiev>), located on the Black Sea<http://en.wikipedia.org/wiki/Black_Sea>coast of the Crimean Peninsula <http://en.wikipedia.org/wiki/Crimean_Peninsula>. It has a population of 342,451 (2001).[1]<http://en.wikipedia.org/wiki/Sevastopol#cite_note-geohive-1>Sevastopol is the second largest port in Ukraine [*dubious <http://en.wikipedia.org/wiki/Wikipedia:Disputed_statement> – discuss <http://en.wikipedia.org/wiki/Talk:Sevastopol#Dubious>*], after the Port of Odessa <http://en.wikipedia.org/wiki/Port_of_Odessa>. [Wikipedia] http://ua.pycon.org/
participants (2)
-
Kirby Urner
-
michel paul