[Edu-sig] Why Python?

Edward Cherlin echerlin at gmail.com
Mon Apr 12 04:51:14 CEST 2010


On Sun, Apr 11, 2010 at 21:03, Andrew Harrington <aharrin at luc.edu> wrote:
> Well put David.
>
> My choices are always about me and a particular situation.  I would not
> teach J to beginners

I would use the +-*% (+-×÷) subset of J in first grade for arithmetic,
alongside Turtle Art (with stack tiles), and  Etoys, including
Scratch. By third grade, we could introduce programming in J/APL,
Logo/LISP, FORTH, Python, and Smalltalk. At some point, we could show
how each represents the same internal parse tree in quite different
textual forms. What the LISPers call "syntactic sugar". This is a
fundamental Computer Science concept.

> or to people not crunching a lot of mathematical stuff
> regularly, but for the professional statisticians and electronic traders I
> know, J is a fabulous language, and very worth the modest learning curve.

J would enable children to crunch data sets easily, allowing a radical
deepening of every subject. The learning curve would be very modest
when integrated with arithmetic and elementary science, and applied to
languages, history, geography, health, and gym.

> J is an interesting case.  Iverson did not totally open up the source.

There is a published version of the source for an earlier version of
J, without the IDE, graphics, and so on. I have a copy. There has been
some talk of creating a Free Software version, but no activity that I
know of. However, Iverson's son Eric is considering GPLing some
version of J in support of One Laptop Per Child and Sugar Labs. I need
to bother him about it again, because I am about to apply for two XO
1.5 units to use in preparing an introductory text on electricity. It
will use the built-in digital oscilloscope function (Measure) on the
XO, among other things, and will explain how to build and take data
from measuring instruments. I would be interested in working with
Pythonistas on a version using numpy and scipy.

> JSoftware still sells that to big users who want extra insurance for the
> future of their codebase, but the very powerful language is freely
> available.  The statisticians in my university are talking about dumping
> traditional massively expensive statistical environments, not for a switch
> to some Python tool, but to J and its freely available libraries.
>
> I fear I sometimes push Python in ways that can easily be interpreted as
> meaning for essentially all people and all situations.  I know that inside
> my head I am not thinking about so general a situation, but I think I could
> often communicate it better.
>
> Andy
>
> On Sun, Apr 11, 2010 at 6:50 PM, David MacQuigg <macquigg at ece.arizona.edu>
> wrote:
>>
>> Edward Cherlin wrote:
>>>
>>> On Sat, Apr 10, 2010 at 09:33, Christian Mascher
>>> <christian.mascher at gmx.de> wrote:
>>>
>>>>
>>>> Edward Cherlin wrote:
>>>>
>>>>>
>>>>> [sigh]
>>>>>
>>>>> Do math tables in a math array language.
>>>>>
>>>>> degrees =. i. 91  NB. 0..90
>>>>>
>>>>> radians =. degrees * o. % 180
>>>>>
>>>>> table =. |: degrees, 1 2 3 o./ radians
>>>>>
>>
>> <snip>
>>
>>>> Python is much nearer to standard Math-notation, that is a good thing.
>>>>
>>>
>>> LOL. Math notation is what mathematicians use, not schoolchildren.
>>> They are constantly inventing more of it. What you call math notation
>>> is known to mathematicians as "arithmetic".
>>>
>>> There is no standard math notation.
>>>
>>
>> I think what Christian means to say is that Python is much nearer to a
>> notation (pseudocode) that might be used by scientists and engineers who are
>> trying to express an idea involving computation, without relying on a
>> specific language.  Of course, there is no "standard" pseudocode, but if you
>> look at textbooks that are most successful at expressing algorithms this way
>> (my examples would be from engineering - Hachtel & Somenzi on Logic
>> Synthesis, Stinson on Cryptography) what you see is a notation very close to
>> Python.
>>
>> Pseudocode has to be self-explanatory.  There is no introductory chapter
>> on how to read it.

We consider pseudocode "self-explanatory" to those who already know
the syntax of a similar language. But it is not so, any more than
mousing and icons is "intuitive" for those who have never seen them. I
consider my J example _with explanatory comments_ to be simpler than
the Python I was starting from, where it must be assumed that students
have had a prior introduction to the syntax.

>> Likewise, an introductory computer language should be
>> close to self-explanatory.  It will be difficult to get math and science
>> teachers to accept it, if they have to make extra efforts explaining the
>> notation.  Getting math and science teachers to accept computation as a
>> vital part of their curricula is my current focus, so I wouldn't try to push
>> something like your example above.

There are a number of math, science, and Computer Science textbooks in
which APL or J is the math notation throughout, being taught only as
needed without interrupting the main sequence of ideas. I can give you
citations. There is very little done in this manner in any other
programming language. (If you have seen some, please send me the
information.) I much prefer this approach to the usual one of teaching
programming language syntax and semantics in a vacuum, with no
systematic application to anything.

>> Python is just a means to an end, the closest thing we have to pseudocode.

APLers tend to find pseudocode irritating, because the APL is shorter
and clearer to those who can read it.

>>  When someone who favors another language (typically Java) asks me why
>> Python, I find the comparison to pseudocode to be the best answer.  Specific
>> examples, like the absence of type declarations, tends to invite unthinking
>> reactions.  (Students will make too many errors.)  Even something as simple
>> as requiring correct indentation is not obvious to someone who hasn't used
>> Python.  (Although that one does have some appeal to teachers who have had
>> to read sloppy student code.)  Ultimately, it is word-of-mouth, one teacher
>> telling another, that I think will decide which language gets used.
>>
>> -- Dave
>>
>> ************************************************************     *
>> * David MacQuigg, PhD    email: macquigg at ece.arizona.edu   *  *
>> * Research Associate                phone: USA 520-721-4583   *  *  *
>> * ECE Department, University of Arizona                       *  *  *
>> *                                 9320 East Mikelyn Lane       * * *
>> * http://purl.net/macquigg        Tucson, Arizona 85710          *
>> ************************************************************     *
>>
>>
>> _______________________________________________
>> Edu-sig mailing list
>> Edu-sig at python.org
>> http://mail.python.org/mailman/listinfo/edu-sig
>
>
>
> --
> Andrew N. Harrington
>  Director of Academic Programs
>  Computer Science Department
>  Loyola University Chicago
>  512B Lewis Towers (office)
>  Snail mail to Lewis Towers 416
>  820 North Michigan Avenue
>  Chicago, Illinois 60611
>
> http://www.cs.luc.edu/~anh
> Phone: 312-915-7982
> Fax:    312-915-7998
> gpd at cs.luc.edu for graduate administration
> upd at cs.luc.edu for undergrad administration
> aharrin at luc.edu as professor
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
>



-- 
Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin
Silent Thunder is my name, and Children are my nation.
The Cosmos is my dwelling place, the Truth my destination.
http://www.earthtreasury.org/


More information about the Edu-sig mailing list