On Sun, Apr 11, 2010 at 21:03, Andrew Harrington <ahar...@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 <macqu...@ece.arizona.edu> > wrote: >> >> Edward Cherlin wrote: >>> >>> On Sat, Apr 10, 2010 at 09:33, Christian Mascher >>> <christian.masc...@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@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 > g...@cs.luc.edu for graduate administration > u...@cs.luc.edu for undergrad administration > ahar...@luc.edu as professor > > _______________________________________________ > Edu-sig mailing list > Edu-sig@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/ _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig