Re: [Edu-sig] Anyone interested in discussing the turtle module?
On Thu, Jun 2, 2011 at 08:05, Jeff Elkner j...@elkner.net wrote: Hi Edward, The book is licensed under the GNU/FDL and is available here: http://www.openbookproject.net/thinkcs Excellent. Thank you. I'm very familiar with Turtle Art, since a college intern working with me last Summer did a Sugar to Gnome port of it, which in now in the debian repositories: http://packages.debian.org/search?keywords=turtleart This Summer we will work to get that into Fedora. I should talk to someone about getting it into Ubuntu, to add to Logo, kturtleart, and the turtle art module in Etoys. ^_^ While as a classroom teacher I'm a huge fan of turtle art, Python's own turtle module is the tool of choice for my current intro college leve textbook project, since it runs on all major platforms and is part of the Python standard library. I am planning a multi-year grade school sequence to introduce CS ideas using TA, with a transition from TA to Python by way of Python blocks in TA. I will take a look at your work, and see whether it makes sense to treat it as a followup to mine, or rather to design mine to lead into yours. Among the topics I intend to emphasize are Church's Thesis, Gödel recursive functions, parse trees, stack programming (and hence RPN), language interpretation, and building a Turing Machine in pure TA. Thanks! jeff elkner open book project http://openbookproject.net On Wed, Jun 1, 2011 at 6:37 PM, Edward Cherlin echer...@gmail.com wrote: On Tue, May 31, 2011 at 16:59, Jeff Elkner j...@elkner.net wrote: Hi All, I'm working on an introductory CS book using Python with the turtle module, Under what license? Can we talk about using Turtle Art in Sugar as a starting point? it can call Python functions assigned to blocks, providing an easy transition from pure TA to pure Python. We have support for various other CS topics on TA blocks, including stack operations. I am planning to write a Turing machine in TA, using colored dots as cells on the tape and instructions in the transition table. but I'm finding the inability of turtle.Screen() to take screen size arguments to be a real pain. The screen size appears to depend on the screen size of the host environment, which means standardizing screen shots for the book becomes impossible. Any thoughts on this issue? It would be a huge help in promoting Python's use in education if we could make use of such a potentially fine module as the turtle module, but I'm finding it very difficult to write curriculum materials that use it since students don't have control over the turtle's screen in any easy to use way. Thanks! jeff elkner open book project http://openbookproject.net ___ 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://wiki.sugarlabs.org/go/Replacing_Textbooks -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://wiki.sugarlabs.org/go/Replacing_Textbooks ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] (egyptian fractions...) the turtle part: chaos.py
On Wed, Jun 1, 2011 at 17:52, Gregor Lingl gregor.li...@aon.at wrote: Am 01.06.2011 22:52, schrieb kirby urner: Hey Jeff, your question about controlling the turtle's screen might have been just the ticket in my attempts to control chaos, namely G. Lingl's chaos.py, which demonstrates sensitivity to initial conditions is a plus if you want your algebra to stay on the same page as itself, per equalities that won't be equal in the real world. I'm hoping to throw that into site-packages on the back end at OST, along with all those baseball stats in SQL. It's all done with turtles (Gregor's thing) and is brilliant, here's a link: Baseball stats and turtles? That's something I have been wishing for. I think that the best way to interest children in probability and statistics is sports, including published data and the book Money Ball. Also Nate Silver of the New York Times Five Thirty Eight blog, one of the best analysts of political races (though not of policy), started out in poker and sports. I would like to see your work, and discuss with you and various other people creating an OER with it in the Sugar Labs Replacing Textbooks project. http://www.4dsolutions.net/ocn/python/OST/chaos.py Hi Kirby, it's fine that you host a slightly amended version of chaos.py on your website. The original file is part of the demo that ships with Python and the turtledemo has been moved into the Lib-directory of the standard distribution. Some of these demo-scripts suffer from (more or less minor :-) ) quirks or deficiencies and could be amended in this or that way. I think that such amendments should go into Python 3.3. So if you or anybody else have any ideas, complaints or - as shown here - propositions or results, please let's discuss them, so the turtledemo can obtain not only a demo- but also an enhaced educational value. Best regards Gregor ___ 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://wiki.sugarlabs.org/go/Replacing_Textbooks ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Anyone interested in discussing the turtle module?
On Tue, May 31, 2011 at 16:59, Jeff Elkner j...@elkner.net wrote: Hi All, I'm working on an introductory CS book using Python with the turtle module, Under what license? Can we talk about using Turtle Art in Sugar as a starting point? it can call Python functions assigned to blocks, providing an easy transition from pure TA to pure Python. We have support for various other CS topics on TA blocks, including stack operations. I am planning to write a Turing machine in TA, using colored dots as cells on the tape and instructions in the transition table. but I'm finding the inability of turtle.Screen() to take screen size arguments to be a real pain. The screen size appears to depend on the screen size of the host environment, which means standardizing screen shots for the book becomes impossible. Any thoughts on this issue? It would be a huge help in promoting Python's use in education if we could make use of such a potentially fine module as the turtle module, but I'm finding it very difficult to write curriculum materials that use it since students don't have control over the turtle's screen in any easy to use way. Thanks! jeff elkner open book project http://openbookproject.net ___ 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://wiki.sugarlabs.org/go/Replacing_Textbooks ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] (egyptian fractions...) the turtle part: chaos.py
On Wed, Jun 1, 2011 at 18:56, Kirby Urner kur...@oreillyschool.com wrote: On Wed, Jun 1, 2011 at 2:59 PM, Edward Cherlin echer...@gmail.com wrote: Baseball stats and turtles? That's something I have been wishing for. I think that the best way to interest children in probability and statistics is sports, including published data and the book Money Ball. Also Nate Silver of the New York Times Five Thirty Eight blog, one of the best analysts of political races (though not of policy), started out in poker and sports. Yes, I remember your interest. Several of our courses touch on SQL here and there, and when it comes to having some canned, pre-existing tables on the back end, I can think of fewer richer data mines that the aggregating pool of baseball stats. I've floated this by other staff and know I have an ally in one of the editors. Question is: are baseball stats available for MySQL in some open source format, or locked up under lock and key by proprietary dot com pay-per-view services? Major League Baseball asserts copyright ownership over everything to do with the American and National Leagues that has not passed into the public domain. For books that means almost anything since 1922. I have no idea who owns rights to the Negro League data and to the data from other countries. I don't know the rules for databases in any detail, although I have heard of court cases declaring that facts cannot be copyrighted, only their specific expression, and that not always. You can buy the complete set of data for US baseball, going back about 150 years, on a CD-ROM. http://www.allprosoftware.com/sb/ has commercial products for seven sports, at $70 or so. We would also need soccer and cricket, at least, which this US company does not offer, and no doubt other sports and games. The Elo international chess rating system is a major work. It has spun off systems for many other tournament games. I have no idea who owns what internationally, given the vast interlocking structure of international governing bodies, leagues, and tournaments. In a Norman Rockwell future where America gives lip service to appreciating education, there'd be no problem freely accessing all these numbers, copying them to the home hard drive. Maybe this already exists. I'm in the beginning stages. Some of it is unquestionably available. I would like to see your work, and discuss with you and various other people creating an OER with it in the Sugar Labs Replacing Textbooks project. I'm trying to condense a lot of concepts into a dense compacted set of modules that aren't too daunting to read, and that don't hide a lot of functionality. The metaphor of a Turtle has been replaced with a Tractor in a field (ascii 2d matrix / array). Have you considered Unicode? This isn't about displacing turtle graphics, it's about creating an analogy that's even simpler (more primitive). It should still work for teaching many CS topics. Kirby Have you ever looked at Befunge, a 2D programming language with a mobile instruction pointer and instructions for changing its direction? It has been described as a cross between FORTH and Lemmings. ^_^ -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://wiki.sugarlabs.org/go/Replacing_Textbooks ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] superformula, generators
There are a great many such parametric formulae, such as hypergeometric sequences and their sums. You can get very interesting results by plotting the roots of a polynomial as the coefficients vary, without ever letting two roots coincide. It is possible to generate all knots and links in this way, by letting the graph wrap around. Given * A parameter t in the range [0,1] * A polynomial P = Σaᵢxⁱ for i in the range from 0 to n * Continuous but not necessarily differentiable complex-valued functions aᵢ(t), with aᵢ(0) = aᵢ(1) for which P has no repeated roots at any value of t, we can take the graphs of the n complex roots of P for each t, graph them in three dimensions, and then topologically wrap the whole thing around into a donut, joining t = 0 and t = 1, where the roots are the same, but may be permuted. The following diagram must be viewed in a monospace font in order to make sense. ___ _ \/ ___/\_ On Sat, May 21, 2011 at 17:11, Gregor Lingl gregor.li...@aon.at wrote: Hi all, recently I stumbled (once more) over a posting by our friend Daniel Ajoy about the superformula (I think it was in a Logo-Forum): http://en.wikipedia.org/wiki/Superformula On the other side Kirby wrote interesting suggestions about using generators. Now, weekend, bad weather, some sparetime, I assembled an implementation of a superformula-viewer using pygame. It runs with Python 2.6 or higher, also 3.x, of course You'll find it here for download: http://dl.dropbox.com/u/2016850/superformula.py or appended (which sometimes / for some of you) doesn't work well depending on the browser or whatever. The script uses generators for generating the pointlists of the graph of the superformula and also for generating colors for the segments of the graph-area. Morover I've prepared a qd slider class, which possibly doesn't use the canonical way of processing events in pygame but works fine for this application. Critical comments and feedback and also questions, of course, are welcome. Perhaps someone is willing to amend the docstrings, which suffer from my clumsy English and could well be more clear. Amendments of the code, espercially ones, which make it more readable and easier to understand, also. Useful for classroom use? Perhaps to difficult? Best regards, Gregor ___ 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. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] More cogitations on group theory...
On Sun, May 15, 2011 at 04:12, kirby urner kirby.ur...@gmail.com wrote: Groupoids, categories, rings (clock time), fields (modular arithmetic), vector spaces, and algebras require a bit more thought, but I am sure that they can be done. I mentioned a few Lie Groups, but I omitted the name. Toposes, topologies, tilings, and fractals would be interesting to investigate, too. That's perfect Ed. Good to hear for another die-hard group theory for children dude, a vanishing breed perhaps. It's just a fancy name for symmetry. MC Frontalot: Why do mirrors reverse left and right, but not up and down? John Hodgeman: They're just lazy. They could if they felt like it. Yeah, so what's really going on with mirrors? MC Frontalot is a nerdcore hiphop artist, and John Hodgeman is the author of More Information than You Require. He was also the PC in the Mac ads, and is sometimes on The Daily Show. My intended audience might actually be older people, including so-called retirement community students who have grand kids and want to have inter-generational topics. Many learned BASIC as kids (the Bill Gates generation). Another group you can massage into a field are integers multiplying modulo N, except not just any integers, only N's totatives. Back to permworld and Guido's exceedingly simple implementation of Euclid's Algorithm. def gcd(a,b): while b: a , b = b, a % b return a gcd(12, 4) 4 gcd(12, 5) 1 totatives12 = [m for m in range(12) if gcd(m, 12) == 1 ] totatives12 [1, 5, 7, 11] from random import choice (choice(totatives12) * choice(totatives12)) % 12 11 (choice(totatives12) * choice(totatives12)) % 12 1 (choice(totatives12) * choice(totatives12)) % 12 5 Asserting closer (group property): if (choice(totatives12) * choice(totatives12)) % 12 in totatives12: print (True) True if (choice(totatives12) * choice(totatives12)) % 12 in totatives12: print (True) True if (choice(totatives12) * choice(totatives12)) % 12 in totatives12: print (True) True If the target number is prime instead of composite (e.g. 23 instead of 12), then you have field properties, not just group properties i.e. + is closed as much as * is. You'll find me ranting on mathfuture how high schools bleep over any opportunity to introduce totative or totient in favor an an exclusive factor tree based approach to gcd. That made more sense before RSA was in every web browser. In a how things work curriculum, one would wish for more computer literacy. http://groups.google.com/group/mathfuture/msg/11005d0c9dc9eba2 (I've gotten more correspondence from Milo -- he wants to make sure we all know that Turing at Bletchley Park did *not* solve the German U-boat 5-rotor puzzle, doesn't like how much credit Turing gets). I'd like want to use John Zelle's graphics.py in the module where we draw some Wolfram checkerboard of black and orange rectangles ala New Kind of Science (NKS). We were doing that back in February 2007. http://mail.python.org/pipermail/edu-sig/2007-February/007736.html The new version gets Conway's Game of Life from the same turtle (called a tractor in farmworld, but the same idea, transferred to all-ASCII waves of grain). Even Mandelbrot is rendered in ASCII tractor art: http://mybizmo.blogspot.com/2011/05/lesson-planning.html These are ancient threads as far as edu-sig is concerned. We've always been trendy around here. :) Of course, in every case I am talking about extracting and presenting the fundamental ideas, and leaving proofs, notations, and all but the simplest calculations for later. Of course. I've got an older bunch but this isn't a course about Group Theory, it's a course about learning to program in the Python computer language, with a backdrop of standard Computer Science courses (Euclid's Algorithm chief among them, at least here on edu-sig). Kirby ___ 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
Re: [Edu-sig] Platonic / Archimedean / Catalan Solids in Blender
2011/4/22 Lee Harr miss...@hotmail.com: Hi; I know some of you like exploring geometry with Python. The latest Blender 2.57 includes a python add-on for generating a huge list of different types of geometric solids. This is huge progress. Back when Tron was made, there was only one special-effects company that knew how to generate the stellated polyhedra for the Bit, a character that existed in only two visual states. Judson Rosebush did it in APL. Now there are a number of software packages that allow you to do it by a simple command or menu selection. To try it out, you need to enable the add-on. - start Blender - click on File - User Preferences... - click on Add Ons near the top - click on Add Mesh on the left - check Add Mesh: Regular Solids (Also, look around. Many other cool things available.) - close User Preferences window - click on Main menu - Add - Mesh - Solids (Can select specific solid, or just choose solid. Panel will open on the left allowing real-time adjustments) So, now you may be interested in how this is done with Python. - in top menu, next to Help menu, mouse over until it says Choose Screen lay-out - click and choose Scripting - top left panel is Text editor, click Text - Open - browse to blender install directory - click 2.57 - scripts - add-ons - add_mesh_solid.py The scripts seem to be pretty well commented. You can make changes, click Run Script and a new menu will appear alongside the Solids menu running your changed code. ___ 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
Re: [Edu-sig] demented Python...
On Sat, Apr 2, 2011 at 14:16, kirby urner kirby.ur...@gmail.com wrote: In calling something demented I'm coming off the namespace used around genres of cartoon. Cartoons I'd consider demented: Pinky and the Brain and their hosts, the Animaniacs Ren and Stimpy Teenage Aqua Hunger Force (Kevin Altis of PythonCard a fan) Aqua Teen Hunger Force (Number 1 in the hood, man) SpongeBob SquarePants ... Spaceghost Coast-to-Coast Sealab 2021 Harvey Birdman, Attorney at Law Invader Zim South Park The Simpsons Futurama Family Guy Huri-kuri Suupaa Miruku Chan (Super Milk Chan) Bobobo-bo-bobobo Urusai Yatsura and, as you say, ..., in a tradition going back to Aristophanes, and to distant prehistory. Saw a flea Kick a tree, Fubba-wubba Fubba-wubba. Saw a flea kick a tree, Fubba-wubba John. Saw a flea Kick a tree In the middle of the sea, Singin' Old Blind Drunk John, Fubba-wubba John. (see clips on Youtube for any/all) Synonyms for demented: zany, surreal Relevant: links to grossology in EuroPython presentation: http://www.4dsolutions.net/presentations/connectingthedots.pdf (see string.Template Mad Libs) Likewise, Demented Python serves a didactic function, here to remind about the decorator: def sillystrip( f ): if f.__doc__: f.__doc__ = Your function has been hacked! else: f.__doc__ = You should always have a docstring. return f @sillystrip def square( x ): could also be a triangle return x * x def _test(): frank = 2 joe = square (frank) # frank is kinda square print(Hello Joe, Frank here.) print(square.__doc__) if __name__ == __main__: _test() Usage: RESTART Hello Joe, Frank here. Your function has been hacked! Then comment out the docstring in the def of square. RESTART Hello Joe, Frank here. You should always have a docstring. Defensive programming: Pseudocode Case: True:... Case: False:... Else: Print(This can't happen.) / ___ 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
[Edu-sig] Too simple (was Re: Interesting gotcha)
Einstein probably did not say, Everything should be made as simple as possible, but _no simpler_. However, somebody did, and somebody was right. One of the biggest problems in teaching programming is the constant pretense that we are not doing complicated mathematics, and the resulting attempt to hide the math. There is a lovely little book called Mathematics Made Difficult, whose premise is that refusing to tackle topics of modest complexity makes understanding far more difficult. With examples, of course. I have a similar complaint about freshman college physics courses that attempt to get by with no calculus. One of my favorite matth examples is how the use of elementary differential equations and Taylor series simplifies the definition of trigonometry. Define the exponential function by the equation y' = y which says that the growth rate of the function is proportional to its current value. Bring in examples from compound interest, biological growth, inflationary cosmology,... The function we are looking for is exp(x) = sum_0^\infty (x^n)/n! or any multiple of it. If you know that d(x^n)/dx is nx^(n-1), then you can see that the derivative of the power series for exp is itself. Now solve y' = -y (negative of exp) y'' = y (hyperbolic sinh and cosh functions) y'' = -y (sin and cos functions) in the same way, and look at the relations among their power series. Now derive e^(i\pi)+1=0 from e^(i\theta) = cos \theta + i sin \theta, which follows directly from the power series above, and then switch to linear algebra to get the sum, difference, and other formulae, and geometry to get the solutions of triangles. If anybody has difficulty with any of this I can point you to textbooks using these methods. If you would like a bit more of a challenge, we can do this all over again in elliptic and hyperbolic geometry, where we don't have similar triangles. ^_^ On Wed, Mar 30, 2011 at 13:50, Kirby Urner kur...@oreillyschool.com wrote: What is a Python module? #== Common answer is a file containing Python source code?, but I'm questioning whether that's sufficient definition. How about an importable .pyc or .pyd, with no .py in the picture. That's a module too, no? ** Import Star # When is import * a good idea? There's all this righteous moralistic hoopla that gets built up against specific idioms, to where eval( ) appears to be fighting for its very existence... Mary wants to keep her little lambda. So I'd rather phrase these in the positive, as in when IS it a good idea... e.g. to use semi-colons between statements. ** Another student question: #= Why does all([]) return True by default? Is this a case of half full versus half empty? ** Correcting a misconception # No, docstrings do NOT have to be triple quoted. Kirby ___ 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
[Edu-sig] The Undiscoverable (was Re: Interesting gotcha)
I am a big fan of discovery learning, and thus down on anything that interferes with discovery. I practice what I call defensive documentation on such problems, as do some others. See for example, The C Puzzle Book, and my Sugar Labs page http://wiki.sugarlabs.org/go/The_Undiscoverable We will need comprehensive, user-friendly documentation of gotchas in Python and Smalltalk for the Sugar project, for the benefit of teachers and students alike. On Tue, Mar 29, 2011 at 19:09, Carl Cerecke c...@free.org.nz wrote: My experience of confusing boolean expressions was the code: 1 == 2 in [2, False] False which, when parenthesised the two possible ways (1 == 2) in [2, False] True 1 == (2 in [2, False]) True results in sensible values (although the second one's sensibility is debatable) I couldn't figure it out quickly either. In fact, I ended up decompiling to byte code to figure out what was going on. As far as other 'gotcha's in addition to the ones already mentioned: Calling a file the same name as a module in the standard library. Import name will get the local file, not the stdlib one, which is confusing if you wanted the stdlib one. I've noticed that students will somtimes put import statements inside a function - right before they need to use whatever they imported: def area(r): import math return math.pi*r*r Cheers, Carl. On 29 March 2011 18:06, Michael H. Goldwasser goldw...@slu.edu wrote: To start a new thread, I'm always trying to keep a list of some common gotchas that beginning students run across when using Python, or things that teachers should keep in mind when teaching with the language. I have in mind commands that do not generate runtime errors, but are likely to lead to logical errors that are not apparent to students, and most of these are legal due to the very flexible nature of the Python language. Some classicss are data.sort # no-op data = data.sort() # bye-bye data result = result.upper # probably not what you expect if answer.isupper: # always true (but I entered a lowercase answer) This semester, I ran across a new one that took me quite some time to figure out what was happening. This started with a habit that too many students have of wanting to compare boolean values to True/False literals, rather than just using the boolean as a condition. That is, students seem drawn to the syntax if answer.isupper() == True: rather than the preferred if answer.isupper(): These complaints are more of style than substance, as the two versions are logically equivalent. But then a student came to me with code that wasn't behaving. The syntax they used was something akin to if x y == True: however the condition was not being triggered, even when we verified that x was indeed greater than y. You can try this out with explicit values as follows. if 5 4 == True: ... print Good You will find that the body is not executed. More directly, you can look at the conditional value directly as 5 4 True 5 4 == True False This baffled me for an hour before finally seeing what was happening. I'll leave this as a puzzle for readers (many of whom I'm sure will be quicker than I was to see the solution). For those who give up, I offer the following link as a spoiler. http://docs.python.org/reference/expressions.html#comparisons With regard, Michael +--- | Michael H. Goldwasser, Ph.D. | Associate Professor | Director of Computer Science | Dept. Mathematics and Computer Science | Saint Louis University | 220 North Grand Blvd. | St. Louis, MO 63103-2007 | | Office: Ritter Hall 108 | Email: goldw...@slu.edu | URL: http://cs.slu.edu/~goldwasser | Phone: (314) 977-7039 | Fax: (314) 977-1452 ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig ___ 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
Re: [Edu-sig] PSF Brochure - call for submissions
On Sat, Mar 12, 2011 at 21:36, Vern Ceder vce...@gmail.com wrote: Hi everyone, In chatting with Charlie Clark and others today, it came up that we aren't doing as much as we might to promote the successes of Python in education. Do you have the OLPC XO Sugar software on your list? Almost all of it except Etoys (Smalltalk) and SimCity is in Python. Pippy is a limited Python IDE for children, and Turtle Art lets users call Python in any amount from a single function call to an application, providing an even easier starting point for students. I can provide endless detail. ^_^ So I agreed to pass along to this list the call for content for the PSF brochure. Please feel free to write up your successes with Python and submit them. They will be considered for inclusion in the brochure as mentioned in the call for submissions below. Cheers, Vern Call for submissions for promotional brochure A new PSF project aims to create professional quality promotional material about Python. The first goal is to create a brochure to showcase the many ways Python is used. It will include use cases to highlight the ways the language allows users to accomplish their tasks both in educational and in professional settings. Project team members Marc-André Lemburg, Jan Ulrich Hasecke, and Armin Stross-Radschinski created this Plone marketing brochure for the German Zope User Group. It is the inspiration for this new project. Community feedback and awareness is vitally important for the success of this initiative, mainly to gather information to be used in the brochure. We are especially looking for interesting projects that can be discussed as use-cases. If you have any suggestions for information to include in the brochure, please contact Marc-André Lemburg or send an email to brochure AT getpython DOT info. UPDATE: more information about the brochure, including a newsletter, can be found here - http://brochure.getpython.info/ -- Vern Ceder vce...@gmail.com, vce...@dogsinmotion.com The Quick Python Book, 2nd Ed - http://bit.ly/bRsWDW ___ 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
Re: [Edu-sig] Mosaics using Python...
Your generalized Fibonacci sequences and generalized Pascal's Triangles are linear combinations of the standard sequences and triangles with shifts. m,n,m+n,m+2n, 2m+3n... is the sum of the sequences m,0,m,m,2m,... 0,n,n,2n,3n,... and similarly, the coefficients of x, y, and z in this triangle are all Pascal numbers. x, y, z x, x+y, y+z, z x, 2x+y, x+2y+z, y+2z, z x, 3x+y, 3x+3y+z, x+3y+3z, y+3z, z On Fri, Feb 4, 2011 at 15:10, kirby urner kirby.ur...@gmail.com wrote: Mosaics using Python generators... by K. Urner 4dsolutions.net based on a thread on mathfuture: http://groups.google.com/group/mathfuture/msg/9d098696c2ea7426?hl=en Just as the Fibonacci sequence generator might be seeded by any two integers to start off, so might Pascal's Triangle be seeded with any beginning row. When these sequences are formed into tabular or other areal displays, such that information may be gleaned from rows and columns, these formats may be called mosaics in some of the literature. def fibonacci( a=0, b=1): Generator for a Fibonacci sequence starting from any two integers See: Online Encyclopedia of Integer Sequences http://oeis.org/A45 gen = fibonacci() [next(gen) for i in range(11)] [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] gen = fibonacci(-1, 2) [next(gen) for i in range(11)] [-1, 2, 1, 3, 4, 7, 11, 18, 29, 47, 76] while True: yield a b, a = a + b, b def pascal( therow = [1]): Generator for Pascal's Triangle starting from any top row Enter list for top row See: Number Mosaics by Adi R. Kanga (pg. 29, Fig 20) http://bit.ly/gDmmAo gen = pascal([15, 20, 6]) next(gen) [15, 20, 6] next(gen) [15, 35, 26, 6] next(gen) [15, 50, 61, 32, 6] next(gen) [15, 65, 111, 93, 38, 6] next(gen) [15, 80, 176, 204, 131, 44, 6] next(gen) [15, 95, 256, 380, 335, 175, 50, 6] while True: yield therow therow = [ i + j for i, j in zip(therow + [0], [0] + therow) ] def _test(): import doctest doctest.testmod() if __name__ == __main__: _test() ___ 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
Re: [Edu-sig] open source admin in academia? (editorial)
On Tue, Jul 20, 2010 at 04:34, kirby urner kirby.ur...@gmail.com wrote: I like to see universities taking the lead in some way... (they call it non-commercial), eating their own dog food. Same thing with hospitals. They seem to not want to develop much inhouse, even for research -- or maybe I've not been inside the right hospitals? You'd think the open source ethic and health care would be more hand in glove. MUMPS (Massachusetts General Hospital Utility Multi-Programming System), now sometimes just M, is the basis for the VA and DoD hospital systems. it was taken to Free Software via the Freedom of Information Act, and is now available as openVistA. This is a full medical system suite, with more than 200 modules for imaging, medical records, billing, pharmacy, and so on. M is unusual among programming languages for including its own database engine. Its more recent competitor is OpenMRS (Open Medical Records System) being developed for Partners in Health in Haiti and other such organizations. Harvard has a hand in its development. Kirby PS: I came across this useful discussion on Dr. Chuck's blog (he posts here sometimes -- we met at Pycon2009 in Chicago). Reading: http://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1000context=opensource ___ 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
Re: [Edu-sig] open source admin in academia? (editorial)
It frequently happens that the Computer Science Dept. uses Free Software for almost everything, and everybody else uses proprietary software. CS can't talk to the others effectively, because they are just geeks. I have more hope for elementary schools. There are exceptions, such as Moodle. On Mon, Jul 19, 2010 at 18:30, kirby urner kirby.ur...@gmail.com wrote: I'm becoming more aware of the fact that one reason universities need to charge those tuitions is to pay licensing fees to private vendors who provide them with such basic services as the ability to store and schedule classes, record student enrollment and grades, record instructors etc. The catalog needs to be published on-line. There might be a lot of extended education options, e.g. non-credit courses open to anyone willing to sign up. Some of these proprietary programs are pretty old, lack features departments need, and so various intermediating applications grow up around the edges to fill in the gaps. Maybe the big dino system doesn't record student evaluations for example, or keep track of which courses are in the pipeline, but still haven't found a place in the sun. One would think that universities in particular, which pride themselves on having advanced knowledge of state of the art skills, would band together in various consortia to pool resources and eat their own dog food as it were. A school that teaches medicine actually practices medicine (the teaching hospital). Shouldn't schools that teach computer science and business administration actually walk the talk in some way? Maybe many of them do, I don't actually know. To outsource something so core to one's business, to pay licensing fees while not having the power to make design modifications, just seems more than a tad on the ironic side. It's like a bank outsourcing everything it does around money. I realize not every college or university wants to reinvent the wheel around something so basic, but I do wonder to what extent there's some open source sharing going on, around these core utilities. Are universities so competitive they won't share? So does that mean they all pay the same licensing fees to use the same private vendor offerings? I remember Zope / Plone and SchoolTool. http://en.wikipedia.org/wiki/SchoolTool Is there something even more comprehensive that's out there, suitable for college and university use? Does it come in modularized components? Is it an over-the-web database? Or do few if any universities really eat their own dog food? Like I say, I'm new to this business, just trying to get oriented. Kirby ___ 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
Re: [Edu-sig] Directed Graphs data to analyze the World Cup
I think that learning to analyze sports statistics is the best possible introduction to the math, which can then be applied to politics. That plus poker was Nate Silver's path to starting FiveThirtyEight.com. On Wed, Jul 14, 2010 at 20:02, Daniel Ajoy da.a...@gmail.com wrote: http://www.maths.qmul.ac.uk/~ht/footballgraphs/index.html Daniel ___ 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
Re: [Edu-sig] rewriting examples in python
On Thu, Apr 22, 2010 at 12:11, roberto robert...@gmail.com wrote: On Fri, Apr 16, 2010 at 1:26 AM, Edward Cherlin echer...@gmail.com wrote: On Thu, Apr 15, 2010 at 11:36, roberto robert...@gmail.com wrote: On Thu, Apr 15, 2010 at 5:52 AM, Edward Cherlin echer...@gmail.com wrote: I am more interested in reimplementing such examples in Turtle Art, and in having a module to translate to Python automatically. Since TA implements each tile in Python, and the source code is provided, this should be an easy exercise. i agree; also, i started this thread since i did not find any *introductory* and rich enough resource a school student can use to learn TA or turtle module or, broadly speaking, turtle programming in Python (if i am wrong, please tell me) There are books, software modules, and other materials. We can work together on a bibliography, and call on the rich experience of Seymour Papert's Logo group and Alan Kay's Smalltalk group, among others. Walter Bender and I are working on such things. if nobody else did something in this regard, i'll be happy to do some work in this direction as soon as the school end, early june; Late June or July for me. I have a temporary Census job. What topics are you interested in covering? I'm working on math and Computer Science topics. well, i am interested in working with students on introductory CS topics; by the way, this will be useful to introduce also basic geometry topics; We can do a wide range of geometry, including Euclidean and non-Euclidean synthetic geometry, analytic geometry, and graphing functions; data capture; CS topics such as parse trees, control structures, data structures, stacks, cellular automatons, and Turing machines. Then we show older children the Python source, and how to implement their own Python TA tiles, and encourage them to join the TA community and improve it, or to go on to the wider Python and Free Software communities. after that, the interest of the students will lead their learning, whose directions i cannot predict by now ... where will you publish your tutorial/manual ? http://www.flossmanuals.net/ thank you in advance of course, since my students are very young and with no previous programming experience, i'd like to start with TA Good choice. let me know also if anyone is doing something similar, to prevent double work thank you again On Wed, Apr 14, 2010 at 10:33, Christian Mascher christian.masc...@gmx.de wrote: roberto wrote: hello, i found this very famous book Turtle Geometry: The Computer as a Medium for Exploring Mathematics (Artificial Intelligence) by Harold Abelson and Andrea diSessa and i was wondering if anyone of the turtle experts has ever rewritten in python the logo examples in the book; Nobody has answered, so probably not. Nevertheless I think its a good idea to try this. It will probably turn out to be perfectly feasible to do these examples in Python with the turtle module by Gregor Lingl. And a good exercise too. If you run into problems let us know. --Christian i am more interested in the turtle spirit than in the logo language, so i'd like to use python directly along with the book itself thank you very much in advance -- roberto -- 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
Re: [Edu-sig] rewriting examples in python
On Thu, Apr 15, 2010 at 11:36, roberto robert...@gmail.com wrote: On Thu, Apr 15, 2010 at 5:52 AM, Edward Cherlin echer...@gmail.com wrote: I am more interested in reimplementing such examples in Turtle Art, and in having a module to translate to Python automatically. Since TA implements each tile in Python, and the source code is provided, this should be an easy exercise. i agree; also, i started this thread since i did not find any *introductory* and rich enough resource a school student can use to learn TA or turtle module or, broadly speaking, turtle programming in Python (if i am wrong, please tell me) Walter Bender and I are working on such things. if nobody else did something in this regard, i'll be happy to do some work in this direction as soon as the school end, early june; What topics are you interested in covering? I'm working on math and Computer Science topics. of course, since my students are very young and with no previous programming experience, i'd like to start with TA let me know also if anyone is doing something similar, to prevent double work thank you again On Wed, Apr 14, 2010 at 10:33, Christian Mascher christian.masc...@gmx.de wrote: roberto wrote: hello, i found this very famous book Turtle Geometry: The Computer as a Medium for Exploring Mathematics (Artificial Intelligence) by Harold Abelson and Andrea diSessa and i was wondering if anyone of the turtle experts has ever rewritten in python the logo examples in the book; Nobody has answered, so probably not. Nevertheless I think its a good idea to try this. It will probably turn out to be perfectly feasible to do these examples in Python with the turtle module by Gregor Lingl. And a good exercise too. If you run into problems let us know. --Christian i am more interested in the turtle spirit than in the logo language, so i'd like to use python directly along with the book itself thank you very much in advance ___ 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 -- roberto -- 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
Re: [Edu-sig] using Python as a calculator
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 Sorry, I don't know J (Kirby does), but this is exactly the reason I prefer Python. Readability counts (for me). That's what they said to Fibonacci when he tried to explain why Arabic numerals were better for math than Roman numerals. But Roman numerals are better in readability and algorithmic complexity if you rarely do anything but add and subtract, as merchants did before interest payments became critical. Roman numerals are precisely equivalent to abacus notation. It is odd that the distinction between math/science programming and business programming is nearly a thousand years old, but there it is. In fact, APL is the only computer language that uses the same symbols, + - × ÷, as first grade arithmetic texts. (Presumably, with the acceptance of Unicode, this will change someday.) Back in the 1960s, Ken Iverson successfully taught teachers how to teach children arithmetic on IBM Selectric terminals connected to a loaned 360 mainframe. An addition table up to 10 is simply numbers =. i. 11 NB. 0..10 numbers +/ numbers or, with a bit more complexity or a bit more simplicity, depending on your viewpoint, +/~ i. 11 where f~ x is x f x . For creating a table, most people would probably use a spreadsheet anyway, but as I happen to know Python, I use it for such tasks from time to time. I can even remember the syntax without having used Python for months. Don't think that would be the case with J. This turns out not to be the case. The complete syntax table for J consists of 12 lines. You are talking glibly about a topic on which you have no information. Not very inclined to learn that. Obviously. where =. is assignment i. creates a list of consecutive numbers starting at 0. Who on earth would think of that without a manual? And without a lesson? Do you believe that Python syntax is intuitive, and can be guessed without a manual or lessons? In i., the i stands for index. It is easy to learn, and reasonably mnemonic. NB. is the comment marker o. x is pi times x Why not pi? Why? % x is reciprocal of x, so o. % 180 is pi/180 Don't think that is very useful. These objections are trivial and uninformed. You aren't a mathematician, you don't like math and math notation, so there is nothing more to say, except please stand out of the way of people who can benefit from it and want it. |: is transpose Another very special symbol. , appends an array to another. It turns a list into a table in order to match dimensions. Lost you there... You can append a table to a table if they have a dimension in common. You can't append a table to a list unless the list is turned into a one-row table. 1 2 3 o. x gives sine, cosine, tangent of x Why don't they use sin(), cos(), tan() like the rest of the mathematical world? / creates a table with the given function (o.) applied to two list arguments The result is a 91 row, 4 column table of angles and trig function values. Impressive ;-)) I can easily give you a short sequence of lessons leading to this level, introducing some other arithmetic, transcendental, and array-handling functions along the way, and a little more about operating on functions to define new functions. 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. Polish: + 1 2 Infix: 1 + 2 Reverse Polish: 1 2 + Reverse Polish is one of the two standard calculator input systems, the one used by engineers, from HP. Polish is standard in LISP and combinatory logic. Neither requires parentheses. Infix notation, as on TI and related calculators, requires parentheses, and is much more difficult for complex expressions. I like to learn new languages - up to a point. I don't see the added value of J in this case. I like to learn languages a lot more than you, then. I don't consider anybody educated in computing without knowing something of languages from the LISP, APL, FORTH, OOP, and scalar language families. Just my 2c Christian ___ 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
Re: [Edu-sig] using Python as a calculator
On Sun, Apr 11, 2010 at 17:51, kirby urner kirby.ur...@gmail.com wrote: Sorry, I don't know J (Kirby does), but this is exactly the reason I prefer Python. Readability counts (for me). That's what they said to Fibonacci when he tried to explain why Arabic numerals were better for math than Roman numerals. But Roman numerals are better in readability and algorithmic complexity if you rarely do anything but add and subtract, as merchants did before interest payments became critical. The chapter on interest calculations in Liber Abaci was particularly important. Roman numerals are precisely equivalent to abacus notation. It is odd that the distinction between math/science programming and business programming is nearly a thousand years old, but there it is. Fibonacci's Liber Abaci introduced the Indian/Arabic number system, based on the abacus. No, in spite of the title, not based on the abacus, any more than calculus is based on pebbles. http://faculty.evansville.edu/ck6/bstud/fibo.html Though the title of the book suggests the use of the abacus, in fact Fibonacci freed arithmetic from calculations using the abacus. The place value system corresponds to the rods of the abacus, with the zero corresponding to a rod with no beads (a place holder). Roman numerals, in contrast, have nothing to do with abacus notation and have no place value e.g XIV for 14 or MMMCCC for 3300. The Japanese, Chinese, and Roman abacI use beads or pebbles (calculi) with values of 1 and 5. http://en.wikipedia.org/wiki/Abacus http://en.wikipedia.org/wiki/Roman_abacus The Roman notation uses letters with values of 1 and 5 times a power of 10, so that one can write down the Roman numeral for an abacus setting simply by writing the letter corresponding to each calculus on the board, or put a number on the board by placing a pebble for each letter. Adding and subtracting Roman numerals is isomorphic with manipulating an abacus. 7 -- 5+2 -- VII 3 -- 0+3 -- III VII + III -- VI -- VV -- X 5+2 + 0+3 -- 5+5 -- 0+1,0+0 and similarly for LXX + XXX etc. http://www.novaroma.org/via_romana/numbers.html Roman numbers suck for arithmetic operations of any kind IMO. numbers =. i. 11 NB. 0..10 ...similar to Python's range built-in. These objections are trivial and uninformed. You aren't a mathematician, you don't like math and math notation, so there is nothing more to say, except please stand out of the way of people who can benefit from it and want it. One could argue any computer language comprises a math notation. In the mathematical theory of languages, we can regard any Turing-complete symbol-and-rule set as a way to express all of mathematics, but that is outside the question of what language to teach or publish in, when the aim is communication with humans. Also, one could argue that all creatures are mathematicians in some innate way (Keith Devlin's point). So they are, beyond argument. So why are we telling them how they want to do math and computing? The mindset of When I want to hear your opinion, I'll tell it to you is what I hate most about education systems of the past and present. Carving out a special caste of humans and calling them mathematicians is a practice within various institutions. Mathematicians are not a caste, but a guild with stiff entry requirements. I am not a full member, since I quit after my BA and went to teach in the Peace Corps. I've noticed many of these institutions promote a kind of snobbery, but then such is the human ego. See The Theory of the Leisure Class, by Thorstein Veblen, and Buddhist teachings on no-self. Reverse snobbery is also a feature of human ego. You can append a table to a table if they have a dimension in common. You can't append a table to a list unless the list is turned into a one-row table. Note that numpy shares some of APL's and J's ability to shape data into multi-dimensional objects with rank. Yes. It would be more productive to discuss numpy here rather than fight a meaningless rwar. import numpy a = numpy.array(range(10)) a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) a.reshape((2,5)) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) a = a.reshape((2,5)) a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) numpy.concatenate((a,a)) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) numpy.concatenate((a,a), axis=1) array([[0, 1, 2, 3, 4, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 5, 6, 7, 8, 9]]) I can easily give you a short sequence of lessons leading to this level, introducing some other arithmetic, transcendental, and array-handling functions along the way, and a little more about operating on functions to define new functions. Python is much nearer to standard Math-notation, that is a good thing. LOL. Math notation is what mathematicians use, not schoolchildren. Math notations, like music notations, are the common
Re: [Edu-sig] Why Python?
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
Re: [Edu-sig] [ANNC] pynguin-0.7 (python turtle graphics application)
2010/4/11 Lee Harr miss...@hotmail.com: Pynguin is a python-based turtle graphics application. It combines an editor, interactive interpreter, and graphics display area. It is meant to be an easy environment for introducing some programming concepts to beginning programmers. http://pynguin.googlecode.com/ Lee, are you familiar with the Turtle Art activity in Sugar for the OLPC XO, also written in Python? It provides blocks for integrating Python code. You might want to talk to Walter Bender of Sugar Labs about his plans for expanding TA, some of which match yours. I have been thinking about how to integrate all of this into a curriculum where we would apply turtle graphics to many subjects starting in first grade or perhaps earlier, and later teach programming and Computer Science within this environment rather than purely as text. This release changes the method of starting and stopping the separate code-running threads. It should be much less susceptible to lock-ups and crashes, though I am still experiencing occasional problems. Pynguin is tested with Python 2.6.4 and uses PyQt (4.6) for its GUI elements. Pynguin is released under GPLv3. Changes in pynguin-0.7: - fixed deadlock when running with many pynguins at instant speed - new threading model greatly reduces problems with lock-ups - added more multi-pynguin examples - added commands turnto('random') and lineto('random') - added more random color possibilities ('rlight', 'rmedium', 'rdark') - allow named colors and html-style colors - added command clear() - added equation plotting examples - cartesian and polar - re-center on (0, 0) when moving view splitter - added svg/pdf worksheets Changes in pynguin-0.6: - fixed crash when using new_pynguin() - fixed possible crash during startup (due to race condition) - added goto('random') and xy() to easily get coordinates - added keyword args for fill -- fill(color=..., rule=...) - added easier access for fillcolor 'random' - added examples using multiple pynguins - remove any added pynguins when using reset() - set window title when using Save As... - better error messages when loading file with errors - whitespace cleanup when saving files - render About image and title at runtime - more examples Changes in pynguin-0.5: - catch errors when processing graphic move queue - capture and hold stdout and stderr - call str() on argument to write - guard against sending non-int to color _ Hotmail: Trusted email with Microsoft’s powerful SPAM protection. https://signup.live.com/signup.aspx?id=60969 ___ 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
Re: [Edu-sig] [ANNC] pynguin-0.7 (python turtle graphics application)
On Sun, Apr 11, 2010 at 21:52, kirby urner kirby.ur...@gmail.com wrote: 2010/4/11 Lee Harr miss...@hotmail.com: Pynguin is a python-based turtle graphics application. It combines an editor, interactive interpreter, and graphics display area. I like the idea of using turtles to plot graphs. Illustrated at http://wiki.sugarlabs.org/go/Activities/Turtle_Art#maths . I have done more examples. Replacing graphing calculators with Python is easier when there are simple plot functions available (yes, I know about matplotlib, Sage...) Curious how much of the Standard Library turtle model gets used here. Is the turtle stuff all rewritten from scratch. Kirby ___ 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
Re: [Edu-sig] using Python as a calculator
[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 where =. is assignment i. creates a list of consecutive numbers starting at 0. NB. is the comment marker o. x is pi times x % x is reciprocal of x, so o. % 180 is pi/180 |: is transpose , appends an array to another. It turns a list into a table in order to match dimensions. 1 2 3 o. x gives sine, cosine, tangent of x / creates a table with the given function (o.) applied to two list arguments The result is a 91 row, 4 column table of angles and trig function values. I can easily give you a short sequence of lessons leading to this level, introducing some other arithmetic, transcendental, and array-handling functions along the way, and a little more about operating on functions to define new functions. J is no-charge software from JSoftware.com. We are discussing the possibility of a GPLed version. When you do such function tables, it is extremely helpful to show the first differences. The differences of sine are approximately proportional to cosine, and of cosine are proportional to the negatives of sine. On Thu, Apr 8, 2010 at 10:43, kirby urner kirby.ur...@gmail.com wrote: I think Guido was wise to start his tutorial by showing how we might use Python as a calculator. We might assume many students in this day and age are quite familiar with this device, and even if they're not, the text might project one, show a picture on the screen, if what these things used to look like (still do). However, one thing calculators lack over the old wood pulp textbooks are trig tables with multiple rows showing a lot of data at the same time. Their small chat window does not permit much data to be seen at one time. Back in the day, a student could run her finger down the rows, as the number of angular degrees increase from 0 to 60 and onward to 90, perhaps all the way around to 360. Going across the row, one would have sine and cosine, perhaps tangent. Having all the data visible at once, or spread across a few pages, inspired some insights and understanding, as one could see the trends in the numbers, plus these click stop rows where the numbers would suddenly be super easy, like 1/2 and 1/2 for both sine and cosine. Calculators don't give us that kind of output, but earlier office computing machines did have paper i/o, called a tape, usually a scroll mounted on a spool and fed through a small printer. As one added numbers, one printed to tape, perhaps a running total. The tape itself was a valuable item (especially once it had the data on it). Large computers came with line printers that hit on continuous feed paper with holes along both sides, often with green and white stripes. I will not try to recapitulate the long history of printing devices, except to point out that computers inherited them while slide rules and calculators did not. The equivalent in Python is stdout and/or some file in storage, on the hard drive or memory stick. The program output shown below would be an example of this kind of i/o. Notice that unless a file name is given (optional), the data is to stdout. I'm going to do a full 90 degrees, just to remind myself of the patterns students got in the old days, before trig tables were replaced with calculators, much as dial watches were replaced with digital ones (not necessarily a smart move in all cases). imp.reload(newprint) module 'newprint' from 'C:\Python26\lib\site-packages\newprint.py' newprint.trigtable(range(91), trigtable.txt) The contents of trigtable.txt: 0 1.0 0.0 0.00e+00 1 0.999847695 0.017452406 1.745506e-02 2 0.999390827 0.034899497 3.492077e-02 3 0.998629535 0.052335956 5.240778e-02 4 0.997564050 0.069756474 6.992681e-02 5 0.996194698 0.087155743 8.748866e-02 6 0.994521895 0.104528463 1.051042e-01 7 0.992546152 0.121869343 1.227846e-01 8 0.990268069 0.139173101 1.405408e-01 9 0.987688341 0.156434465 1.583844e-01 10 0.984807753 0.173648178 1.763270e-01 11 0.981627183 0.190808995 1.943803e-01 12 0.978147601 0.207911691 2.125566e-01 13 0.974370065 0.224951054 2.308682e-01 14 0.970295726 0.241921896 2.493280e-01 15 0.965925826 0.258819045 2.679492e-01 16 0.961261696 0.275637356 2.867454e-01 17 0.956304756 0.292371705 3.057307e-01 18 0.951056516 0.309016994 3.249197e-01 19 0.945518576 0.325568154 3.443276e-01 20 0.939692621 0.342020143 3.639702e-01 21 0.933580426 0.358367950 3.838640e-01 22 0.927183855 0.374606593 4.040262e-01 23 0.920504853 0.390731128 4.244748e-01 24 0.913545458 0.406736643
Re: [Edu-sig] Python projects for CS1
challenge multiple times, but with new tools and/or concepts each time, is what many teachers call spiraling as you likely know. Pre-written code may be called scaffolding if you wanna sound like you know the shoptalk. In the high school math teaching world, John Saxon is often cited for making especially strategic use of spiraling although his detractors would consider this unmerited crediting of an interloper (something of a maverick that guy -- never met him). I mention all this by way of background, in that I cite him in my Notes for Teachers for Pycon 2009 re spiraling FYI: http://www.4dsolutions.net/presentations/py4t_notes.pdf On another note, thanks to Edward Cherlin (and Maria too) for jumping in on math-thinking-l this month. That's a functional programmers' hangout and any incursion of imperative programmers tends to generate some ire -- kinda like West Side Story? In the old days, we'd find some eligible prince or princess to marry into the Great Lambda tribe (as in lambda calculus). I've been bugging philosophers to devote some bandwidth to this feuding but they're busy with paper and pencil logic, can't be bothered with CS apparently. Maybe I'm being overly judgmental, and anyway it's not like there's anything much at stake. Or is there? -- math teachers like Maria get caught in the cross-fire, Gary too for that matter, though he seems to hold his own. Maybe the floodgates would open for more funding of discrete maths at the high school level, if only the engineers weren't seen to be fighting amongst themselves so much? Nothing scares away wannabe investor-sponsors so much as feuding and acrimony eh? Speaking of Gary (Litvin), he got the ball rolling by commenting on corestandards.org, a K-12 standards-building initiative purportedly with real state governors on board. He sees signs that discrete math topics are losing ground, not gaining it. But that's perhaps more testament to an unimaginative and uninformed bureaucracy that has yet to achieve a strangle-hold? One may fondly so hope I suppose. Over on math-teach, I mention that our Pauling Center has not been consulted, and we're at the epicenter (evidence that these bureaucrats have gone way out on a limb?). http://mathforum.org/kb/message.jspa?messageID=7013136tstart=0 See math-thinking-l archives if wanting more substance behind these ramblings (wanderings). Bill, if you're still with me, I look forward to poking around in more of your exercises and may well have more to say, hope OK. Kirby ___ 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
Re: [Edu-sig] Computer Science For Kids Book Announcement
Not bad. There are things we can improve. For example, a variable is less like a nickname referring to one thing than a pronoun that can refer to different things each time it is used. I do not have time today for a complete review, but I would like to do it sometime soon, in part because I have a different approach to teaching nine-year-olds Computer Science, and because I am promoting the idea of replacing printed textbooks with computers (costing less) and free electronic learning materials. We don't have a good name for them, because they are based on software such as Turtle Art or Smalltalk, and are clearly neither texts nor books. On Fri, Mar 19, 2010 at 00:28, Andre Lessa an...@lessaworld.com wrote: Hey Python Community, I just self published this brand new book and I'm making its PDF available for (free) download on my web site. My goal is to explain some very basic fundamentals of computer science to kids who are starting to learn about computers at school and/or at home. For the tiny hints of programming, I referenced Python. If you (or a kid you know) ends up having access to this book, please send your feedback (suggestions/corrections) directly to me so I can start thinking about the next edition and how I can make it even cooler for kids. Thanks! Andre Lessa You can download the entire book here (no registration required). Computer Science For Kids http://www.LessaWorld.com/kids/ ___ 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
Re: [Edu-sig] Method / Functions - What are the differences?
On Wed, Mar 10, 2010 at 09:45, John Posner jjpos...@optimum.net wrote: [ cross-posting to edu-sig ] Bruno (and anyone else interested) -- As I promised/threatened, here's the *start* of a write-up on properties, aimed at non-advanced Python programmers: http://www.jjposner.net/media/python-properties-0310.pdf I'm interested in corrections, of course. But I'm also interested in opinions as to whether this somewhat lengthy treatment is worth the effort -- does it improve on existing write-ups? I find that it will explain things to those who already understand most of the concepts. However, I felt as though I were being led through a maze without knowing where we were headed. This suggests that the concepts can be re-ordered in a manner that will help your readers more, and then we can refactor further. (Yes, you can apply Extreme Programming concepts to create Extreme Documentation, including consultations with users, pair or group writing, frequent refactoring, and more, as at FLOSSManuals.net.) Who is your expected audience? Tx, John ___ 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
Re: [Edu-sig] Feb 24 cs-in-math Elluminate meeting (Math 2.0)
On Thu, Feb 25, 2010 at 19:33, kirby urner kirby.ur...@gmail.com wrote: I briefly blogged about our meeting last night. http://mybizmo.blogspot.com/2010/02/learning-on-line.html Thank you. I posted Ed Cherlin's Chinese + Arabic sig Japanese/Urdu in language, but you are correct as to writing system. as a test of the unicode interface, even though he couldn't find Elluminate for his distro, so had to bail. Maria D. did a good job of hosting, and we were graced with the presence of one of the Great Lambda heavyweights, Peter Henderson. http://www.math-in-cs.org/ I am a great admirer of the tribe and the languages, although I also enjoy the UnLambda language. The Great Lambda worshipers are a tribe to our north, inherit through LISP, LOGO and Scheme, although that middle language donated its turtle to the OO camp, also working in Ruby right? And in Turtle Art, written in Python, on Sugar. http://www.rubyquiz.com/quiz104.html http://blog.notahat.com/posts/4 Re: Great Lambda worshipers: talking about the functional programming camp, not wanting to pollute thinking like a mathematician with the mutable variables of the computer scientists. There are many kinds of mathematician. I worked a bit with Ken Iverson of APL and J fame on how to add combinatory logic abstraction to J and other languages, and published a paper on it. J supports several flavors of Computer Science and math, including FP, OO, and traditional APL. Python has little lambda (a token lambda). We seemed pretty much in agreement during this meeting that Computer Science is going away as a high school discipline, leaving only Mathematics (cite: death of CS AP test, only a pale shadow of its former self). I am working on Third Grade CS, in Turtle Art and Smalltalk. The only question seems to be whether folding CS into Math means keeping some programming, or going with the New Zealand unplugged route (CS on paper). I'm not sure even New Zealand is going the NZ unplugged route. Nat Torkington has a say: http://nathan.torkington.com/ Lets see how students vote with their feet on that one, i.e. it's not entirely up to the teachers. Amen, brothers and sisters. That's my greatest hope for giving children Internet access on XOs, that we will be able to hear from them, and they will be able to hear from each other in numbers for the first time. Kirby ___ 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
Re: [Edu-sig] [Math 2.0] Math Thinking community, meet Math 2.0 network! February 24th webinar
I've been wishing for this. Thanks. I signed up for the mailing list. It turns out that the Java Web Start software is not available for Debian or Ubuntu Linux, so I can't join in tonight. *{%{[ On Wed, Feb 24, 2010 at 10:43, Maria Droujkova droujk...@gmail.com wrote: Wednesday, February 24th 2010 we will meet in the LearnCentral public Elluminate room at 6:30pm Pacific / 9:30pm Eastern time: https://sas.elluminate.com/d.jnlp?sid=lceventspassword=Webinar_Guest This event, in the Research, Grants and Publications Track, is devoted to the Math in Computer Science community. As a part of the introduction, Maria Droujkova will interview Peter Henderson, a co-founder of the community, about their history, goals and projects. We will then take a look at an active K-12 group within the community, The Teach Group, with Rex Page answering questions about it. We may touch on some of the currently hot controversies within the community, such as roles of procedural and functional programming in helping students understand mathematics. More information from the community's site http://www.math-in-cs.org/ What we are Mathematical reasoning is central to computer science. It should therefore be an integral part of the entire CS curriculum, with special emphasis in the early courses. This would be a deviation from current practice, requiring systemic change in CS education. We are a group of computer scientists, mathematicians, and others interested in fostering such change. The group meets (via e-mail), to discuss topics related to mathematical reasoning in CS and its teaching. An archive of these discussions is available on-line. Possible topics include, but are not limited to, which mathematical concepts are relevant, when and how they can/should be introduced and reinforced in the curriculum, how they relate to practice, pedagogical approaches to teaching math foundations, supporting laboratories, etc. We are undertaking concrete projects designed to raise awareness of mathematical reasoning in CS and of ways of teaching it. Events where community members meet CCSC:MW, the 16th annual Consortium for Computing Sciences in Colleges Midwestern conference, Oct. 9- 10, 2009, St. Xavier University, Chicago, IL, USA. CCSC:NW, the 11th annual Consortium for Computing Sciences in Colleges Northwestern conference, Oct. 9 - 10, 2009, Pacific Lutheran University, Tacoma, Washington, USA. OOPSLA 2009, the 2009 ACM/SIGPLAN Object Oriented Programming Languages Systems and Applications conference, Oct. 25 - 29, 2009, Orlando, Florida, USA. CCSC:E, the 25th annual Consortium for Computing Sciences in Colleges Eastern Conference, Oct. 30 - 31, 2009, Villanova University, Villanova, Pennsylvania, USA. SIGCSE 2010, the 41st ACM Technical Symposium on Computer Science Education, Mar. 10 - 13, 2010, Milwaukee, WI, USA. CCSC:CP, the 16th Annual Consortium for Computing Sciences in Colleges Central Plains Conference, April 9 - 10, 2010, Park University, Parkville, Missouri, USA. ACMSE, the 48th ACM Southeast Conference, April 15 - 17, 2010, Oxford, Mississippi, USA. ICSE 2010, the 32nd International Conference on Software Engineering, May 2 - 10, 2010, Cape Town, South Africa. PLDI 2010, the 2010 ACM/SIGPLAN Conference on Programming Language Design and Implementation, June 5 - 10, 2010, Toronto, Canada. Cheers, Maria Droujkova http://www.naturalmath.com Make math your own, to make your own math. -- You received this message because you are subscribed to the Google Groups MathFuture group. To post to this group, send email to mathfut...@googlegroups.com. To unsubscribe from this group, send email to mathfuture+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en. -- 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
Re: [Edu-sig] Pascal's Triangle (in 2.6)
Pascal's Triangle mod 2 is also a Sierpinski gasket fractal. This is one of the Python examples in Pippy in the Sugar education software. # Sierpinski triangles import sys size = 3 modulus = 2 lines = modulus**size vector = [1] for i in range(1,lines+1): vector.insert(0,0) vector.append(0) for i in range(0,lines): newvector = vector[:] for j in range(0,len(vector)-1): if (newvector[j] == 0): print , else: remainder = newvector[j] % modulus if (remainder == 0): print O, else: print ., newvector[j] = vector[j-1] + vector[j+1] print vector = newvector[:] On Sat, Jan 30, 2010 at 12:23, kirby urner kirby.ur...@gmail.com wrote: This process below is how I learned Pascal's Triangle from my mother when I was 11. Rows of Pascal's Triangle See: http://en.wikipedia.org/wiki/Pascal%27s_triangle Calculating an individual row Consider a row starting as follows: 1, 12... Initialize to [1] and multiply by (row_num/1) to get the next term, row[1]. Then decrement and increment again, getting (11 / 2), (10 / 3), (9 / 4) and so forth, and multiply by the last term so far. Stop when the numerator is 0. 1 * (12/1) = 12 12 * (11 / 2) = 66 66 * (10 / 3) = 220 220 * (9 / 4) = 495 etc. This is another way of computing successive values of C(n, k) without using a factorial function and dividing. Independently discovered by David Koski, implemented in Python by Kirby Urner def pascal_row(row_num): numer = row_num denom = 1 # initialize row of Pascal's Triangle row = [1] while numer 0: row.append((row[-1] * numer/denom)) numer -= 1 # decrement numerator denom += 1 # increment denominator return row def pascal_mod2(row_num = 0): row integers mod 2, give a binary string which corresponds to Rule 60 in the Wolfram categorization scheme for cellular automata http://www.research.att.com/~njas/sequences/A001317 while True: therow = pascal_row(row_num) binary = .join(str(i % 2) for i in therow) yield [int(binary,2), binary] row_num += 1 traditional generator for successive rows, included for completeness def pascal_gen(): row = [1] while True: yield row row = [i + j for i,j in zip(row + [0], [0] + row)] ___ 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
[Edu-sig] New APL
An old friend, ex-IBM, ex-Wall Street, is working on a new Open Source APL which he and I intend to get into the Sugar education software for OLPC. I can't tell you any more than that until he puts code out for the public to test. -- 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
Re: [Edu-sig] teaching python using turtle module
On Sun, Nov 29, 2009 at 11:34, Brian Blais bbl...@bryant.edu wrote: Hello, I was just playing with the turtle module, and thought it was an interesting way to augment the introduction to python (I teach college students, who haven't had any programming). It's a great way to introduce functions, for-loops, and general program structures. If you use the Python-programmable tile in Turtle Art in Sugar, or Smalltalk in the Turtle Graphics in Etoys, it's even better. I have been doing presentations on teaching Python in elementary schools, and working on how to teach basic Computer Science ideas. You can use an if-then-else to initialize a stream in Python for the first pass, and get a value at each pass thereafter. The logic can be either in the TA or the Python. After a bit of playing, I realized that I couldn't think of many exaples which use turtle with conditional structures (if- and while- statements), Repeat is used much more often. but of course we can provide examples of any behavior you like. I like to use the turtle to generate sequences, where I can use a conditional to stop when the turtle would go off the screen. Fibonacci numbers, for example, or exponentials. Similarly for spirals of various types. Simple cases like those are easy to do in TA, while more complex sequences could use Python. There are several fractal examples using loops provided with Sugar on a Stick, including variations on Siepinksi constructions, and the Koch Snowflake. When I can get the code for reading the color of a dot on the screen into the programmable tile, I can program a toy Turing machine, with an array of dots as the transition table, and a line of dots as the tape. or functions that return values, as opposed to procedures like: def square(length): forward(length) right(90) forward(length) right(90) forward(length) right(90) forward(length) right(90) Surely you mean repeat(4) forward(length) right(90) If-statements could possibly be used with some sort of random behavior (if rand()0.5 ...). Drunkard's Walk. Are there any other situations, using turtle, that these structures would be natural? Recent versions of TA contain stack instructions: push, pop, read, clear. Your students might find it interesting to program Forth instructions in TA or Python. This has practical applications in implementing and porting virtual machines such as Parrot and the VMs in Smalltalk and I-APL. There is plenty more where this came from. You would also be welcome to adapt the Python source code for TA tiles to your environment. thanks, Brian Blais -- Brian Blais bbl...@bryant.edu http://web.bryant.edu/~bblais ___ 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
Re: [Edu-sig] more card play
On Mon, Nov 2, 2009 at 22:20, Laura Creighton l...@openend.se wrote: In a message of Mon, 02 Nov 2009 20:27:35 PST, Edward Cherlin writes: Cards: You are right on the merits for combinatory math, but you will run into strong cultural aversions. Why? Especially when _dice_ seem to be the preferred way to teach this stuff? (Or is this only here?) I'm including the rest of the world, not just the US. I expect issues to be raised by Evangelical Christians, Muslims and others in various countries. Dice might be easier, because casting lots is mentioned with approval in the Bible. Certainly we can come up with equipment that is not associated with common taboos. Laura -- 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
Re: [Edu-sig] more card play
On Tue, Nov 3, 2009 at 19:44, Laura Creighton l...@openend.se wrote: In a message of Tue, 03 Nov 2009 18:37:54 PST, Edward Cherlin writes: On Mon, Nov 2, 2009 at 22:20, Laura Creighton l...@openend.se wrote: In a message of Mon, 02 Nov 2009 20:27:35 PST, Edward Cherlin writes: Cards: You are right on the merits for combinatory math, but you will run into strong cultural aversions. Why? Especially when _dice_ seem to be the preferred way to teach this stuff? (Or is this only here?) I'm including the rest of the world, not just the US. I expect issues to be raised by Evangelical Christians, Muslims and others in various countries. Dice might be easier, because casting lots is mentioned with approval in the Bible. Certainly we can come up with equipment that is not associated with common taboos. Laura I wasn't clear, sorry. Around here (Sweden), when you want to teach probability, you get out the dice. That's how it is taught, and how all the exercises are set up, etc. I'm really surprised at the notion that cards would be unacceptable, while dice would be fine. I know some people who would be strongly against both, seeing both as gambling devices, and I know some people who every year are opposed to the dice and who would find cards unobjectionable. I hadn't thought that people who like dice but hate cards exist. Do you know some? Or are you guessing that they must exist? Guessing that they might exist. Certainly there are people who like ordinary cards and dice, but not Tarot. I'm one of them. The cards themselves normally don't bother me, but I have had issues with people who got into the practice. And if the latter, why? Do you use something else to teach probability? All sorts of things. Coins, Othello pieces, dice (4-30 sides), cards from various decks, dreidls, wheels of fortune, spinners, socks in a bag, colored balls, pseudo-random number generators, random number generators, letter distribution in texts,... still puzzled, Laura -- 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
Re: [Edu-sig] more card play
Cards: You are right on the merits for combinatory math, but you will run into strong cultural aversions. Reverse string in place with new iterator: There is a great deal more of this. In the 1980s Hewlett-Packard built an APL system around such transformations in place and lazy evaluation rules, including matrix/table transpose, take, drop, catenate, laminate, and a number of other transformations and combinations. I can probably dig out Harry Saal's paper on the subject. Indeed, that and several others. http://portal.acm.org/citation.cfm?id=801218dl=GUIDEcoll=GUIDECFID=59626041CFTOKEN=28525913 An APL compiler for the UNIX timesharing system http://portal.acm.org/citation.cfm?id=586034dl=GUIDEcoll=GUIDECFID=59626133CFTOKEN=77609109 Considerations in the design of a compiler for APL http://portal.acm.org/citation.cfm?id=804441 A software high performance APL interpreter On Sun, Nov 1, 2009 at 19:55, kirby urner kirby.ur...@gmail.com wrote: I'm becoming more enamored of the idea of using playing cards as a standard feature in my Python pedagogy and andragogy (means teaching adults). Not only do we have the standard deck, but also Tarot which could get us more into text files, string substitution (string.Template) and so forth. Cards have all the elements Mathematically, a Deck suggests the difference between Cardinality (yes, a silly pun) and Ordinality. You might imagine a deck in which you can't decipher the cards, don't know their face value, and so have no clear idea of their ranking (ordinality). On the other hand, you know which cards are the same and which are different across multiple decks (le'ts just say), which is the meaning of cardinality (difference without any implied ordering). Midhat Gazele dwells on this difference some in his book 'Number'. You might have a set of objects, say stones or wasp specimens, and a way of cataloging them that doesn't implement or or even ==. There is only the Python is and is not for determining of two objects have the same identity or not. License plates on cars, proper names, have this purpose of distinguishing. However, very quickly just about any set beyond a certain size needs an ordering, perhaps simply alphabetical, so that one might flip through a lookup table in a hurry and get to the desired object. People used to use ledgers, thick books, for such cataloging. This is the beginning of data structuring or data structures. The idea of ordering (ordinality) is very closely associated with that of cardinality. Anyway, over on Pyfora I was noticing a member suggesting reversing a string might be best accomplished by thestring[::-1], i.e. extended slicing with from the end to the beginning step with a step of -1. However PEP 322 suggests this will be inefficient compared a a built in function introduced in 2.4: reversed. According to the PEP, all reversed needs is for the consumed object to support __getitem__ and __len__. If those two are present, the function will do the rest, and return an iterator object in which the contents of a sequence are iterated over in reverse order. a = 'the rain in spain stays mainly in the plain' ''.join(reversed(a)) 'nialp eht ni ylniam syats niaps ni niar eht' So for our Deck to be reversible by means of this built in function, the only methods we need to implement are these two, __getitem__ and __len__. I do this below, plus make shuffling the deck upon instantiation an option, not de rigueur (not mandatory). This makes it easier to see what reverse order is like. Note that the returned iterable is not itself a Deck, nor is it subscriptable, as the whole point of an iterable is it returns its contents just in time as you iterate over it. The cards are not already present in reversed order, are simply returned in reverse order. Of course you can force the iterable to dump all its contents by coercing it into a list. I do this as a part of the clone_deck method. Playing Game of War with clone decks, one the reverse of the other, results in a draw if always dealing from the top (now the default, yet still optional). The code below is just my Game of War again, with a few wrinkles. I've upgraded all string printing to use the print(thestring.format(args)) approach, versus the old percent sign string substitution codes. Other small improvements. from sillygame import Deck d = Deck(10) newd = d.clone_deck() newd[0] is d[0] True id(newd[0]) 22884944 id(d[0]) 22884944 d.shuffle() str(d) ['7 of Diamonds', 'Jack of Spades', 'Queen of Clubs', 'King of Spades', '5 of Clubs', '3 of Spades', '6 of Hearts', 'Ace of Clubs', '2 of Hearts', '9 of Spades'] str(newd) ['2 of Hearts', 'Queen of Clubs', '6 of Hearts', '9 of Spades', '5 of Clubs', '7 of Diamonds', 'Ace of Clubs', '3 of Spades', 'Jack of Spades', 'King of Spades'] d[0] Card(Diamonds, ('7', 7)) newd[5] Card(Diamonds, ('7', 7)) d[0] == newd[5] True d[0] is newd[5] True
Re: [Edu-sig] Python for Philosophers
My degree is in Math and Philosophy. Most of the Foundations of Mathematics courses were in the Philosophy department back then, including a lot of what turned into Computer Science. On Wed, Oct 28, 2009 at 11:25, kirby urner kirby.ur...@gmail.com wrote: I've been seeing some conversations aimed at expanding the Python community (the community of Python users) beyond the world of computer science and IT, into the Liberal Arts more generally.[0] Of course this is music to my ears. The Two Cultures prejudice is one of the worst ever. Parallel to this notion that ordinary math learning would be enhanced through mastery of an executable math notation (aka a programming language) [K. Iverson], is the idea that contemporary academic philosophy curricula should take these languages more seriously. What's closer to fulfilling the Leibnizian dream of automating thinking, modal logic or Python? Not that it's either/or of course. I've been looking at this one of the Wittgenstein lists.[1] We're doing quite well at Artificial Stupidity, I hear. ;- Speaking of philosophy, old timers here know I've poked at this issue of objectification i.e. in some corners to objectify is a bad thing to do, means you're at best being a cold fish, at worst being inhumane to your fellow humans. Reification is also a problem. Most people imagine a world made of things. Wittgenstein tried to imagine a world made of facts. Some scientists have noticed that this is a world of a) we don't know what and b) we don't know how to think about it. Mathematically, the world could just as well (or as poorly) be composed of relations or processes. I've flagged this as a PR issue we need to address. Along those lines, I've buried a comment for feedback, probably won't get any (too buried).[2] Wev'e got James Bennett in the Django tribe, yakking about the relevance of a philosophy background to his work with Python.[3] Imagine a four-year philosophy program that actually featured some programming. As I said, I did that--Turing machines and several of the Church-equivalent systems, modal and combinatorial logic, recursive function theory, non-standard arithmetic and analysis... How would we connect Python to a philosophy of mind thread? I try my hand at forging that link on said Wittgenstein list (concluding paragraphs).[4] Kirby [0] http://archives.free.net.ph/message/20090831.140043.d7465e01.en.html [1] http://www.freelists.org/post/wittrsamr/More-on-meaning-as-use-reply-to-Josh,1 [2] http://theangryblackwoman.com/2009/10/01/the-dos-and-donts-of-being-a-good-ally/#comment-26523 [3] Excerpt from http://uswaretech.com/blog/2008/04/interview-with-james-bennett-django-release-manager/ James: Well, I wouldn’t say there’s anything specific necessarily. But I think there’s a big place for people with liberal-arts backgrounds to come to programming, and I think philosophy’s a good path to do that. If you look at a typical philosophy program, you’re doing a lot of logic, a lot of critical analysis, a lot of abstract reasoning. You have to get comfortable sooner or later with all sorts of formalisms that don’t necessarily have any practical meaning, and that’s very similar in a lot of ways to programming :) And when you get right down to it, as programmers, about 90% of what we’re paid to do is think: our job is to take a problem, analyze it, break it down into pieces and solve them. And that’s not terribly different from what you spend four years doing in a philosophy program. I’ve actually joked about that a bit with some of my former professors, that I still get to argue as much as when I was doing philosophy, but the programming pays a lot better. I do think, though, that there’s a big need for that sort of thing; we don’t really teach critical thinking anymore, and while it’s a vital skill to have no matter what you do for a living, it’s absolutely crucial to programming. So if you can get a good liberal-arts background where you’ve been taught how to look at things and pick them apart and analyze them, you can definitely do well as a programmer. Though it’d also be a good idea to take at least a few elective math courses… [4] http://www.freelists.org/post/wittrsamr/More-on-meaning-as-use Computer languages were far less evolved when Wittgenstein was writing, however they today provide a clear exhibit of meaning as use, as the language games have everything to do with driving machinery, making things happen, more like those orders in battle he was talking about (indeed, we speak of imperative languages sometimes, of expressions as commands). In the Python language, one tends to use the word self a lot, and indeed it plays an analogous role to self in ordinary speech, in that every object has one, and because of this self, each object is personalized i.e. rendered distinct from every other, even if it arises from the same blueprint or class definition.
[Edu-sig] Fwd: Donald McIntyre
FYI. Much loved in the APL community. -- Forwarded message -- From: Curtis A. Jones curtis_jo...@ieee.org Date: Tue, Oct 27, 2009 at 08:34 Subject: Fwd: Donald McIntyre To: apl...@listserv.acm.org -- Forwarded message -- From: Roger Hui rhui...@shaw.ca Date: Oct 25, 8:48 pm Subject: Donald McIntyre To: comp.lang.apl Donald B. McIntyre (1923-08-15 to 2009-10-21) passed away peacefully in the afternoon of October 21. Donald was an eminent geologist who pioneered the use of computers in geology. He was a gifted and inspiring teacher, an early and long-time APL and J user, and a friend and colleague of Ken Iverson and myself. He is survived by his wife Ann and his son Ewen. A memorial service will be held in St. John's Kirk in Perth, Scotland, this coming Friday, October 30. Information about Donald's life and times and his work can be found athttp://www.dbmcintyre.pwp.blueyonder.co.uk/ -- 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
Re: [Edu-sig] Summarizing some threads (KIrby again)...
Yes, you're on the right track. All of schooling is based on medieval metaphors (such as the lecture, originally for purposes of dictation in the days before printing) and the history of thought, instead of the logic of the subject matter or of the reasons for learning anything. We are still teaching pre-calculator, pre-computer math as though there was some special virtue in hand calculation with paper and pencil, instead of recognizing that the days of the counting house are over and are not coming back. (There is a virtue in understanding how arithmetic works. It is better acquired by having students teach computers how to do it, that is, by learning how to program accurately and effectively.) Also, geometry is not the only realm where we need to take a fresh look. All of math has been restructured in the last century in terms not just of objects, but of systems. Axiom systems, structures, symmetries, relationships between seemingly different branches of math, or math and an application area such as physics or crytography or...we don't even know what, yet. Category theory attempted to generalize everything by looking at systems of objects and mappings between them. It has been superseded by the even more general topose theory, which starts from your lumpengeometrie and turns into a Theory of Nearly Everything in math. I will not attempt to explain this all today, because I am supposed to be writing a book. More later. On Fri, Oct 23, 2009 at 16:11, kirby urner kirby.ur...@gmail.com wrote: Those of you frequenting this list for some years will recognize most of these themes. From time to time I like to archive a summary. Principal themes: I. Math Objects (an approach to learning math) II. Objects First (an approach to learning programming) These two go hand-in-hand. Math Objects are traditional concepts such as polynomials, polyhedra, vectors, integers, treated as Types of Thing, i.e. we're making math concepts concrete by distilling the things or types people have invented over the centuries. One place to begin, familiar to computer science, is to differentiate alpha from numeric types. Objects First means taking the object-oriented philosophy seriously, meaning we're mining everyday (ordinary) human language semantics, wherein we already think in terms of named things (nouns) having behaviors (verbs) and attributes (adjectives). My curriculum anchors Objects (things) in the biological world of biota, animals, creatures, flora and fauna. Then we move to the more abstract types of object of interest in mathematics, polyhedra especially because these are also visible and tangible, forming a bridge to that biological world. Python is especially cool as an OO language because when building a biological creature as a template, one has these special names that look somewhat like __ribs__. The methods stack up providing a backbone or rack of ribs i.e. there's a visual analogy to a creature, a snake in particular, right in the language itself. The Objects First approach doesn't buy into the ontogeny recapitulated phylogeny ideology, by which I mean: just because programming languages evolved a certain way doesn't mean newcomers have to traverse the discipline in that same order. Regions new to telephony don't need to install land lines before they go with cell phones -- go straight to cell (straight to OO). Another theme: III. streamlining the teaching of spatial geometry I've separated this last theme out of the mix because it's what sets me apart more than the above and makes me a marginal figure, apparently off my rocker in some way. I passionately believe that we should be taking greater advantage of the streamlining done by the geodesic dome guy, Bucky Fuller, regarding how to compact a lot of geometric information into a compressed data structure he named the concentric hierarchy of polyhedra (meaning you include them inside each other, sort of like Russian dolls -- not a new idea, but the devil is in the details). I won't go into some verbose presentation of III in this post. However I do think when you move from calculators to full fledged computers, then it's time to get off the plane and start taking advantage of those much bigger and more colorful screens. So even if you're highly skeptical of the Bucky Fuller bit, you might stay with me on this notion the polyhedra and spatial geometry will naturally come into vogue as we move beyond calculators and start taking more advantage of computers. I've invested many years developing these ideas and presenting them in cogent form. The materials are open source and on the Internet. Again, it's III that makes me moves me into the esoteric category, where I start questioning only using a Euclidean set of axioms, start taking up a geometry of lumps and making all sorts of high level connections to Karl Menger (dimension theorist) and Ludwig Wittgenstein (philosopher). I also
Re: [Edu-sig] recent curriculum writing (Urner)
Computer languages in use can be as different as FORTH, APL, LISP, Smalltalk, C++, Python...In principle, any symbolic system that is Turing-complete can serve as a general-purpose computer programming language with a suitable compiler or interpreter. Jean Sammet wrote a summary of all computer languages up to the mid-1960s, called Programming Languages: History and Fundamentals. She wanted to do a new version later, but found that she couldn't possibly keep up with them all any more. A fairly recent compendium listed more than 8500. See also The Next 700 Programming Languages, by P. J. Landin, http://www.scribd.com/doc/12878059/The-Next-700-Programming-Languages the Parrot languages page, http://www.parrot.org/languages and the Esoteric Languages page http://esoteric.sange.fi/orphaned/obslang.html Sadly, the Random Languages/Obfuscated Languages page is no longer online, but you can still see it through the Internet Archive's Wayback Machine. http://web.archive.org/web/*/http://esoteric.sange.fi/orphaned/obslang.html http://web.archive.org/web/20080417042236/http://esoteric.sange.fi/orphaned/obslang.html These last are where you find the weird languages, such as Fromage, Intercal, Befunge, Unlambda, Malbolge, and many more, some designed to be fun, some just to prove it could be done, and some to be evil. On Thu, Oct 8, 2009 at 13:36, kirby urner kirby.ur...@gmail.com wrote: What do we mean by computer language? What do we mean by computer? One could answer in terms of using text to control electronics, and that would be accurate. However there's also the goal of a philosophical logic: to express situations in the world, to mirror them for the purposes of simulation. The veteran programmer of the late 1900s experienced a number of twists and turns in the art of computer programming. This field has evolved quickly. Early machines had to be programmed close to the metal meaning a deep understanding of hardware internals was needed to even begin to write code. Today's computer languages haven't completely divorced themselves from hardware concerns, although Virtual Machines are increasingly common, including the Java VM, the I-APL 8-bit VM, the Smalltalk VM, Parrot, and so on. but the higher level ones are freer to concentrate on what we sometimes call knowledge domains such as cellular automata, molecular biology, zoology, telescopy etc. When talking about human languages, we have something we call grammar. See also the Chomsky hierarchy of languages and the corresponding hierarchy of machine types. http://en.wikipedia.org/wiki/Chomsky_hierarchy It helps to know the difference between a verb and an adjective, an adjective and a noun. In many of today's computer languages, nouns name objects More often pronouns that name different things at different times. Nouns would be constants. which have attributes (like adjectives) and behaviors (like verbs). And APL/J and some functional programming languages have adverbs to make new verbs from old! Here's an idea of what computer code might look like: anAnt = Ant() critter = AntEater() critter.color = 'brown' critter.walk(paces=10) critter.eat(anAnt) Or possibly mean =. +/ % # i. 10 0 1 2 3 4 5 6 7 8 9 +/ i. 10 45 # i. 10 10 mean i. 10 4.5 or The following Unlambda program calculates and prints the Fibonacci numbers (as lines of asterisks) ```s``s``sii`ki `k.*``s``s`ks ``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk `k``s`ksk If you've studied some mathematics, you may be used to reading = as equals. You're free to keep doing that, but add the thought that = is an assignment operator and what it does is bind a name to an object. In languages where = is assignment, equality is usually ==. Other conventions are used. In the above segment of code, the Ant and AntEater types are instantiated and assigned to names. These names are then operated upon using dot notation such that attributes get set and behaviors such as eating invoked. Notice that we already have a tendency to think in terms of things (a very generic statement). Think of an airport. What things do you suppose it would have? Runways and taxiways would define paths for the airplanes. There might be a control tower. Lots of things have come to mind already. A single airplane has many attributes and behaviors. pdx = Airport() nw = Runway() pdx.add(nw) myplane = Gulfstream() myplane.takeoff(nw) myplane.land(nw) We also have an engrained concept of the more general versus the more specific. There's the generic idea of a house, animal, airport. Then we get more specific, getting to some individual instance of example of any of these types of object. A computer language might have this same idea: there's a type of thing called a Number, and then we have individual instances of Number, such as 3, -1 or 2.12 or whatever. Suppose you had a generic blueprint for a robot dog. You could create
Re: [Edu-sig] Elevator Demo for Python
On Mon, Aug 10, 2009 at 4:58 PM, Phil Wagner pwag...@hightechhigh.org wrote: Often I am asked for a quick demonstration about the power of Python, sometimes for people with no computer science background. What can I show them that doesn't take too much time but gets the point across that Python is a good fit for math/education? The two Python-programmable tiles in Turtle Art, one for expressions, and one for arbitrary programs that can be created and tested in Pippy. http://wiki.sugarlabs.org/go/Activities/Turtle_Art#Programmable_Brick http://tonyforster.blogspot.com/2009/02/using-python-blocks-in-turtleart.html I just gave a presentation on this and Pippy to a group of children, parents, and teachers at Silicon Valley Code Camp. I need to write an article on all of this with math, physics, and Computer Science examples, and share it here. For example, I have a graphing program in TA, where users can change the function in the Python tile, and if necessary the ranges, and graph any function. We can work up from there through the Pippy examples, Sugar Activity source code, and on up to NumPy and SciPy. Of course, we can do much the same with Smalltalk, Logo/LISP, APL/J, and other languages that provide decent numeric capabilities (built-in or through libraries), and also sufficiently flexible data structures. I leave the argument about which is Best to others. My notion is that all children should be exposed to at least three or four languages of radically different kinds. I would prefer not to raise another generation of programmers with nothing in their toolboxes other than a single hammer, no matter how big. %-[ I invented Object-Oriented Programming, and C++ is not what I had in mind.--Alan Kay The best way to predict the future is to prevent it.--Alan Kay Phil ___ 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://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] thought re graphing calculators ...
On Tue, Sep 29, 2009 at 8:13 PM, kirby urner kirby.ur...@gmail.com wrote: Since say 5000 years humans have devoloped the concepts of numbers, calculations and algebra. They have discovered, that calculations obey certain algebraic laws like a*(b+c) = a*b + a*c and the like. Finally they have devoloped the concepts of algebraic structures like rings, fields etc. Yes, these have been interesting discoveries and remain highly relevant in the workaday world. The idea of closure makes perfect sense in this world of types (Python is a typed language). Is a * b always going to yield a type the same as a,b? (assuming a,b were of the same type to begin with). If polynomials are the type, then a*b is a polynomial, as is a+b. Not a/b though. Polynomials form a ring, not a field. You can take quotients of polynomials if you adjoin one point at infinity to either the real or complex field. But you're right, it isn't quite a field. My model of most antiquated education regimes is as follows: brow beat the kids when they're still young and undefended, easy to bully, weed out those that question authority too much, keeping those who obey. The newer models (since constructivism) get more philosophy in early and train kids to vigorously debate and question, on the theory that older people are always a source of obsolete ideas that must be filtered, as well as positive ideas worth perpetuating. Deference simply on the basis of age is a recipe for disaster in any civilization. Learn to question authority, as a survival skill. Even in math. Peano proved that all models of the natural numbers are isomorphic, but it turns out that you can't carry out that proof in any countably axiomatizable system. This opens the door to non-standard arithmetic and analysis. Conway found a non-standard arithmetic that extends to games of perfect information. We aren't done with this idea. As a tip to teachers, I advise against defensiveness on behalf of some supposed monolith or cathedral i.e. lets think of maths in the plural, as they do in the UK. If some school of thought wants to pioneer a contrarian discourse that's not completely supportive of the last 100 years or more, so what? We celebrate consistency and coherency, not uniformity. Could we develop a geometry which does not depend on the metaphysics of real numbers, continuity, infinity? Or still have infinity, but make it more like Poincare's, a direction (like a time axis). There are vast realms of such geometries, going back to projective geometries over finite fields and the like, and to general topology. Lie groups (including the one-point compactification of the complex plane) and Lie algebras. Banach spaces. Measure theory. Spaces of fractal dimension. Minkowski space. Differential geometry of Einsteinian spacetime. Non-commutative geometries in quantum mechanics (von Neumann algebras over Hilbert space). Many more. Recall I'm Wittgenstein-trained so have a penchant for not abiding by orthodoxies. Likewise, but I trace it back earlier, to the Pythagorean who discovered that 2^0.5 is irrational, to Socrates, and to Shakayamuni Buddha. Poincare realized the solar system was chaotic long before the rank and file. Peano, Hausdorff, Julia, Koch, and many others were also playing with fractals starting more than a century ago. Kirby -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Geometries, irrationals (was Re: thought re graphing calculators ...)
Could we develop a geometry which does not depend on the metaphysics of real numbers, continuity, infinity? Or still have infinity, but make it more like Poincare's, a direction (like a time axis). There are vast realms of such geometries, going back to projective geometries over finite fields and the like, and to general topology. Lie groups (including the one-point compactification of the complex plane) and Lie algebras. Banach spaces. Measure theory. Spaces of fractal dimension. Minkowski space. Differential geometry of Einsteinian spacetime. Non-commutative geometries in quantum mechanics (von Neumann algebras over Hilbert space). Many more. A feature we're looking for is accessible to grade schoolers i.e. we don't want you already out the other end of some lengthy pipeline wherein brainwashing has already occurred. Spherical geometry. The trig gets a bit complicated, but even in kindergarten children can see that an octant of a sphere is a triangle with three right angles. As long as you don't bring in the big words. I understand that some elite schools get into jiggering with the fifth postulate (Euclid's) even pre-college, That's doing it the hard way. debate Resolved: Irrational numbers are of course morally superior to the rationals as all the best constants (e, phi, pi) are irrational, even transcendental if we're lucky. I'll see your e, phi, and pi, and raise you 0, 1, -1, and i. e^i*pi + 1 = 0 Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk. The integers were made by God. All else is the work of man.--Kronecker Pro, con or stand aside? Come prepared next Tuesday. /debate Kirby Or you could say Phi (golden mean) is the Phirst Phractal (certainly the recursivity is there in the algebra). Kirby Urner ндсжег воss -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] thought re graphing calculators ...
On Wed, Sep 30, 2009 at 3:04 AM, Brian Blais bbl...@bryant.edu wrote: On Sep 28, 2009, at 16:30 , Gregor Lingl wrote: Brian Blais schrieb: However, as I think about it, I can not think of a single problem where I *needed* the graphic calculator, or where it gave me more insight than I could do by hand. I think I have a counterexample. Run the script, that you can find here: http://svn.python.org/view/*checkout*/python/branches/release26-maint/Demo/turtle/tdemo_chaos.py?revision=73559content-type=text%2Fplain What do you think? The Logistic Map x--rx(1-x) for varying values of r is easy to examine on a calculator, but excessive by hand. Feigenbaum discovered its periodicities on a calculator without any graphing capability, but having graphs makes insight much easier, in the same way that the Mandelbrot set was discovered mathematically in the 1920s, but became of major interest only after computers permitted it to be visualized. Of course, with a computer, you can visualize the entire bifurcation diagram in a few seconds. http://en.wikipedia.org/wiki/Logistic_map http://en.wikipedia.org/wiki/Bifurcation_diagram The bifurcation diagram of the logistic map is related to the Mandelbrot set, http://www.math.lsa.umich.edu/mmss/coursesONLINE/chaos/chaos6/index.html and has applications in physics, such as a dripping faucet. -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] thought re graphing calculators ...
On Mon, Sep 28, 2009 at 12:49 PM, kirby urner kirby.ur...@gmail.com wrote: 2009/9/28 Brian Blais bbl...@bryant.edu: trim Just a month ago, a friend of mine who homeschools her children was asking me about graphing calculators. Apparently the math curriculum she uses has a number of graphic calculator exercises. My advice was to buy a nice solar-powered scientific calculator (for $15 at Target), but to ignore the graphing calculator entirely. Her kids should do the exercises by hand, on graph paper instead. Anything that is hard enough for you to use a graphic calculator can be done much more easily with a computer. Well, the curricula have been customized to fit what the calculator can do, with encouragement towards the more upscale models that do some graphing and CAS (fractor equations, solve integrals...). A lot of what passes for math in this day and age is just a glorified calculator, your tax dollars at work to promulgate a niche market of private sector interests -- think defense contracting, same diff. We need to promote Free Software for CAS/graphing and more. Maxima, Euler, Mathomatic...If anybody wants, I can provide a detailed, annotated list. Also NumPy and SciPy for doing it yourself. http://mybizmo.blogspot.com/2009/07/more-lobbying.html (lobbying in Portland) Whether it's in the best interests of the students or not depends on the region. My lobby encourages calculator crush videos as cathartic, similar to those union strikes against the Japanese automobile, back with Detroit called the shots, before USAers got used to working in state-side Toyota and Honda factories. I'm not pushing that analogy too hard though, as we're big on working with Japan in this next iteration i.e. bashing scientific calculators has nothing whatsoever to do with shying away from Japanese art colonies (animation houses etc.). http://controlroom.blogspot.com/2009/07/contraband.html (smashing calculators -- embedded Youtube) I'm more into smashing voting machines. Open Voting Consortium has GPLed its software, so it is available to run school elections, and also to learn how to do real security. http://www.youtube.com/watch?v=HgSuOaULi5g http://www.youtube.com/watch?v=mZqGz9wJrIQ After giving her this advice (which I still stand by), I was thinking about my own experience. I was going through high school when the first graphic calculators came out, and I had one Junior and Senior year and through college. I loved to program it, and I loved the big screen where I could see and edit expressions. However, as I think about it, I can not think of a single problem where I *needed* the graphic calculator, or where it gave me more insight than I could do by hand. It was a fun toy, but not the best tool. To me, the question is what a calculator or computer program contributes at the next level. After you learn a chunk of algebra or calculus, including hand solving, I want students to have the calculator or computer. for applications of algebra and calculus in science and engineering. I want students to learn probability and statistics and then be able to crunch 150 years of baseball statistics or all of the polls for the next election. See the book Money Ball for a real-world application of baseball statistics, where much of the point is that the public tends to focus on showy stats, not on those that win games. Learning to tell the difference would go a long way toward improving public dialog about everything. See fivethirtyeight.com for Politics Done Right. Here in Portland, the homeschooling mom got together a bunch of these families and hired me to teach Python at Free Geek. We had a rollicking good time and my students (quite an age span) learned a lot about mathematics, as well as programming. This was several years ago. http://4dsolutions.net/ocn/pygeom.html (write-up of Rita's class) +1 LEP High, our progressive charter, also had me in to teach math with Python, the math teacher sitting right there at his desk, taking it all in. The experiment proved the concept that students teach each other, left to their own devices, so a lot of our work is now focused on peer teaching, cutting out the middle-man in large degree. http://controlroom.blogspot.com/2009/03/pps-to-kill-lep-high.html (re LEP High) +1 Kirby For further reading: http://mathforum.org/kb/thread.jspa?threadID=1989542tstart=0 bb -- Brian Blais bbl...@bryant.edu http://web.bryant.edu/~bblais ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig ___ 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.
Re: [Edu-sig] thought re graphing calculators ...
2009/9/27 Charles Cossé cco...@gmail.com: Hi, this has probably been discussed to death already, but maybe not: The point at which fancy graphing calculators become necessary (ie as in one's student career) is the point at which the calculator should be abandoned and Python employed. Just a thought ... delete at will ! I'm using Turtle Art as an intermediate step. I have a Turtle Art program to put up a pair of axes, with one programmable tile for a Python expression for the function to graph. We have a TA to Logo translation, and we could build a TA to Python translation. Or we could show the students how to copy and paste the Python for the tiles in the TA program to make a Python program, again with a replaceable function. -Charles -- AsymptopiaSoftware|softw...@thelimit http://www.asymptopia.org ___ 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://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Significant drop in CS interest in high schools
I don't know the details on this issue, but I am aware of several more general problems. One is that nobody knows what CS is or should be. I got into it before there were CS departments, from Foundations of Mathematics, specifically Incompleteness and Undecidability and Non-Standard Arithmetic. Then I gave myself doses of Computational Complexity, algorithms, data structures, proving programs correct/deriving correct programs, concurrent programming, language design and implementation (including OOP), numerical analysis, relational database theory, security, and various other topics. I put considerable effort into understanding different models of computation, as different as FORTRAN, LISP, APL, PostScript, and FORTH. Currently I am looking at Parrot, the all-singing, all-dancing virtual machine for dynamic languages. I look at CS as the study of everything related to programming that computers should do automatically so that programmers don't have to keep reinventing the wheel. Looking at the Course Description for Computer Science A available at http://www.collegeboard.com/student/testing/ap/sub_compscia.html http://apcentral.collegeboard.com/apc/public/repository/ap-computer-science-course-description.pdf I see that o Use of a specified subset of Java is required. o Both teachers and students must have sufficient background in math o and have some competence in written communication (for documentation). o A minimum of three hours a week of exclusive access to a capacious and fairly fast computer is required for each student, and more is recommended. o After-hours access to the computers is recommended. o The content changes from year to year, so teachers must be prepared to update their skills. Each of these requirements places a significant burden on schools that want to offer such a program. For example, it is necessary to use a textbook on the AP Java subset, not any of the free Java textbooks. This makes AP CS an easy target during a time of cutbacks. Much of the content of the exam is properly software engineering rather than CS. Legal and ethical issues are also included. IMNSHO, there are major conceptual errors in the course design. For example, ...there are three standard sorts that are required for the AP CS A course: the two most common quadratic sorts—Selection sort and Insertion sort—and the more efficient Merge sort. Of course, the latter implies that students know the merge algorithm for sorted lists. Students in the AP CS A course are not required to know the asymptotic (Big-Oh) analysis of these algorithms, but they should understand that Mergesort is advanta- geous for large data sets and be familiar with the differences between Selection and Insertion sort. Where is Quicksort? I/O is excluded because it is not standardized in Java. Also, looking elsewhere, where is the Web? Where is the Chomsky hierarchy of language types (regular, context-free, context-sensitive, unrestricted) and their recognizers? (finite-state machine, stack machine, bounded Turing machine, Turing machine) Where is BNF? There are other major omissions. I find that the course described is simultaneously overambitious and severely dumbed down. The sample exam questions are frightfully low-level compared with the AP Biology I took in 1962. Most of these problems come out to one-liners in APL or J, including the OOP questions, which J handles in Namespaces. Some of the practical problems are incorrectly stated for the intended problem domain. For example, clear a check and a per-check fee from a bank account, with no provision for handling checks that are too large. (Do we just pay them? Charge an overdraft fee? Bounce them and charge a fee?) I am working on how to teach CS ideas in third grade using tools such as Etoys Smalltalk, UCBLogo, and Turtle Art, all of which are packaged in Sugar for the OLPC XO and other Linuces. Etoys and UCBLogo are available for numerous platforms, and Turtle Art is written in Python, making it easy to port. We already have more than 40 years experience teaching programming in elementary schools with Logo and Smalltalk. On Thu, Aug 27, 2009 at 4:44 PM, kirby urnerkirby.ur...@gmail.com wrote: On Thu, Aug 27, 2009 at 3:56 PM, Jeff Rushj...@taupro.com wrote: wesley chun wrote: AP CS Courses (and Students) on the Decline, CSTA Survey Finds This spring, the 2009 CSTA National Secondary Computer Science Survey collected responses from some 1,100 high school Computer Science teachers. The results: only 65 percent reported that their schools offer introductory or pre-AP Computer Science classes, as compared with 73 percent in 2007 and 78 percent in 2005. Only 27 percent reported that their schools offer AP CS, as compared with 32 percent in 2007 and 40 percent in 2005. And 74 percent offer CS content in courses other than introductory or AP CS, down from 85 percent in 2007. The continuing drop in students taking AP CS is a serious warning sign about the
Re: [Edu-sig] Significant drop in CS interest in high schools
On Sun, Aug 30, 2009 at 9:27 AM, kirby urnerkirby.ur...@gmail.com wrote: On Sun, Aug 30, 2009 at 8:54 AM, Edward Cherlinecher...@gmail.com wrote: SNIP I am working on how to teach CS ideas in third grade using tools such as Etoys Smalltalk, UCBLogo, and Turtle Art, all of which are packaged in Sugar for the OLPC XO and other Linuces. Etoys and UCBLogo are available for numerous platforms, and Turtle Art is written in Python, making it easy to port. We already have more than 40 years experience teaching programming in elementary schools with Logo and Smalltalk. I'm glad you say CS ideas and not CS Yes, it's all about Powerful Ideas, not about topics, the way curricula are currently written. I have a page on Kindergarten Calculus somewhere...Aha! http://wiki.laptop.org/go/Kindergarten_Calculus SNIP SNAP SNORUM Kirby -- Edward Mokurai Cherlin Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] turtle in education
We need to make sure that people in various programs can find such resources. I will Wiki your repository at Earth Treasury and Sugar Labs, and I am copying this to Stacy Reed, the Librarian Chick. Where else can we list this and other resources? Please be careful of CCs if you reply to this message. On Wed, Aug 26, 2009 at 3:18 AM, robertorobert...@gmail.com wrote: On Fri, Jul 31, 2009 at 12:48 PM, Gregor Linglgregor.li...@aon.at wrote: Hi Roberto, hi all, I've just created a repository of turtle graphics demos/applications at google code: http://code.google.com/p/python-turtle-demo/ You may add the demos I sent you. There will be many more, and we will be building lesson plans around them using Walter Bender's Turtle Art presentation tiles, and similar capabilibities in Etoys Smalltalk. thank you Gregor ! I am back to office now and read your news i'll take carefully into account your material; also i'll try to differentiate the ways for my students using Sugar TurtleArt as a start-up (and ongoing) tool and your Turtle module as an ongoing one for more experienced guys; it will take me some time but i'll contribute everything may help others in the field -- roberto ___ 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://earthtreasury.org/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] poking some dying logs...
On Fri, Jul 31, 2009 at 4:36 PM, kirby urnerkirby.ur...@gmail.com wrote: I'd like to make another plug for including this title on the edu-sig home page: http://www.skylit.com/mathandpython.html Ian thought it was too much a hybrid of CS and math, not an elegant amalgamation, though I don't have has remarks in front of me at the moment. Steve was gonna get back to us. Andre thought he might work it onto the page... I like the concept but not the execution. The student doesn't find out what properties of various data structures and mathematical objects are fundamental. There is too much of the old style of telling students what to learn, and neither explaining why nor allowing students to discover. I find it annoying that the book gives complex number examples, but shies away from actually using complex arithmetic. Far more CS could be introduced at the level of the math being used. The book uses Python, but none of the very capable math software available beyond graphing calculators. I prefer Ken Iverson's approach, in which he taught how to write programs to do algebraic manipulations and symbolic differentiation. Does anybody know these authors? Can we engage them in a process to improve what they have done? Maria Litvin Phillips Academy, Andover, Massachusetts Gary Litvin Skylight Software, Inc. That was all months ago by now, so it make sense to raise the issue again, as the title does break new ground in some ways, has claim to being a math teaching book, yet uses a computer language (one most of us know). 'Concrete Mathematics' and 'The Art of Computer Programming' are both math books of course, amenable to a through programming approach. Jsoftware folks implemented the former in J, whereas the latter is in MMX already. Another hot button issue in Portland these days is whether families have the right to demand a PDF version of any assigned textbook, versus a hardcopy edition. We have lots of tree huggers around here, worried about green and unsustainability. To quote one of my colleagues (from her blog): We need the text book companies to print thousands of copies of new textbooks every year, not so the authors can make money, though they make a little, but so the companies can make money... Do some central planning, and if the government can't do that without going through corporations, then it is time to [do it ourselves]. Anyway, just wanted to re-raise that as well. I mostly do my computer / technical reading on Safari, have no problem with recycling already printed books, have no problem with small press runs. But I can see where truck loads of spanking new 400 page math books, hot off the press, none containing any computer programming to speak of, let alone Mites, Sytes or Kites (honeycomb stuff, important to gnu-bees), would provoke a crisis in conscience for our more ethical. This is the kind of thing 15 year olds talk about. They're suspicious of adults who can't follow their logic (about saving trees), undermines adult authority to not have a response. So do we all favor an opt out option for hard copy textbooks? Say aye? Say nay? Kirby ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] turtle in education
On Wed, Jul 22, 2009 at 8:28 AM, robertorobert...@gmail.com wrote: hello, i am looking for materials, experiences etc. about using turtle module in math, physics and related for middle or high school students http://wiki.sugarlabs.org/go/File:Gravity.odt Alan Kay's third-grade gravity lesson in Turtle Art, with extra material. i realized a lot of work is going on but is there any place where all or part of this material is gathered ? i am going through the talk of Gregor Lingl at PyCon; if you're aware of anything else just tell me thank you very much -- roberto ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] python publication
On Sun, Jul 12, 2009 at 11:08 AM, robertorobert...@gmail.com wrote: hello, i have managed an introductory math and programming course, mainly based on python for the programming side; participants came strictly from high schools; i'd like to share the results with the community and collect them as draft for an eventual publication; may you give me any hint about a suitable place to submit ? You can submit it to me, if you would be interested in the Earth Treasury project of Free Digital Learning Materials. See http://wiki.sugarlabs.org/go/Creating_Textbooks I am working on teaching math and Python through Turtle Art. Perhaps we can coordinate. thank you -- roberto ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Hello World! Computer Programming for Kids and Other Beginners
I have to write up some lessons on how to start programming in Python in the Sugar version of Turtle Art, where there are two programmable tiles. One accepts a Python expression, and the other reads in a Python file. The easiest Hello, World program in Turtle Art uses the Print tile. Just type in the text you want the Turtle to display. We can introduce more complex tile-based programming techniques, and then show how each can be done in Python by using the programmable tiles, and by examining the quite modular Turtle Art source code in Python. Then we can show students how to create their own tiles, and move up gradually to creating a new Sugar Activity. I intend to teach Python as Computer Science, not simply as program syntax and features. Making the CS topics accessible to students at just the right level, without driving any of them away, will be one of the hardest parts to get right. Ordering topics according to both meaning and dependencies on other topics will also take a lot of work. Also a lot of fun. I have spent the last few week experimenting with the latest version of Sugar on a Stick (Sugar set up for installation on a bootable USB flash drive) and also writing a book for FLOSS Manuals on Open Translation Tools. So I have lots more to tell you, but no way to say when I can do it yet. On Sat, Jun 27, 2009 at 6:38 AM, csevc...@umich.edu wrote: Warren and Carter - congratulations on your book. I just reviewed it in my blog and twittered about it. Here is the text from my blog post - (feel free to correct me ) Chuck Severance www.dr-chuck.com I am an advocate for using Python as a first language and for using programming as a tool to explore abstract concepts and technology literacy (Informatics) starting in elementary and middle school. Here is a book written for kids using Python that looks like it can support making Python accessible to younger learners. Hello World! Computer Programming for Kids and Other Beginners The book is written by the father and son pair of Warren D. Sande and Carter Sande. Here is an interview with the author and his son on Canadian Television with the authors: http://watch.ctv.ca/news/clip186877 Here is the web site for the book including several sample chapters: http://www.manning.com/sande/ This is very cool and I will buy the book and then review it in more detail. On first glance looking at the sample chapters and table of contents, it looks well siuted for K-12 applications since has many short chapters, gets into graphics quickly using its own GUI (easygui), and is careful to have lots of additional explanation in areas that readers might have questions. Of course since Carter Sande is still in K12 it is very natural to have it structured properly for K12. Perhaps after they get done with Warren and Carter's book - the students will want to web programming on Google App Engine! And of course there is a book for that - Using Google App Engine. This all moves us further down the path of technology literacy based on foundations of open source technology and transforming K-20 education to include technology literacy at the right places. Congratulations to Warren and Carter! ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Overloading (was Re: more on variable names)
On Sat, May 23, 2009 at 7:43 PM, kirby urner kirby.ur...@gmail.com wrote: I filed the following quick comment after viewing a six minute tutorial on variables and values at ShowMeDo. The video: http://showmedo.com/videotutorials/video?name=6950010fromSeriesID=695 My comment: idea that values are stored into a variable is less the metaphor in Python, Yes, it is a relic of assembly language. A variable is not a section of memory. It is a pronoun which can have different referents at different times. One object can be referred to by many different personal names and a variety of pronouns at the same time. This is easier to explain in Japanese, which has numerous and ever-shifting sets of pronouns. I in English can currently correspond to o watashi o atashi o atai o boku o ore Historically, people could also have three, four, even a dozen personal names, some chosen for various private or public purposes, some awarded by teachers, some (rarely) awarded by the Emperor, and so on. which is more about assigning or binding names to objects with the assignment operator (=). The problem with store into is then its hard to picture many names for the same object, yet that's easy when you think of a balloon with many strings. For example, the so-called equal sign (=) would be better called an assignment operator as most of us here do. We would do better to use a different symbol entirely. The only reason for the massive overloading practiced in conventional programming languages is the utterly obsolete ASCII character set. APL has used the left-pointing arrow '←' for assignment for decades, and treated '=' as a Boolean function returning a truth value. Just as APL has used the correct '×' and '÷' rather than overloading ASCII characters further. J distinguishes the function '=' from assignment '=.'. To make this link stick we could explain how the two parallel lines represent opening a channel to i.e. now this name (on the left) will be able to communicate with the object on the right (some result of evaluation). -1 Kirby PS: do Python's where Prada? http://fashionshops.wordpress.com/2009/05/18/prada-ad-campaign-ss-2009/ ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] [IAEP] F.Y.I.: this month's cover story for CACM is OLPC: Vision vs. Reality (cross posted)
I wrote a reply on the Web site. It is being reviewed by the editors before posting. http://cacm.acm.org/magazines/2009/6/28497-one-laptop-per-child-vision-vs-reality/comments On Wed, May 20, 2009 at 7:56 AM, gerry_lowry (alliston ontario canada) gerry.lo...@abilitybusinesscomputerservices.com wrote: http://www.acm.org/ Regards, Gerry ___ IAEP -- It's An Education Project (not a laptop project!) i...@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] PDF geometry animations (ReportLab?) - and turtle module
On Sun, May 17, 2009 at 11:53 AM, kirby urner kirby.ur...@gmail.com wrote: Fuller tending to accept any contribution (he'd circulate a box after some lectures, take home a pile of student papers) and then toss the results to the world as leaflets out the back of his choo choo, while running for president of Design Science Incorporated. He was open sourcing and patenting at the same time, playing FOSS boss and IP king. Quite the Dymaxion Clown act. We need more of him. He alienated some people with this style of showmanship, but Fuller himself thought only an express train could work at this time, people could go back later and put the pieces together, so he made a lot of detailed notes (now warehoused in Stanford University) and we have puzzle assemblers crawling through it, putting together (computing) all kinds of new stories. Is anybody working on getting this material online and inviting the world to crawl it and create new stories? I know some people in Science Commons who would like to talk to you about such a thing. I suspect that there are people and organizations about who would like to fund such a project. Kirby -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] PDF geometry animations (ReportLab?) - and turtle module
On Sun, May 17, 2009 at 6:35 AM, Gregor Lingl gregor.li...@aon.at wrote: kirby urner schrieb For those of you looking for a way cool use of Python's ReportLab, I so far have permission to release this one example PDF flipbook showing how geometry concepts might be communicated using this simple animation technique: http://www.4dsolutions.net/presentations/pdf_animation_by_ron_resch.pdf Yes, the Python version below works much better for me. I'm not up for clicking 1264 times to view the PDF. Very impressive and instructive! Is there a description somewhere, how 'flipbooks' like these can be produced? With me this way of communicating geometry concepts worked rather well, as you can see in the attachment. Regards, Gregor I've been sharing this as a teaser with Software Association of Oregon as well, knowing Ron has a lot more where that came from (I'm suppose to download a half-gig PDF next time in Pauling House for a bored er board meeting). Kirby # uses turtle module from Python 2.6 # hint from Kirby, 15. 5. 09 # http://www.4dsolutions.net/presentations/pdf_animation_by_ron_resch.pdf from turtle import Turtle, Screen, Vec2D, mainloop import math A = 50. # adjust this to your needs SHS = A / 20 SF = 1.0 DSF = 1.0038582416 e = Vec2D(3**.5/2, 0.5) def dsin(angle): return math.sin(angle*math.pi/180) def lines(l): for i in range(6): d.fd(l) d.bk(l) d.left(60) class TriTurtle(Turtle): def __init__(self, c, r, tritype): Turtle.__init__(self, shape=triangle) self.c = c self.r = r self.speed(0) self.pencolor(0,0,0) if tritype == 1: self.basecolor = (1.0, 0.80392, 0.0) self.f = -1 self.left(30) else: self.basecolor = (0.43137, 0.43137, 1.0) self.f = 1 self.left(90) self.fillcolor(self.basecolor) self.pu() self.goto(c*A, r*A*3**.5/3) self.shapesize(SHS, SHS, 1) self.D = self.distance(0,0) self.e = (1/self.D)*self.pos() def setturn(self, phi): self.goto(SF*self.D*dsin(90-phi)*self.e) self.settiltangle(phi*self.f) self.shapesize(SHS*SF) if abs(self.c) + abs(self.r) 2: self.fillcolor([x + (1-x)*phi/360 for x in self.basecolor]) bc = phi/360. self.pencolor(bc, bc, bc) s = Screen() s.reset() s.tracer(0) d = Turtle(visible=False) lines(500) triangles = [] for c in range(-5,6,2): triangles.append(TriTurtle(c, 1, 1)) triangles.append(TriTurtle(c, -1, 2)) for c in range(-4,5,2): triangles.append(TriTurtle(c, 2, 2)) triangles.append(TriTurtle(c, -2, 1)) triangles.append(TriTurtle(c, -4, 2)) triangles.append(TriTurtle(c, 4, 1)) for c in range(-3,4,2): triangles.append(TriTurtle(c, 5, 2)) triangles.append(TriTurtle(c, -5, 1)) triangles.append(TriTurtle(c, -7, 2)) triangles.append(TriTurtle(c, 7, 1)) for c in range(-2,3,2): triangles.append(TriTurtle(c, 8, 2)) triangles.append(TriTurtle(c, -8, 1)) s.tracer(1) for phi in range(1,361): SF = SF*DSF s.tracer(0) for t in triangles: t.setturn(phi) s.tracer(1) mainloop() ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) # uses turtle module from Python 2.6 # hint from Kirby, 15. 5. 09 # http://www.4dsolutions.net/presentations/pdf_animation_by_ron_resch.pdf from turtle import Turtle, Screen, Vec2D, mainloop import math A = 50. # adjust this to your needs SHS = A / 20 SF = 1.0 DSF = 1.0038582416 e = Vec2D(3**.5/2, 0.5) def dsin(angle): return math.sin(angle*math.pi/180) def lines(l): for i in range(6): d.fd(l) d.bk(l) d.left(60) class TriTurtle(Turtle): def __init__(self, c, r, tritype): Turtle.__init__(self, shape=triangle) self.c = c self.r = r self.speed(0) self.pencolor(0,0,0) if tritype == 1: self.basecolor = (1.0, 0.80392, 0.0) self.f = -1 self.left(30) else: self.basecolor = (0.43137, 0.43137, 1.0) self.f = 1 self.left(90) self.fillcolor(self.basecolor) self.pu() self.goto(c*A, r*A*3**.5/3) self.shapesize(SHS, SHS, 1) self.D = self.distance(0,0) self.e = (1/self.D)*self.pos() def setturn(self, phi): self.goto(SF*self.D*dsin(90-phi)*self.e) self.settiltangle(phi*self.f) self.shapesize(SHS*SF) if abs(self.c) + abs(self.r) 2: self.fillcolor([x + (1-x)*phi/360 for x in self.basecolor]) bc
Re: [Edu-sig] Considering Python for an algebra course
On Tue, May 12, 2009 at 12:20 PM, Daniel Ajoy da.a...@gmail.com wrote: From: Maria Droujkova Geogebra was created specifically for the type of projects I want to run. It is easy enough to start, for kids. I find its specialization to be a limiting factor, though - it would be nice if kids saw the environment's potential beyond math. With Python, I have more questions than answers, because I am just starting to learn it. Do you think it will work for my purpose? NumPy and SciPy can do any math you will need. I am working on a project to teach algebra with analytic geometry in Turtle Art, which is written in Python. I can graph anything I can construct in TA now, and I intend to use the programmable block in TA to add more Python code. Do I need to get a real programmer involved, or can I learn enough Python in a few months to help kids well enough, without being a specialist? Wrong question, actually. The community will pitch in. You can learn enough Python to handle the math, no question. You may need other programming help if you want to create an application that you can distribute. Talk to us when any such issues arise. You can also talk to the Sugar Labs development people about anything that you might want to offer for the OLPC XO, and get Python help there. lists.sugarlabs.org/ or /join #sugar on irc. What questions do I not know to ask? Best question I know of, but hard to answer at the beginning. Tell us what you want to accomplish, and we can tell you the relevant questions and some of the answers. I would appreciate any pointers. You speak about the the type of projects you want to run. What are those? Maybe with that information the pointers could be more specific. Do you want to publish your projects online? I think a good question is: how to do that with python. Daniel ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] What version of Python to teach ....
Comments interspersed. On Sun, Apr 19, 2009 at 9:49 PM, Scott David Daniels scott.dani...@acm.org wrote: Laura Creighton wrote: One note: It is very important to teach your students how to read code. I think that this is even more important that teaching them how to write code -- not only will they spend more time reading code than writing code in their lives, but it is through reading other people's code that you can learn any technique for writing code. (Well, that, and a whole lot of practice, but a certain amount of reading of code every day can cut down on the number of things that you have to learn by doing.) There isn't a lot of Python 3.0 code out there to read. So even if you are only teaching your students how to write 3.0, you will still have to teach them how to read 2.x. But not right away. But here is a learning opportunity as well -- too many students are used to received wisdom, and assume there is nothing to discover. That's why Sugar software is all about collaborative discovery. At some point, we will be able to engage our millions of students in the conversion of Sugar to Python 3.0. To say that Python is in motion, that we have learned from our mistakes, that we are forging a new way forward, and that they can be a part of how to say things well in this new language is to begin to explain that things are moving and they can be a part of that movement. +1 One of the great disappointments from teaching my first computer science class (operating systems) came after a lecture where I discussed some of the publications going on about these new-fangled RAID systems. I had students explain to me that a new way of organizing file systems could not be as efficient as I described, because Microsoft and IBM would be using such designs if they really worked. Students need to know that not everything has been done. They also need some education on the ways in which Microsoft and IBM have deliberately held back technical progress in furtherance of their anti-competitive business strategies. A biography of John Patterson National Cash Register would be a good place to start. That's where Tom Watson learned how to crush competition and then buy them up cheap, and suffered his first antitrust lawsuit. Then Patterson, as was his habit with almost everybody who learned his methods, fired Watson, who bought the Computing Tabulating Recording company, owner of the Hollerith punched card patents, and renamed it International Business Machines. The literature on IBM's shenanigans is huge. Microsoft actually lost an antitrust suit, and was labeled a criminal organization, although not punished as such after the Bush DoJ took over the case. See also the Groklaw archives on the SCO suit and other attempts to hold back Linux. Anyway, this is an old, old story. Perhaps it would be as well to prepare the way with some examples. My favorite is that when L. Frank Baum, a successful children's writer at that time, offered The Wizard of Oz to his publishers, they turned in down on the grounds that there was no market for American fairy tales. He asked how they knew, and they pointed out that no publisher had any on the market. Every other publisher he tried said the same thing. So he had to offer to pay the costs for the first printing himself to get anybody to take the risk. His first royalty check was enough to buy a house. One of the Warner Brothers said of talking movies, Who wants to hear actors talk? All radio manufacturers initially turned down the transistor, except Sony. General Electric turned down photovoltaics, because they were too expensive for building power plants. Japanese manufacturers then put them on calculators. You don't have to replace the cheapest use first. Start with the most expensive. The actually relevant examples for your class are in The Innovator's Dilemma, which is specifically about this problem in the disk storage business. The leaders in each generation nearly all became followers or disappeared in the next generation. --Scott David Daniels scott.dani...@acm.org ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] What Linux distro?
On Sat, Apr 11, 2009 at 12:35 PM, Fahreddın Basegmez mangab...@gmail.com wrote: Hi, I have been developing a programmable scientific visualization tool/rapid game maker with wxPython for a while. I recently released the first public beta version that works on windows only. Now, I am going to start working on a Linux version very soon. I have not decided which distro to use yet but leaning towards Ubuntu. Could you give me some feedback? What is the most popular distro in educational institutes/settings? It is not at all a choice of just one distribution. We all want what you are doing, and we cooperate to make it available everywhere. Packagers for many distributions will take hold of anything that becomes available from a suitable upstream source. I am copying this to Jonas Smedagaard, a Debian packager who can give you better advice than I can on getting started. Anything in a Debian package is likely to flow through to Ubuntu, Edubuntu, and other distributions fairly rapidly. You can also get help putting your software into Red Hat Fedora, and from there into another whole stream of distributions. I am copying this to Greg DeKoenigsberg, a Red Hat community organizer, who can help you make the right contacts there. Those two will get your software launched in all of the most popular distributions, including several education-specific distributions, and numerous language-specific distributions around the world. If you would like to follow up on that, you can contact the localization groups for Fedora, Debian, and Ubuntu. Lastly, I would suggest getting your software into Sugar for the One Laptop Per Child XO and other systems. You should join the Sugar Development mailing list at http://lists.sugarlabs.org for that. Again, Sugar software feeds to Fedora, Debian, and so on from there, and Sugar is being localized into something like 80 languages. Sugar has well over a million education users, with many more on the way. You can download the application from www.mekanimo.net. Also I have a 5 min video at http://mekanimomedia.s3.amazonaws.com/tangram/Tangram.html If you try the application, I would appreciate your feedback about that too. Thanks in advance, Fahri Basegmez ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] What version of Python to teach ....
On Sun, Apr 19, 2009 at 12:07 PM, Laura Creighton l...@openend.se wrote: One note: It is very important to teach your students how to read code. I think that this is even more important that teaching them how to write code -- not only will they spend more time reading code than writing code in their lives, but it is through reading other people's code that you can learn any technique for writing code. (Well, that, and a whole lot of practice, but a certain amount of reading of code every day can cut down on the number of things that you have to learn by doing.) There isn't a lot of Python 3.0 code out there to read. So even if you are only teaching your students how to write 3.0, you will still have to teach them how to read 2.x. I wonder how much of that is needed. You do need to teach them how to convert 2.x code to 3.0, but in many cases this is not too burdensome. http://www.comp.leeds.ac.uk/nde/papers/teachpy3.html The Python 3.0 distribution comes with a refactoring tool called 2to3, intended to assist with the translation of Python 2.x code to Python 3.0. The tool operates on stdin, individual files or an entire directory tree. It writes a unified diff patch for each .py file to stdout, and a summary of which files needed changes to stderr. With the -w command line option, it will create a back-up of each file and then apply the patch to the file. An an experiment, we tried running the 2to3 tool provided in the third alpha release of Python 3.0 on the collection of example programs used in our first-year programming lectures [10], using the -w option to apply the patches. The tool took 47.2 seconds to process 147 .py files [11] and changed 77 of them (52% of the total). In 80% of cases, the changes involved console I/O only and no manual intervention was required to produce satisfactory code. In 5% of cases, 2to3 produced code that ran correctly but was redundant in some way. (A conversion example follows). It would be interesting to go through this collection of examples used in teaching 2.x, and find out how much of the new code just works, and what are the remaining issues. This might be the basis for a book. Just thought I would mention it before I forgot, Laura ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] What version of Python to teach ....
Comment at end. On Sun, Apr 19, 2009 at 1:05 PM, Laura Creighton l...@openend.se wrote: In a message of Sun, 19 Apr 2009 12:49:17 PDT, Edward Cherlin writes: On Sun, Apr 19, 2009 at 12:07 PM, Laura Creighton l...@openend.se wrote: One note: It is very important to teach your students how to read code. I think t hat this is even more important that teaching them how to write code -- not only will they spend more time reading code than writing code in their lives, but it is through reading other people's code that you can learn any technique for writing code. (Well, that, and a whole lot of practic e, but a certain amount of reading of code every day can cut down on the number of things that you have to learn by doing.) There isn't a lot of Python 3.0 code out there to read. So even if you are only teaching your students how to write 3.0, you will still have t o teach them how to read 2.x. I wonder how much of that is needed. You do need to teach them how to convert 2.x code to 3.0, but in many cases this is not too burdensome. http://www.comp.leeds.ac.uk/nde/papers/teachpy3.html The Python 3.0 distribution comes with a refactoring tool called 2to3, intended to assist with the translation of Python 2.x code to Python 3.0. The tool operates on stdin, individual files or an entire directory tree. It writes a unified diff patch for each .py file to stdout, and a summary of which files needed changes to stderr. With the -w command line option, it will create a back-up of each file and then apply the patch to the file. An an experiment, we tried running the 2to3 tool provided in the third alpha release of Python 3.0 on the collection of example programs used in our first-year programming lectures [10], using the -w option to apply the patches. The tool took 47.2 seconds to process 147 .py files [11] and changed 77 of them (52% of the total). In 80% of cases, the changes involved console I/O only and no manual intervention was required to produce satisfactory code. In 5% of cases, 2to3 produced code that ran correctly but was redundant in some way. (A conversion example follows). It would be interesting to go through this collection of examples used in teaching 2.x, and find out how much of the new code just works, and what are the remaining issues. This might be the basis for a book. Just thought I would mention it before I forgot, Laura You are suggesting that students will need to learn how to use a refactoring tool before they can sit down and read a piece of pre 3.0 code for pleasure and edification? No, I'm suggesting that an introductory course on Python 3.0 can make use of converted and lightly massaged code, and ignore Python 2.x until students have wrapped their minds around one version. Computer Science students are not necessarily interested in commercial programming, and may never need to learn 2.x. People learning Python in order to write their own programs, ditto. The original question was how to get enough educational examples in Python 3.0. For the larger problem of converting existing 2.x libraries and applications in order to have more 3.0 to read, that will solve itself in the normal course of events. See Guido's advice. http://docs.python.org/3.0/whatsnew/3.0.html What’s New In Python 3.0 Porting To Python 3.0 The Web page I cited says explicitly that the instructor converted all of his current teaching examples using 2to3, so the students don't even have to know about it in order to get started. I'm also suggesting to FLOSS Manuals and O'Reilly that we could do a book on converting 2.x to, 3.0 in short order, and get it out before it becomes obsolete. ^_^ Laura -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Considering Python for an algebra course
On Tue, Apr 14, 2009 at 4:30 AM, Maria Droujkova droujk...@gmail.com wrote: Hello, I am new to this list. I am working on an algebra course where teens will create their own learning materials and share them as open educational resources (OERs). Welcome. I am working on a project to create free and freely licensed learning materials on every subject, with appropriate software integrated everywhere. http://wiki.sugarlabs.org/go/Creating_textbooks We would invite you to join in. I'd like to organize the course around a computer environment. I have three candidates for it so far: Scratch, Geogebra and Python. I like these three because they all have robust communities of people sharing open source code. Indeed. I'm focusing my own efforts on Turtle Art for elementary school math and Computer Science. We have several implementations, and I am working on extending them to cover more topics, as is Walter Bender of Sugar Labs. o Turtle Art in Sugar on the OLPC XO, written in Python, able to output Logo. o Kturtle o UCBLogo, written in C Scratch has the immediate multimedia appeal, is equally loved by boys and girls, and is very easy to get into. Minus: it's rather limited when it comes to a bit more advanced math. We tried to create fractals on it this Spring in a homeschool coop, and it was cumbersome. How so? Turtle Art now comes with some fractal examples, so I don't think it should really be that hard in Scratch. Geogebra was created specifically for the type of projects I want to run. It is easy enough to start, for kids. I find its specialization to be a limiting factor, though - it would be nice if kids saw the environment's potential beyond math. With Python, I have more questions than answers, because I am just starting to learn it. Do you think it will work for my purpose? Do I need to get a real programmer involved, or can I learn enough Python in a few months to help kids well enough, without being a specialist? What questions do I not know to ask? You can do as much math in NumPy and SciPy as you know. You may need some help from Pythonistas from time to time, but the whole idea is to let people program what they know without having to make the investment of time that C++ and other professional languages require. I would appreciate any pointers. -- Cheers, MariaD Make math your own, to make your own math. http://www.naturalmath.com social math site http://www.phenixsolutions.com empowering our innovations ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Generating prime numbers
On Sun, Apr 5, 2009 at 9:07 AM, kirby urner kirby.ur...@gmail.com wrote: As my grandmother might have said: ai yai yai http://answers.yahoo.com/question/index?qid=20081203103806AA4TSOq I'm guessing Kay (XY? XX? -- not that I need to know) is a LISP and/or Scheme head, by the looks of those lambdas. Probably why Python doesn't want a big one is precisely this: the language would fall under the control of the Great Lambda Kings (a small tribe to our north, spends all its time extending emacs). Ya gotta love 'em! You should try UnLambda, then. ;- _The_ most minimalist Turing-tarpit language I knew of until just this moment, when I looked it up on Wikipedia and found out about the languages Iota and Jot. Wonderful for proof-of-concept studies. There is a Parrot implementation of UnLambda. Here, for example, is an UnLambda implementation of the Y fixed-point combinator. ```s``k``sii``s``s`ksk`k``sii where i is an abbreviation for ``skk. Joy is a pure functional languages without Lambda. A square function in Joy is quite FORTH-like. DEFINE square == dup * . J also does without Lambda. It has a functional subset with Currying () in which one can write square =. ^2 I helped Iverson with a small design point in that functional subset, and wrote a paper about a generalization of the idea for the next year's APL conference. In the class of languages I discussed, one can dispense with variables. Kirby On Sun, Apr 5, 2009 at 8:27 AM, John Posner jjpos...@snet.net wrote: kirby urner wrote: Excellente! kind sir. Here's a Python solution from Kay Schluehr on python-list. I've pretty-printed it, sort of. If the line endings get garbled, just look for the backslashes: g = (lambda primes = []: \ (n for n in count(2) if \ (lambda n, primes: \ (n in primes if (primes and n=primes[-1]) \ else (primes.append(n) or True if all(n%p for p in primes if p = sqrt(n)) \ else False) \ ) \ )(n, primes) \ ) \ )() g is a generator, so get the values with g.next(). -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Fwd: Do we teach computers when we write code?
On Tue, Apr 7, 2009 at 6:32 AM, Lloyd Hugh Allen chandraki...@gmail.com wrote: I haven't posted in a while -- forgot to reply-to-edu-sig :) There is a long-running rwar between those who think that mailing lists should have a reply-to set to the mailing list address, and those who think that replies should go to the previous sender by default. Is it worse that mistakes result in private replies going to the list (big-endian) or list replies going to an individual (little-endian)? You still have to be able to remember what you are doing. What _I_ want is a menu item clearly labeled Reply to List. -- Forwarded message -- From: Lloyd Hugh Allen chandraki...@gmail.com Date: Tue, Apr 7, 2009 at 09:26 Subject: Re: [Edu-sig] Do we teach computers when we write code? To: kirby urner kirby.ur...@gmail.com As a math teacher, using the particular example of summing a finite set of consecutive integers: To give students a formula, in particular n(1+n)/2, and then have them do a set of practice problems where they apply that formula, is not teaching. It might be training. Instead, consider the case of telling students that: when Gauss was in elementary school, his teacher needed time to work on some other matter and so told the students to add all of the numbers from 1 to 100; and that Gauss instantly looked up and said 5050; and the teacher hadn't actually yet done the problem himself and so denied Gauss' answer. The version I learned is that Gauss wrote the answer on his personal slate and put it face down on the teacher's desk, as was the custom. Then he waited while all of the others slaved through the columnar addition. When the last slate was added to the pile, the teacher turned it over and found Gauss's correct answer on top. With no working. In some of the schools I have attended, you get marked down for not showing your work. %-[ Gauss, as an ~8 year old, said, no, look, and wrote 1 + 2 + 3 + ... + 100 and then below that wrote 100 + 99 + 98 + ... + 1 and showed that there were 100 columns, and that each column summed to 101. However, he then noted that he had written the series out twice, and so had to divide that product by two. The 100 columns is the n; the sum of the first and last number is 1+n; and then divide by two. You can do this in preschool with Cuisenaire rods. And then to have the students try to represent a similar problem, and to check their answer against the formula, and THEN to have them do a set of practice problems, that might be teaching. If the computer were able to understand the story about young Gauss, then we could teach it. Instead, we can use it to confirm that the formula seems to work (because computers can add numbers in the fashion that Gauss' elementary school teacher expected just as fast as we can apply the formula), +/i.100 0.5 * (] * (] + 1)) and we can show that using the formula is still faster for the computer than actually summing the list, but no, we are not teaching the computer. I still say that even though the computer is not learning, children writing programs have the same impact on their learning _as if_ they were teaching. Perhaps if the computer were then able to, of its own volition, wonder what we would get if we were to sum consecutive squares, then we could teach it. As hard as it is to get students to wonder about things, it's even harder to create that state in computers. There are theorem-proving programs, and I know of an instance in which one was turned loose and came up with a novel proof in geometry (of a well-known theorem, of course.) Still, one shouldn't make too much of an isolated incident. -Lloyd On Mon, Apr 6, 2009 at 18:05, kirby urner kirby.ur...@gmail.com wrote: I'm wondering what others on this list think of this non-standard use of teaching when talking about programming a computer. The authors say we're teaching the computer ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)
On Tue, Apr 7, 2009 at 2:28 PM, Laura Creighton l...@openend.se wrote: In a message of Tue, 07 Apr 2009 11:09:36 PDT, Edward Cherlin writes: There is a long-running rwar between those who think that mailing lists should have a reply-to set to the mailing list address, and those who think that replies should go to the previous sender by default. Is it worse that mistakes result in private replies going to the list (big-endian) or list replies going to an individual (little-endian)? Much worse when private replies go to a list. I'm not going to argue with you, but I know others who would. :( You still have to be able to remember what you are doing. What _I_ want is a menu item clearly labeled Reply to List. Many mailers have one of these. Writing one is not hard, what mailer are you using, and is the source available? Gmail. No, source is not available. They do accept feature requests at http://mail.google.com/support/bin/static.py?page=suggestions.cs Once in a while I see that some feature I wanted made it in. Laura Of course the mail software can't help you remember when to change the subject line. -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)
On Tue, Apr 7, 2009 at 3:43 PM, kirby urner kirby.ur...@gmail.com wrote: Gmail. No, source is not available. They do accept feature requests at http://mail.google.com/support/bin/static.py?page=suggestions.cs Once in a while I see that some feature I wanted made it in. Laura Of course the mail software can't help you remember when to change the subject line. How would Reply to List differ from Reply to All, which gmail has? Reply to All, which I used on this message, puts you in as primary recipient, and the list as cc:. I _could_ delete you, and move the list address to To:, but I usually don't feel like taking the trouble. This time I left it deliberately. Seems like you'd have to be able to pick out a list from all the others, which means persisting a list of lists, which may be more trouble than it's worth? You mean if the message is crossposted to multiple lists? Well then, I just use Reply to All. I think just posting to the list is often sufficient, so if others reply, it goes to the list also. No need to CC anyone you already know is on the list maybe? Yes, that's what I'm asking Google to let us do. Anyway, this gets in the realm of to each her own i.e. not my place to micromanage the habits of others, just giving a few cents worth. Kirby -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.org/worknet (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Do we teach computers when we write code?
On Mon, Apr 6, 2009 at 3:05 PM, kirby urner kirby.ur...@gmail.com wrote: I'm wondering what others on this list think of this non-standard use of teaching when talking about programming a computer. The authors say we're teaching the computer I have a very simple take on this. It is an imperfect analogy, but it works in some situations. Children learn concepts much better by programming them than by repeated practice. (Practice should be for skills, like music or sports.) So, although it is not the same as teaching a person, we can help people to understand what we are talking about by judicious use of the analogy. If you want to know where I got this, I can cite Skill in Means in Buddhist teaching, or: In the original Pragmatic philosophy, as set forth by Peirce and William James, meaning is not an attribute of a word, but of the context, in particular of the intentions of the persons concerned. Do we travel around the world every day with the Earth's rotation? It depends how you define travel. Relative to the Earth's surface, in a rotating coordinate system, we don't move. If we insist that motion can only be defined in Galilean or Special Relativistic invariant coordinate systems, where rotation is disallowed, then we move. General Relativity has its own issues. If I see a squirrel on a tree, and I go around the tree, with the squirrel staying out of sight opposite me, do I go around the squirrel, which has kept the same side toward me the whole time? (Example from William James) Am I teaching when I write a textbook? I'm certainly trying to, but you can say that the teaching or learning doesn't begin until a student reads it (if then). Am I teaching when I present examples to a Bayesian spam filter or an AI? Depends. Dunnit? The question whether a computer can think is of no more interest than whether a submarine can swim.--Edsger Dijkstra. Every teacher knows that one of the best ways to understand something is to teach it to someone else. But teaching a computer is not exactly the same as teaching other people. People have a way of interpreting what is being said to them. They read the gestures and the facial expressions of their teachers as well as the words that are spoken. The intonation of the voice is important and matters judged to be obvious are not always articulated. All this may generally assist the learning process but what matters here is that computers are essentially stupid so they cannot interpret any of the commands they are given and the teacher has to articulate everything that is to be learned. A computer has no knowledge of what its programmer is attempting to do. It only knows what it has been told and so the children who are teaching it are compelled to use precise, unambiguous and formal language. The children respect this requirement because they understand that it is not an arbitrary imposition (as many of those made by teachers often are). In todayÕs world we cannot yet address machines informally by the spoken word and, mathematically at least, there may be fewer benefits when we can. There are other characteristics of computers that make them valuable objects to teach. One of these is their interactivity. Without any computers we might use paper and pencil which are useful devices for recording results but less valuable for experimental purposes because they do not encourage an exploratory approach or suggest activity. The computer, in contrast, begs to be used. It always feels quite appropriate to key in ideas and try them out. In fact children are usually so willing to explore different possibilities that teachers are more likely to have the reverse problem of having to persuade them to stand back and reflect occasionally. Teaching the computer From Micromath 18/1 2002 by Ronnie Goldstein http://www.atm.org.uk/mt/micromath.html I'd think this might backfire, as students begin thinking they're being treated much as the computers are being treated, as dull and stupid, such that teachers have to speak very... slowly... and formally. I'm poking around this site thanks to Ian at the scene, who sees ATM dooming itself in some bid to join with a dying NAMA (he was at the NAMA conference right before Pycon). http://www.nama.org.uk/ Not saying I follow entirely as I'm not in the UK (Steve Holden was supposed to translate for me), but I surmise ATM and NCTM are somewhat parallel organizations. ATM was actually founded by Caleb Gattengno, so it's ironic, what Ian is saying. http://www.atm.org.uk/people/caleb-gattegno.html The article above is obviously dated (2002), plus in mine has a lot of incorrect characters, thanks to PDF encoding problems. I think computers are running our scripts more like player pianos. We don't teach our pianos, we tune them (guitars: we play them). We *play* our computers (like guitars) more than we teach them, no? Kirby
Re: [Edu-sig] Generating prime numbers
Your message text got stuck in an attachment, where I almost missed it. I wonder what your mail system thinks it is doing? Comment below. On Sat, Apr 4, 2009 at 12:48 PM, John Posner jjpos...@snet.net wrote: Sent today to python-list ... Inspired by recent threads (and recalling my first message to Python edu-sig), I did some Internet searching on producing prime numbers using Python generators. Most algorithms I found don't go for the infinite, contenting themselves with list all the primes below a given number. Here's a very Pythonic (IMHO) implementation that keeps going and going and going ...: from itertools import count from math import sqrt def prime_gen(): Generate all prime numbers primes = [] for n in count(2): if all(n%p for p in primes if p = sqrt(n)): primes.append(n) yield n The use of all() is particularly nifty (see http://code.activestate.com/recipes/576640/). And so is the way in which the list comprehension easily incorporates the sqrt(n) optimization. Question: Is there a way to implement this algorithm using generator expressions only -- no yield statements allowed? I don't know about Python, but there are lazy evaluation languages with streams that can handle something like isprime=: {n.0 in [2:floor(sqrt(n))] | n} isprime each [2:_]/[2:_] where floor is round down | is remainder (mod) each applies a function to each member of the argument _ is positive infinity / (compress) returns elements of the right argument corresponding to True values in the left argument and we can get rid of the named function by simple substitution, thus {n.0 in [2:floor(sqrt(n))] | n} [2:_] 2 passes as prime because [2:1] is empty, so it generates no 0 remainder. Can you say that in Python? -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Fourth-grade math textbook project
There is a fairly new mailing list, http://lists.sugarlabs.org/listinfo/fourthgrademath, discussing creation of a 4th-grade math book using the Sugar software for the OLPC XO as a base. You are invited if you are interested to contribute or even just to lurk. -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] From trees to text
http://tonyforster.blogspot.com/2009/03/orbital-motion-in-python-and-turtleart.html Orbital motion in Python and TurtleArt Intended to demonstrate two things, a) that programmable simulations are good ways for kids to learn physics and maths b) that the programmable block provides a way for kids to move from simple drag and drop programming to more complicated text based programming Tony's point is that the programmable block allows users to explore Python at any level they like, from a single function call up. This will be an essential part of my strategy for teaching CS and programming through Turtle Art. -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] As We May Think: What will we automate?
On Sun, Mar 22, 2009 at 10:40 PM, kirby urner kirby.ur...@gmail.com wrote: On Sun, Mar 22, 2009 at 8:03 PM, Edward Cherlin echer...@gmail.com wrote: SNIP We need a language-independent way of teaching programming concepts. I have an idea for one based on Turtle Art, which represents programs as trees, not texts. Most programming languages have to transform texts to trees before executing or compiling them. Trees are far more fundamental than texts. Everybody in the LISP world knows that syntax is just sugar on the top of a language. I hope to see other language-independent models. I'm not so sure about this, unless by language-independent you mean we go through several languages, in which case then I agree. What I shun is a purist approach wherein no actually executing language is considered worthy or good enough, because each and every one is considered too quirky or special case in some way (as if that perfectly general language at the end of the rainbow could ever be free of these defects). Nothing like that. Turtle Art is completely executable. http://wiki.sugarlabs.org/go/Activities/Turtle_Art This trading away of a very appealing feature (it runs on a machine) in favor of some paper and pencil pureness is what I'd consider a rip off, as students want the fun of actually noodling and doodling with electrified metal, not just with wood pulp. What's fun about computing is in large degree the superhuman speeds attainable with fast-oscillating crystals. The paper and pencil world shouldn't plan on getting in the way here, though its fine to design with diagrams, storyboard, all manner of squiggles (we also allow colored pens, not just pencils). SNIP In the Wonderful World of the Future, most people will be actively creating active digital content with state and flow control, object abstraction, programming in the sense of producing automated stuff that accomplishes tasks. There are several programming languages popular among non-professional programmers. These languages get no respect in the professional community, and neither do their users. But think what a non-professional programmer is. He or she is typically a specialist in some other domain who needs custom programming. A statistician, a scientist, an engineer, a computer musician...I know people in each of those fields, and others, creating their own software to do their jobs. An example or two might be helpful. I spontaneously think of Excel, SPSS and Mathematica, all of which get respect, although not so much as general purpose languages -- which has specific meaning. Mathematica is general purpose in the sense of comprehensive in what it covers but I don't see it as a replacement for SQL or Javascript. Most of my examples are from APL. Stanley Jordan is a jazz guitarist who graduated from the Princeton Computer Music program. He writes APL programs to write music. My father was an actuary. He calculated insurance rate books in APL. I think it's helpful for all of us to admit that, in writing specific instructions in language A, we're likely also leveraging others' work in languages B, C and D. For example, Python depends on C which in turn depends on a surrounding operating system with an API to the hardware, firmware controlled, and so forth. A musician using a music-editing application is just as much programming, only here the program is notated in musical notation (includes loop constructs, other flow instructions) and the execution is in terms of a MIDI engine or whatever. People always talk about looms, punch card controlled, as an important feeder technology, but player pianos, other instruments driven by recorded media, sometimes rotating metallic, are just as important. A language for professional programmers can be quite elaborate, requiring considerable effort to learn and constant use to maintain. A language for non-professionals must be simple in structure, with minimal syntax and minimal Per the CP4E rhetoric, such as I understand it, we're aiming for a day when writing machine executable notations, including musical, scripts for puppets (avatars, characters) won't be considered a career in an of itself so frequently as a component skill within other more comprehensive disciplines. Per R0ml, we're talking about a new kind of literacy. True. During the Renaissance, the infusion of Hindu-Arabic algorithms and abacus-based thinking, trickling through Pisa and Liber Abacci, had a profound effect on the surrounding discourse, including in art, other media. I think we're in a similar position, in terms of careers morphing in response to new digital capabilities. We're just starting to experience the network effects of 21st century telecommunications. Also the development of geometric optics, which led to perspective painting in the Renaissance and to projective geometry later on. In more practical terms, what CP4E looks like
Re: [Edu-sig] As We May Think: What will we automate?
On Sat, Mar 21, 2009 at 2:14 PM, kirby urner kirby.ur...@gmail.com wrote: One of our Wanderers (think tank in Portland) wrote: I expect that teaching Python/Perl/Ruby/Java in the 2000s will be viewed with the same scorn in the 2030's. The problem with flavor of the month languages is that they are passe a month later, as better abstractions appear. Such evanescent ways of doing things are probably not the basis for life-long learning. We need a language-independent way of teaching programming concepts. I have an idea for one based on Turtle Art, which represents programs as trees, not texts. Most programming languages have to transform texts to trees before executing or compiling them. Trees are far more fundamental than texts. Everybody in the LISP world knows that syntax is just sugar on the top of a language. I hope to see other language-independent models. SNIP In the Wonderful World of the Future, most people will be actively creating active digital content with state and flow control, object abstraction, programming in the sense of producing automated stuff that accomplishes tasks. There are several programming languages popular among non-professional programmers. These languages get no respect in the professional community, and neither do their users. But think what a non-professional programmer is. He or she is typically a specialist in some other domain who needs custom programming. A statistician, a scientist, an engineer, a computer musician...I know people in each of those fields, and others, creating their own software to do their jobs. A language for professional programmers can be quite elaborate, requiring considerable effort to learn and constant use to maintain. A language for non-professionals must be simple in structure, with minimal syntax and minimal But it won't be text based. There may be a few Morlocks laboring down amongst the lines of code like you and I do. Mitch Bradley, the author of Open Firmware, programs to bare metal so that the rest of us don't have to. He is hardly a Morlock. Working with text code will probably be considered fundamental and connected with our roots, like animal-powered agriculture is now Code will not go away. But as in the AI community long ago, we will think of programs to write programs to write programs. So take a look at programming in schools from the viewpoint of an adult in 2030, not a 2009 viewpoint, and heaven forbid from the viewpoint of the ancient times when you and I were trained. What do you wish you had been taught 40 years ago? Not BASIC, not Pascal, not even Python. In my case, Smalltalk, LISP/SCHEME, FORTH, and APL/J, each of which presents a different model for thinking about how computers work and about how to represent knowledge and skill. Each also has a radically simple syntax and a universal concept of data structures. In Smalltalk, everything is an object. LISP represents everything in trees. APL in forests. FORTH in memory layout. LISP, FORTH, and APL each has a different way to model object-oriented programming. I invented Object-Oriented Programming, and C++ is not what I had in mind.--Alan Kay What was fashionable but dated? Computer literacy is the worst. Just as though we had a room where all of the pencils and paper and books were kept, where you could fool around for an hour or two a week, but you had no books in your courses, and you could not do written homework. Earth Treasury is working on Digital Textbooks, now that we can give children the use of computers 24/7. Extrapolate that forwards, and try to guess what they will want, not what you and I consider important /now/. For extra points, try to guess what they should be teaching *their* kids, for use in the year 2060, and get started on the theoretical underpinnings of *that*. In 2060 there will be new physics and math that we have no idea of. There will be new media, and new art forms. We will not think about economics and politics as we do now. We can expect that everybody on Earth who wants to be on the Internet will be. Dire poverty should have ended. We cannot specify content in advance. What I want is for children to be taught collaborative discovery in the realm of powerful ideas. o What is this? Is it real? How do I know? (In a $2 word, ontology) o What does this mean? Is it true? Why should you believe me? (epistemology) o Is this important? Should I do something about it, even if I don't want to? (ethics) I'm wondering what people on this list think about this remark. I responded rather sharply at the time, as I think it's a common dodge, to avoid adding grist to the mill today, because of some hypothetical future wherein said grist will be obsolete. I do not argue against grist. I argue that our children should be able to adapt the mill when necessary. In the meantime, we continue teaching technical subjects as if the FOSS revolution never happened, I think imperiling its gains (sliding
Re: [Edu-sig] CTL: Computer Thinking Language
Comments below. We can provide the authors with a great deal more information on request. On Sun, Mar 1, 2009 at 1:02 PM, David MacQuigg macqu...@ece.arizona.edu wrote: There is an interesting article in the latest ACM {Human Computing Skills: Rethinking the K-12 Experience, Fletcher Lu, Communications of the ACM, Feb.09, p.23}. The authors make a strong case for re-vamping our curricula: despite our best efforts to articulate that CS is more than just programming ... computational thinking (CT) as a skill on a par with reading, writing and arithmetic ... places the core of CS, we believe correctly, in the category of basic knowledge. CS, including incompleteness and undecidability results, is fundamental to epistemology, which is fundamental to child development, as Piaget showed in considerable detail. (What is true? How do you know? When do you need to suspend judgment?) For example, proof and theorem can be syntactically defined in either logic or CS, but truth does not have a mathematical definition. The definition of proof leads to the creation of sentences that can be neither proved nor disproved. A definition of truth would, by exactly the same mechanism, allow us to create sentences of arithmetic that are neither true nor false. proficiency in computational thinking helps us systematically and efficiently process information and tasks. lay the foundations of CT long before students experience their first programming language. Programming is to CS what proof construction is to mathematics, and what literary analysis is to English. I don't see it that way. Programming:CS::calculation:math, perhaps, but the analogy is necessarily imperfect. Then they move to more more controversial statements: Knowledge of programming should not be necessary to proclaim literacy in basic computer science. True if programming is defined by conventional languages written in a text editor. Substantial preparation in computational algorithmic and constraint-based thinking is required before students enroll in programming courses. It hasn't been, but should be. We have accepted the ability to calculate and solve equations as a substitute for the higher-level concepts required. and a specific proposal: a computational thinking language (CTL) that captures core CT concepts must permeate the pedagogy. not a programming language, but rather vocabularies and symbols that can be used to annotate and describe computation, abstraction, and information and provide notation around which semantic understanding of computational processes can be hung. I am doing precisely that with the Sugar version of TurtleArt, which provides tiles that hook together to create programs. The schoolchild learning TurtleArt is not bothered with syntax in any form. Tiles are keyed to render type mismatches impossible. The resulting program is in tree form, like the output of a compiler parser. Outputting various languages brings in the various tree-walk orders and issues of generative grammars. We are creating several sets of tiles to illustrate different CS concepts, and planning a primary school CS course with interactive digital textbooks. I can do all of Euclidean plane geometry, plane analytic geometry, and a toy Turing machine (finite tape, finite set of state symbols) in Turtle Art. We can create tiles for almost any model of programming and computer structure, including prefix (LISP, SCHEME, LOGO), infix (most languages), and suffix (FORTH, RPN calculator) expressions; procedural vs functional vs object-oriented message passing; a wide range of control structures; and much more. They give as an example, a description of Euclid's algorithm for finding the greatest common divisor. They suggest a syntax, which I transcribe here using lamba as the Greek lower-case lambda: lambda a,b. if ab,(a, b-a); else (a-b, b) At this point, they really lost me. Why would anyone go to this much effort to avoid programming language. Python's equivalent statement is just as simple (although a bit odd in its ordering): lambda a,b: (a, b-a) if (ab) else (a-b, b) You left out the termination case in both forms. If one of the arguments is zero, return the other. In any case, lambda notation is completely inappropriate as a first CS language. Have these guys never heard of Python? gcd =. if .(a,b)0 then gcd/(./(a,b)-./(a,b), ./(a,b)) else ./(a,b) in J-like syntax, where . is min, and . is max, and / turns prefix expressions into infix. I think the problem may be a need to avoid favoring one language over another. Any time you make a proposal to use a specific language, you get immediate opposition from folks who favor another language. In my department (Java C++), and at our community college (Java, BASIC, Alice), I seem to have been labeled as the Python guy, pushing yet another language, or even worse, the guy who wants to get rid of type declarations. Python is seen as a
Re: [Edu-sig] project Euler
On Fri, Feb 13, 2009 at 8:30 AM, kirby urner kirby.ur...@gmail.com wrote: On Thu, Feb 12, 2009 at 11:53 PM, Edward Cherlin echer...@gmail.com wrote: SNIP So you're doing that in your head? Not at all. I can do this example with paper and pencil, and I would want a calculator or a log table for larger examples. Let's see... And I would want my Python shell. I don't own a calculator, have no need for one. I mean the Calculator activity in Sugar, or gcalctool. 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 2 8 34 144 610 2584 2 10 44 188 798 3382, ok, 4 more terms...Third grade paper and pencil arithmetic for the rest. I think the word programming is misleading in some contexts. I don't use the word for anything that can easily be done on a non-programmable calculator, an abacus, or a half sheet of paper by one with the skills commonly taught (though not very often learned in full) for each. I'm not that impressed by commonly taught skills i.e. if a kid knows how to use a TI, but not Python, I'm inclined to move on to the next candidate. ! No! Pencil and paper arithmetic skills, not gadgetry. Multiple column addition, subtraction, multiplication. Using Python as a calculator is what Guido mentions in his tutorial. Python or TI? XO or TI? Similarly for APL and J. Yes, as I've mentioned, APL was my first language and I've worked with Iverson himself on a paper about J. I heard from Roger Hui just the other day. Part of why I fell in love with Python is because of its orthogonal primitives, feels like APL in some ways. Plus the whole OO thing is way cool, highly accessible. My oft stated preference is to NOT ever (ever) get stuck in teaching just one language, even if one emphasizes just one in this or that classroom or on-line session. We have to get away from the notion that teaching programming = teaching language syntax. That's why I am working on a set of demonstrations of programming and Computer Science ideas in Turtle Art, where children can create programs directly as trees, not linear texts that a parser turns into a tree for execution. Per some brain science I've been studying, we really do *not* multitask, even though we appear to, any more than an Intel chip really does (OK, some do, but at one time it was all round robin). Kirby -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai (Ed Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] project Euler
On Fri, Feb 13, 2009 at 12:02 PM, kirby urner kirby.ur...@gmail.com wrote: On Fri, Feb 13, 2009 at 11:43 AM, Edward Cherlin echer...@gmail.com wrote: SNIP I mean the Calculator activity in Sugar, or gcalctool. Our use Pippy maybe? We have lost the context of the discussion. The question was not which tools to use in the classroom, but whether programming is the appropriate term to use for processes that can be done on a calculator (physical or virtual), or on pencil and paper. Of course we should use Pippy. And Turtle Art, and Calc, and Etoys and... 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 2 8 34 144 610 2584 2 10 44 188 798 3382, ok, 4 more terms...Third grade paper and pencil arithmetic for the rest. Recent meeting with Anna Roys, TECC/Alaska (tecc-alaska.org): Lesson plan: On-line Dictionary of Integer Sequences, enter 1, 12, 42, 92... Wonderful site. Major professional tool that children can learn from. Follow some links, to my page included, even if just for the pictures (good Virus from Life -- made out of metal nuts it looks like). Treasure hunt? We're focused on linking algebraic sequences, generator type stuff, to visual imagery, So if we tell the turtle to set v=5, and at every successive step to put down a dot, move by v, and set v =. v+a =. 10, we get dots at 0 5 15 25 35 45 55 Dividing by five, or alternatively using the first interval as a unit, we get 0 1 3 5 7 9 11 with partial sums 0 1 4 9 16 25 36 Very good. The next day, take the students outside with XOs and have them take videos of someone dropping a ball from the roof. Pick frames at some suitable interval and overlay them. Tell students to turn their XOs sideways, and ask if they recognize the dot pattern. Thus, in two lessons, uniform gravity means constant acceleration. This is Alan Kay's favorite demo. imaginary content, like we do later with coordinate systems (XYZ, spherical...), but figurate numbers (polyhedral numbers) are a first bridge between algebra and geometry, coordinates be damned (until later). Glue four ping pong balls together: voila, a tetrahedron (your unit of volume in some curriculum segments, unless your school is some kind of joke -- Alaska leading the pack here in some ways). With 20, you can do a dissection of a tetrahedron into four pieces. Two consist of four balls in a row. Two consist of six balls in a two by three arrangement. Most people have a lot of trouble reassembling them. I think the word programming is misleading in some contexts. I don't use the word for anything that can easily be done on a non-programmable calculator, an abacus, or a half sheet of paper by one with the skills commonly taught (though not very often learned in full) for each. I'm not that impressed by commonly taught skills i.e. if a kid knows how to use a TI, but not Python, I'm inclined to move on to the next candidate. ! No! Pencil and paper arithmetic skills, not gadgetry. Multiple column addition, subtraction, multiplication. It's not either/or, but if it's between a TI and Python, then I say Python. Either way, you'll need paper and pencil skills too. A quick challenge: Spheres packing around a nuclear sphere go 1, 12, 42, 92... 10*L*L + 2, where L is the layer number, except where L = 1 we have just the one ball (the shape is a cuboctahedron). So how many balls total? Add up all the layers. Yes, very easy to do in APL. In Python: def cubocta( layer ): if layer == 1: return 1 return 10 * layer ** 2 + 2 def total_balls( layer ): total = 0 for i in range(1, layer + 1): total = total + cubocta( i ) return total But isn't there a closed form algebraic expression for total_balls that doesn't require cumulative adding? Damn straight. We'll get to it. Don't forget to watch the cartoons! This isn't Bourbaki. Visualizations encouraged! This is MVC. Using Python as a calculator is what Guido mentions in his tutorial. Python or TI? XO or TI? Similarly for APL and J. Yes, as I've mentioned, APL was my first language and I've worked with Iverson himself on a paper about J. I heard from Roger Hui just the other day. Part of why I fell in love with Python is because of its orthogonal primitives, feels like APL in some ways. Plus the whole OO thing is way cool, highly accessible. My oft stated preference is to NOT ever (ever) get stuck in teaching just one language, even if one emphasizes just one in this or that classroom or on-line session. We have to get away from the notion that teaching programming = teaching language syntax. That's why I am working on a set of demonstrations of programming and Computer Science ideas in Turtle Art, where children can create programs directly as trees, not linear texts that a parser turns into a tree for execution. I'm just interested in teaching math. I don't give a rip about Computer Science (just kidding, I care plenty
Re: [Edu-sig] project Euler
2009/2/11 michel paul mpaul...@gmail.com: This is a pretty cool site: Project Euler. It's a list of problems that can't be solved using mathematical cleverness alone - they require programming. Not so, according to the examples below. After you solve a problem, you then get access to the list of previous solutions. The first one - Add all the natural numbers below one thousand that are multiples of 3 or 5. - is just a Python one-liner. It's a shorter APL one-liner, but so what? Sum of multiples of three (3-999), plus multiples of five (5-995), minus multiples of 15 (15-990). No programming required. The second - Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed four million. Sum of every third term in the sequence. Set x=phi^3 and sum 2×(1 + x + x^2...) up to floor log 4e6 base x, and round the result. Also no programming. It's fun looking at the previous solutions in all kinds of other languages. Really shows the elegance of Python. It reminds me somewhat of JavaBat. There was some discussion earlier about doing something similar in Python? - Michel ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai (Ed Cherlin) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Topics for CS2
On Thu, Jan 15, 2009 at 3:09 PM, David MacQuigg macqu...@ece.arizona.edu wrote: I'm putting together a list of topics for a proposed course entitled Programming for Scientists and Engineers. See the link to CS2 under http://ece.arizona.edu/~edatools/index_classes.htm. This is intended as a follow-on to an introductory course in either Java or C, so the students will have some exposure to programming, but the Java students won't know machine-level programming, and the C students won't have any OOP. For the proposed course, we will use the example programs as a way to introduce these topics. Earth Treasury might be interested in working with you on this, if you are willing to have it distributed under a Free license in multiple languages. We are working on teaching Computer Science ideas in an age-appropriate manner on the OLPC XO starting in third grade, or if possible earlier, using Smalltalk, Turtle Art, Logo, Python, and other powerful tools, and continuing through 12th grade at least. We will also be using the XO's digital oscilloscope capability (Measure Activity) to teach science and engineering. The outline of our project, with the names of our confirmed partners and a few prospective partners we are talking with, is at http://wiki.sugarlabs.org/go/Creating_textbooks. We will have more announcements of partners, resources, projects, and so forth fairly soon. As you can see from the very few links to completed examples, this is just a start. Many of the links are only to discussions on this list, and I really appreciate the suggestions I have received so far. Also, it is far from a representative survey or optimum sample, rather just a random sample of topics that I found interesting. Some of the topics may be out of reach for students at this level, but that is the challenge. Figure out a way to present a complex or theoretically difficult topic in a way that is simple and intuitive and will whet the students appetite for further study. Additional suggestions are welcome. -- Dave ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component ofScience, Math Education
On Fri, Dec 26, 2008 at 11:18 AM, gerry_lowry (alliston ontario canada) gerry.lo...@abilitybusinesscomputerservices.com wrote: Edward Cherlin, in part: APL is coming. NumPy is heavily influenced by APL, as are the math parts of Ada, Common LISP, FORTRAN 90 and beyond, and all functional programming languages. Therefore, J, APL'S successor in ASCII, makes sense in this regard. J has a small footprint and is brilliantly programmed by Roger Hui et al. I have a copy of their published source code from several versions back. It is amazing how Roger used the C preprocessor so that he could write much of J in APL style, essentially giving an object definition for nested arrays containing data of any mixture of types. Further, Ken Iverson was a teacher until his last breath*. With constant insistence that the right way to learn is by exploration. Try to invent tests that tell you what a function is and does before you read the definition. The J IDE makes a great environment for teacher and student experimentation. +1 from me, of course. The big question is whether Eric and Roger would be willing to GPL some version of J. The computational core would do nicely for many purposes, although I would far rather have the complete system, including object-oriented programming, graphics, and GUI development. Both Alan Graham and Arthur Whitney are working on enhanced APLs under a Free license, and have offered them for the XO. Regards, Gerry (Lowry) Best wishes to all for a healthy, happy, and safe holiday season. References: http://sugarlabs.org/go/Creating_textbooks http://en.wikipedia.org/wiki/OLPC_XO-1 * http://objectmix.com/apl/152815-ken-iverson-dead-83-a.html __ Gerry Lowry, Principal Ability Business Computer Services ~~ Because it's your Business, our Experience Counts! 68 John W. Taylor Avenue Alliston · Ontario · Canada · L9R 0E1 gerry.lo...@abilitybusinesscomputerservices.com -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component of Science, Math Education
On Thu, Dec 25, 2008 at 8:24 PM, Ivan Krstić krs...@solarsail.hcs.harvard.edu wrote: On Dec 25, 2008, at 5:52 PM, Bert Freudenberg wrote: Right, a nice Logo is the one missing piece of the programming environments officially supported by OLPC I talked to Walter (Bender) about a week ago, and he's working on this. We looked at PyLogo together, but it doesn't seem like it'll make a good first pass choice. I see that UCBLogo is packaged in a .xo file for the XO, and that an earlier version was licensed under GPL, although Brian Harvey says, Berkeley Logo is a freeware interpreter that I wrote along with several students. So, Brian, what's the deal with that? http://www.cs.berkeley.edu/~bh/logo.html A version for the One Laptop Per Child XO is here ftp://ftp.cs.berkeley.edu/pub/ucblogo/ucblogo-4.xo http://freshmeat.net/projects/ucblogo/ [License]OSI Approved :: GNU General Public License (GPL) -- Ivan Krstić krs...@solarsail.hcs.harvard.edu | http://radian.org ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component ofScience, Math Education
On Mon, Dec 29, 2008 at 3:37 PM, kirby urner kirby.ur...@gmail.com wrote: Yeah, lots of pro J sentiment on this list, including by me, author of 'Jiving in J' (got some help with typos from Kenneth, though I think there're still a couple): http://www.4dsolutions.net/ocn/cp4e.html There's a bit of a disconnect with the XO in that I really do think of it as for pre-teens, given the small keys and appearance, was thinking bold designs building on XO would be in the wings by now, but apparently that's too hard a project. Actually, it's more that the computer companies don't believe in the developing country market yet, and don't take its requirements seriously. The idea of a Richard Stallings Stallman type geek using the XO as his main laptop just fills me with evil glee, I'm sorry, such an absurd image. The idea of hitting a pre-teen with Erlang and J, whereas most adults I know are still stuck on Access and Excel, is just a wee bit ludicrous, even for the child prodigy cult people (lots of Smalltalkers in that camp). Let's get a little more real, shall we? Ken would have disagreed strongly with you. He got IBM to loan a school a 360 to teach elementary arithmetic with. What laptop would you give a Peruvian or Cambodian teen, if not an XO? Of course it should run Python, and of course it shouldn't ignore the serious advances the XO represents. Take a look at the Encore Mobilis. Brazil is buying them. I worked for Encore at one time. I'm asking them about putting Sugar on it. Kirby -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component of Science, Math Education
On Thu, Dec 25, 2008 at 8:38 AM, Daniel Ajoy da.a...@gmail.com wrote: On Thu, 25 Dec 2008 06:00:02 -0500, edu-sig-requ...@python.org wrote: From: Edward Cherlin 2008/12/23 michel paul : http://www.acm.org/press-room/news-releases/obama-education Computing education benefits all students, not just those interested in pursuing computer science or information technology careers, said Bobby Schnabel, chair of ACM's Education Policy Committee (EPC). Thanks. I'll invite them to join Earth Treasury's digital textbook project for the OLPC XO + Sugar. We have Smalltalk, Python, and FORTH standard on the XO, and we can add anything else of interest. Well, not Ada or C++, but those aren't of interest to third graders. http://wiki.sugarlabs.org/go/Creating_textbooks I don't think FORTH comes with the XO by default. I've the Mexico and Uruguay images and I haven't seen it. What's the name of it's executable? Open Firmware. http://wiki.laptop.org/go/OLPC_Firmware_q2c27#How_to_get_the_ok_prompt How to get the ok prompt Press the ESC key (upper left on the keyboard) during the countdown. Smalltalk only comes if Etoys is installed. What does come is another very nice language, in my opinion. It is * typeless * interpreted * small * manages memory automatically * does conversions between numbers and strings automatically * can connect to the internet * can pipe in and out of commands and files. * it has hashes, and arrays are just hashes of numbers. the language is called awk, and the interpreter gawk now that I think of it, there is another programming language that comes by default: javascript. APL is coming. Scheme is pretty easy. What else would you like? UCBLogo is Scheme without parethesis (and with dynamic scope, instead of lexical scope) http://wiki.laptop.org/images/e/e5/Ucblogo-4.xo The problem is that is it not sugarized yet. We talked about it in July. Somebody needs to step up to drive it, or maybe just to get Brian Harvey involved. There is also an extension being developed for TurtleArt to let it save in UCBLogo file format. http://wiki.laptop.org/go/Logo discusses the options http://n2.nabble.com/Sugar-Labs,-LOGO-and-Brian-Harvey-td474434.html (July 2008) http://lists.sugarlabs.org/archive/iaep/2008-December/003393.html and the LogoFE library for Logo makes is very much like APL. LogoFE is already in Spanish the language spoken in Uruguay, Colombia and Perú, where the XO has had deployments. Excellent. We must see about an English translation. Daniel ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component of Science, Math Education
Wait, I'm wrong. Brian Harvey's home page has a link for UCBLogo for the XO. http://www.cs.berkeley.edu/~bh/ ftp://ftp.cs.berkeley.edu/pub/ucblogo/ucblogo-4.xo I'll go try it out. On Thu, Dec 25, 2008 at 8:38 AM, Daniel Ajoy da.a...@gmail.com wrote: On Thu, 25 Dec 2008 06:00:02 -0500, edu-sig-requ...@python.org wrote: From: Edward Cherlin 2008/12/23 michel paul : http://www.acm.org/press-room/news-releases/obama-education Computing education benefits all students, not just those interested in pursuing computer science or information technology careers, said Bobby Schnabel, chair of ACM's Education Policy Committee (EPC). Thanks. I'll invite them to join Earth Treasury's digital textbook project for the OLPC XO + Sugar. We have Smalltalk, Python, and FORTH standard on the XO, and we can add anything else of interest. Well, not Ada or C++, but those aren't of interest to third graders. http://wiki.sugarlabs.org/go/Creating_textbooks I don't think FORTH comes with the XO by default. I've the Mexico and Uruguay images and I haven't seen it. What's the name of it's executable? Smalltalk only comes if Etoys is installed. What does come is another very nice language, in my opinion. It is * typeless * interpreted * small * manages memory automatically * does conversions between numbers and strings automatically * can connect to the internet * can pipe in and out of commands and files. * it has hashes, and arrays are just hashes of numbers. the language is called awk, and the interpreter gawk now that I think of it, there is another programming language that comes by default: javascript. APL is coming. Scheme is pretty easy. What else would you like? UCBLogo is Scheme without parethesis (and with dynamic scope, instead of lexical scope) http://wiki.laptop.org/images/e/e5/Ucblogo-4.xo The problem is that is it not sugarized yet. and the LogoFE library for Logo makes is very much like APL. LogoFE is already in Spanish the language spoken in Uruguay, Colombia and Perú, where the XO has had deployments. Daniel ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] ACM Urges Obama to Include CS as Core Component of Science, Math Education
2008/12/23 michel paul mpaul...@gmail.com: http://www.acm.org/press-room/news-releases/obama-education Computing education benefits all students, not just those interested in pursuing computer science or information technology careers, said Bobby Schnabel, chair of ACM's Education Policy Committee (EPC). Thanks. I'll invite them to join Earth Treasury's digital textbook project for the OLPC XO + Sugar. We have Smalltalk, Python, and FORTH standard on the XO, and we can add anything else of interest. Well, not Ada or C++, but those aren't of interest to third graders. APL is coming. Scheme is pretty easy. What else would you like? http://wiki.sugarlabs.org/go/Creating_textbooks Yes we can! Yes we can! Yes we can! - Michel -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Relevance of education
2008/12/19 Warren Sande warren.sa...@rogers.com: One of my favourite web comics, XKCD, has a great one today: http://www.xkcd.com/519/ +1 I sent the link to some friend yesterday. (You could, of course, substitute Python for Perl...) Instead of Perl in 11th grade, iconic Turtle Art in Kindergarten! No text, no syntax errors. The previous one on flowcharts was a gem, too. Mine is an O'Doul's. Warren Sande -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] music:piano :: math:laptop ?
On Mon, Dec 15, 2008 at 11:16 PM, kirby urner kirby.ur...@gmail.com wrote: Edward Cherlin's insistent pointing to the XO is helping turn some wheels on my end... It doesn't actually have to be an XO. We have projects forming up to use Sugar on a Stick with diskless computers. That will allow us to take almost all of the discards from the computer refurbishing centers. Way cool that Gibson Guitar was a sponsor of OSCON that time, shows how geeks are being seen from a Nashville angle: have laptop will travel, the solo musician model, except we also form bands. Really, so many analogies, between musicians and coders. Also math and science. What calculators, slide rules before 'em, have gotten us used to, is this idea that mathematics comes with devices, gizmos, more than just chalk or pencil. We need machinery! (a slide rule has moving parts, c'mon). What's interesting is how reluctant the marketing groups have been, to link their brands to something so Buck Rogers and futuristic as the XO, or even to the basic idea of giving kids laptops. It has all the elements: breakthrough technologies, hero developers (many genders and ethnicities), adorable children, cool interface... you'd think the cereal companies would be all over it, giving kids something to marvel at while crunching on wholesome grains. We're definitely getting uptake among basketball, football, and soccer players. How about we start a campaign among tweens and teens called Where's My Laptop? I wanted to offer child-size t-shirts along with Give One Get One, for the point where orders outstrip production. Then you could buy your grandchild or whomever a shirt saying Grandma bought me an XO for Christmas, but all I have so far is this funny t-shirt. And then offer transfers with the late laptops, for crossing out the complaint and saying, I got it! I got it! Let's encourage that sense of entitlement we get listening to R0ml, who says gnu math, CP4E, computer literacy (lots of words for it) is what in the old days would be called basic rhetoric. To participate in civic life, you needed to know how to structure an argument, defend a position. Well, you still need those skills, but you also need that laptop. How else do you expect to patch in, participate in the life of democracy. Not just that. You have to have a story, like Walt Whitman or Mark Twain or Carl Sandburg telling Americans who they are. So far we have a hope. But there are stories. Doug Engelbart's hero story leading up to The Mother of All Demos, Alan Kay and Seymour Papert as the prophets in the wilderness, and a few others. What do we want? Laptop! When do we want it? Now! I don't think that this will be a matter of defiant public demonstrations. My story (and I'm sticking to it) is that Sugar's virtues can sneak into the schools where there isn't even a crack in the doors, unnoticed until after they have taken over, and that there will be no way to undo the changes, because they make students, teachers, and parents happier and more productive. Kirby ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Fwd: The 'Certified' Teacher Myth (long)
On Sun, Dec 14, 2008 at 11:27 AM, kirby urner kirby.ur...@gmail.com wrote: I'm forwarding this, enqueued with Math Forum moderators, as it gives some background perspective of potential utility to edu-sig subscribers, plus indirectly expresses my gratitude to Stef Mientki for his promising project. If you're embroiled in USA math wars at all and want to do background reading on this thread, here's a link: http://mathforum.org/kb/thread.jspa?threadID=1869138tstart=0 I'd recommend staying blissfully ignorant of a lot of it though, +1 lest you get caught up in dinosaur flavors of should we allow calculators in math class? kinds of debates (nothing at all about computer languages), angry mud slinging that's been going on for decades and going nowhere (lots of energy sinks, time sucks, not worth your attention). Now that we are embarked on creating interactive textbooks for the OLPC XO project, (_not_ CAI-style, but more along the lines described in Seymour Papert's book Mindstorms: Children, Computers, and Powerful Ideas), all of those arguments are irrelevant. On Sun, Dec 14, 2008 at 10:42 AM, Michael Paul Goldenberg wrote: SNIP As we prepare for what well may another world-wide depression thanks to the GRUNCH of the giants that Haim doesn't want to discuss here (we're supposed to believe that it's teachers' unions that got us where we are, I suppose), we should be spitting in the faces of people like Haim and their self-serving, utterly bankrupt views and policies. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig Plenty of people can be blamed for the current mess in education worldwide. I have a better idea. Let's invent something that they can't prevent infiltrating the system. Wait, we've done that. Well then, let's get on with it. Living well is the best revenge.--George Herbert Genius is 1% inspiration and 99% perspiration.--Thomas Edison, who was evidently an optimist. Really good ideas can take the rest of your life to work out, or in the truly exceptional cases, the lives of multitudes for centuries, even millennia to come. -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Programming in High School
On Mon, Dec 8, 2008 at 6:57 AM, David MacQuigg [EMAIL PROTECTED] wrote: Kirby, This is very well written appeal, but in this mailing list, you may be preaching to the choir. What I would like to see is a discussion of *why* there is not more teaching of programming in high school. I can't seem to get an answer from the few high-school teachers and students I have asked. I suspect it has something to do with requiring all kids to have their own computers, not wanting the rich to have an advantage over the poor, etc. I've thought about teaching high school myself, but the bureaucracy seems overwhelming. It is a much more systemic problem than that. I put a lot of blame on the anti-intellectual forces in society that want education dumbed down so that they can lie to their own children, and then to the general public that grows up on this pablum. The fundamental problem is the insistence on factory-style efficiency in education, a trend started by Prussia in the 18th century. The result is that schools nearly always teach only material for which there is an official right answer, while in real life, whether business, government, the arts, or politics, all of the interesting questions have no right answer. The education of teachers was also radically dumbed-down in the Prussian system. Teachers were expected to know no more than was in the textbooks they would teach from, except at the highest levels in research universities. In this view of society, those who needed to deal with the unanswered questions on a daily basis (other than scientists and engineers) were to be children of the elite class who could afford to send them to private schools to receive an entirely different sort of education. The sort of exceedingly unpleasant system for generating leaders within an Empire that Kipling described in Stalky Co. http://www.geocities.com/Athens/Academy/6422/rev0882.html The Prussian system was put in place by a King who wanted a compliant public that would make no attempt to interfere in his planning of the next war, and by a right-wing Calvinist church movement that the King preferred over the more liberal-minded Lutherans. _All_ of the Imperial powers and the churches and business interests that supported them supported this system for public education at home and abroad. Japan and the State Shinto authorities particularly loved the German educational system. Plus ça change, plus ç'est la même chose. To come back to programming, what we have had since the introduction of personal computers in the 1970s has not been programming but so-called computer literacy, in which children might get as much as an hour or two a week in the computer lab. As an immediate consequence, nothing they learned about computers, or from using computers, could have any relevance to the curriculum. It is only now, with the advent of one-to-one computing, that we can even think of addressing this problem. If we compare the computer literacy approach to programming with the actual idea of literacy, we see that what we have been doing is pretending to think we are teaching reading and writing if we have one room in a school with 30 pencils and pads of paper, but no library, and we let kids practice handwriting for as much as an hour a week. But not at home, or in public, no of course not. But what would schools do with programming in a one-to-one computing environment? Well, I predict that if left to themselves, they would mess it up as badly as we mess up literacy, or math and science, or indeed any subject today. We only let students have access to an utterly boring and stultifying version. It is just like exposing children to killed or attenuated viruses in order to make them immune to those viral diseases. Our schoolbooks contain nothing like the versions of any of these fields that made the practitioners fall in love with the possibilities enough to put forth the effort to master some part of it, and our schools make far too many children immune to learning anything ever again. Earth Treasury has just recently, actually just yesterday, come to the conclusion that we are ready to rethink the notion of a textbook, and to rework the curriculum from top to bottom, in order to integrate Free Software into every aspect of every subject. Some things in education actually take place in the material world, of course, including gym, manual training, art, and music. Even there, the computer is an important tool. Think of all of the computerized athletic training and analysis systems of Olympic athletes and the pros; or of CAD/CAM; or digital art and electronic music. The occasion yesterday was the Program for the Future conference at the Tech Museum (San Jose CA), Adobe Systems, and Stanford, and the celebration of the 40th anniversary of Doug Engelbart's Mother of All Demos (look it up and watch the video), which laid the foundations for all modern user interfaces, and much else in software engineering, innovation
Re: [Edu-sig] Reinventing the classroom...
On Sun, Nov 16, 2008 at 12:20 PM, kirby urner [EMAIL PROTECTED] wrote: So once we agree we want some kind of computer lab, the question is, what kind? That's a pretty strong assumption, and one that the 1-1 computing community would strongly take issue with. I haven't noticed much good from computer labs, while I have seen quite remarkable results reported from One Laptop Per Child deployments in Peru, Ethiopia, and elsewhere, where the children not only have the use of a computer throughout the school day, but take them home to work on homework jointly over the wireless network, and teach their parents about computers and the Internet. The computer lab strikes us as exactly analogous to a writing lab in which children would have access to paper and pencil for an hour a week. -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://wiki.sugarlabs.org/go/User:Mokurai ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] More preaching to the choir...
On Sun, Oct 19, 2008 at 4:41 PM, kirby urner [EMAIL PROTECTED] wrote: Yes, not that hard, agreed. I think we're in the right headspace, here on edu-sig, re teaching physics / math and so on with all this well known content, plus adding more experimental fun around the edges, ala programming just for the fun of it (ab attitude we highly encourage). Given how OO makes objects so concrete (per Concrete Mathematics) it's not so unrealistic to suggest adding some quaternions to the mix, just one more animal in our zoomorphic kingdom (or queendom, not pretending to know). Well, once you get to that point, you can easily add octonions, spinors, tensors, operators, crystallographic groups, and quantum groups. ^_^ However, I have started a project at EduForge.org that I call Kindergarten Calculus, to approach the issues from the opposite direction. The question is how to demonstrate the fundamental concepts of calculus visually to preschool children with no numbers and no symbols. Limits, tangents, maxima and minima, definite integrals (area under a curve), and other materials. I know how to start, but not how far we can go. I can certainly show the Fundamental Theorem of Calculus and the Mean Value Theorems. There are some simple cases of Calculus of Variations that have physics equivalents. We have to think about what has an algorithmic equivalent that we can program visually. Anyone interested is welcome to join the project. Given XO is hardware with access to the cloud (by design) it's unnecessary to map curriculum to it or any other hardware device, as this isn't about hardware in the first place, but curriculum, and there's so much already out there, much of it very pre-computer in flavor, yet nevertheless relevant, Hamilton's brief included, Kepler's and so on. I would like to factor each of those lessons into concepts that can be taught at different ages, and to introduce them in sequence at the appropriate ages. This should produce much deeper understanding than waiting until students are supposed to be able to do it all at once. Thus Galilean gravity in a uniform field can be demonstrated via programming to third graders, while full Newtonian gravity requires calculus. That being said, I like the idea of equipment especially designed with the needs of young children in mind. I was gleeful that so many adults found the XO frustrating to use because of the tiny keys. That's the whole point -- it's for them, not you. Of course in this sense there's a need for Sugar friendly apps, and/or new kinds of Sugar. I'm eager to find out more. All that's really needed, in terms of equipment, is a decent browser and Python itself (if teaching Python). In addition to writing stuff for laptops (multiple platform), I'm aiming at the LCD (or flatscreen) market, piping directly to coffee shops (e.g. booths), so an intimate group might study together without bringing any hardware whatsoever. The same LCD plays music and does Apple style visualizations i.e. isn't just for study hall activities (these might be small screens, between HD and iPod, XO a source of ideas). So now that we know what the future looks like, I'm wondering how geeks will spontaneously self-organize to deliver a quality product. I imagine more Rich Data Structures will be a part of it, as in canned Periodic Table modules, with XML i/o if not natively XML -- I'm somewhat influenced by Ruby's anti-XMLism, GIS data re cities (example @ my site), insectavora and so on. However, I'm not expected all the stress of development to fall on open source developers. Much of this stuff will be kept under wraps and niche marketed under more restrictive licensing, simply because there's a market for it and open source isn't the answer to every prayer, even if it is to so many. Several of us here wear multiple hats in that regard e.g. contribute to open source yet support clients who don't choose to compete in that arena -- describes my situation at least. I'll be interested to hear more about what develops in those projects I learned about at the most recent OSCON, as many of those *were* open source, just not based anywhere close to Portland. As you might imagine, I have a hard time keeping up even just with what goes on in my home town. Kirby Urner Fine Grind Productions On Sun, Oct 19, 2008 at 3:30 PM, Edward Cherlin [EMAIL PROTECTED] wrote: 2008/10/19 kirby urner [EMAIL PROTECTED]: Here's a pointer to some related writings @ Math Forum, which I used to tell Arthur S. (this archive) was more like center ring in my circus, i.e. where math teachers meet irrespective of caring about geek subculture, computers etc.: http://mathforum.org/kb/thread.jspa?threadID=1845616tstart=0 Re planets in orbit, another interesting implementation, already field tested, multiplies complex numbers of unit radius, begetting rotation, then scales appropriately. Of course these orbits
Re: [Edu-sig] More preaching to the choir...
2008/10/19 kirby urner [EMAIL PROTECTED]: Here's a pointer to some related writings @ Math Forum, which I used to tell Arthur S. (this archive) was more like center ring in my circus, i.e. where math teachers meet irrespective of caring about geek subculture, computers etc.: http://mathforum.org/kb/thread.jspa?threadID=1845616tstart=0 Re planets in orbit, another interesting implementation, already field tested, multiplies complex numbers of unit radius, begetting rotation, then scales appropriately. Of course these orbits are merely circular, so not that realistic, so apply some field distortion if wanting elliptic (not something we tried). I did a simulation of elliptical orbits in TutSim on the Apple II in 1982. It isn't that hard. I know of several different ways of programming it, using inverse-square gravity, Kepler's law of equal areas, and other equivalent mathematical representations. I set up a three-body simulation in which one object was thrown out and the other two settled into elliptical orbits around their barycenter, after a chaotic early period. There are such simulations in a number of languages, including Python and Smalltalk, where students can vary parameters and watch the results. Some of this is in the Sugar software for the OLPC XO. A. K. Dewdney's book The Planiverse describes simulations of inverse linear gravity in 2D, and others have done inverse cube gravity in 4D. You can get weird weather, seasons, and climate effects on planets in 4D with two independent axes of rotation, depending in particular on whether the rotation periods and the revolution period are close to or far from simple integer ratios. Here's some code: http://www.4dsolutions.net/ocn/python/orbits.py Kirby 4D ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Edward Mokurai Cherlin http://wiki.sugarlabs.org/go/User:Mokurai http://www.amazon.com/xo Give One, Get One, from Nov. 17 ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] [Tutor] school physics/math courses
On Sat, Oct 18, 2008 at 9:06 AM, bob gailer [EMAIL PROTECTED] wrote: Edward Cherlin wrote: [snip] As a teacher, I know very well what it means. Some representations are easier to understand, or easier to work with, or easier to learn from. Various thinkers, including Babbage, Whitehead, and Iverson, have commented on the effects of the way we represent problems on our ability to think about them, and not only they but luminaries from Fibonacci to Einstein have labored to invent or teach new notations and representations. I'm glad to see Iverson amongst Babbage and Whitehead. Turing Award lecture, Notation as a Tool of Thought. In 1974 I was introduced to his invention: APL. That transformed how I thought about problems and expressed algorithms. I still wish for some way to bring some of that magic into Python. See NumPy and SciPy, which used APL for some design ideas. If we can get some people together on this idea, we can add more APL to Python. Perl6 will have some of this, but that's a knotty business that I am staying out of. I'm working on getting a GPLed APL for the OLPC XO. Arthur Whitney is writing one. I was the founder of I-APL, Ltd, and Managing Editor of APL News for Springer-Verlag. I have the copyrights on Iverson's textbooks for Arithmetic, Algebra, and Calculus, and intend to put them out under Creative Commons licenses. I need to recruit more people--mathematicians, teachers, APLers, and others--to work on these projects. I found it interesting to hear (in the migration to Python 3) that the Python reduce function was not used a lot or well understood. I certainly use and understand it. A brief tutorial for any who have read this far and are curious: In Python one may combine the elements of a list using sum() (if the sum is desired). For other functions one uses reduce. To get the product of the elements of a list Y: reduce(operator.mul, Y). In APL reduce is / and multiply is x so one writes x/Y. (Classic APL had only upper case for names). And underscored upper-case. Y̲ The XO has a ×÷ key, so we can write this correctly: ×/Y ÷/3 4 0.75 I can write and comprehend x/Y much faster than the wordy equivalent. And Y can be an array of 0 or more dimensions. +/Y computes the row sum giving an array of one less dimensions*. So if Y were: 1 2 3 4 5 6 the row sum is 6 15. * if the number of dimensions is 0 (a scalar value) the result is the scalar value unchanged. We also have primitives for matrix products, evaluating polynomials, matrix inverse, least squares, and a good deal more. Most people hate APL, because it exposes the math inherent in programming, and most people assume that for that reason they cannot learn APL. However, Iverson wrote his Arithmetic textbook for an IBM-funded experiment in using APL as the math notation in an elementary school. -- Bob Gailer Chapel Hill NC 919-636-4239 When we take the time to be aware of our feelings and needs we have more satisfying interactions with others. That's what we call meditation in Buddhism. Nonviolent Communication provides tools for this awareness. As a coach and trainer I can assist you in learning this process. What is YOUR biggest relationship challenge? -- Silent Thunder (默雷/धर्ममेघशब्दगर्ज ) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] school physics/math courses
On Thu, Oct 16, 2008 at 4:15 AM, roberto [EMAIL PROTECTED] wrote: hello (i am rather new in python ...) Have you looked at NumPy and SciPy yet? Or anything written using them? i am about to start a course of physics and math for students aged 14-17 (high school) and i am deeply interested in the possibilty of teaching fundamental concepts of these subjects via teaching programming; i chose python (i won't change my mind ...) so i am looking for resources on how to deal with these topics via this great programming language; i need some help from you and moreover if you are aware of books already covering these need thank you in advance -- roberto OS: GNU/Linux, Debian ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Don't panic.--HHGTTG, Douglas Adams fivethirtyeight.com, 3bluedudes.com Obama still moving ahead in EC! http://www.obamapedia.org/page/Smears Join us! http://wiki.sugarlabs.org/go/User:Mokurai For the children Silent Thunder (默雷/धर्ममेघशब्दगर्ज ) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] school physics/math courses
2008/10/17 michel paul [EMAIL PROTECTED]: We should abandon the vision that physicists seek an ultimate mathematical description of the universe since it is not obvious that it exists. I disagree with this attitude. We can seek an ultimate mathematical description, since it is not obvious that it does not exist. We should also be aware that we do not have one, and have some idea of the range of validity of our models. This will help us to avoid mathematical absurdities, particularly the infinities that result from calculations on unphysical point masses and point charges. The job of the physicist is that of modeling phenomena within the physical scales of observed events. True much of the time. Another part of the job is to model outside the scale of the observed, and go make the new observations needed, as in the case of General Relativity. For some systems, the modeling can be done more effectively using algorithms. As a mathematician, I don't know what that means. Every algorithm can be represented by a system of equations in a number of ways, and every system of equations can be solved, at least approximately, by various algorithms. As a teacher, I know very well what it means. Some representations are easier to understand, or easier to work with, or easier to learn from. Various thinkers, including Babbage, Whitehead, and Iverson, have commented on the effects of the way we represent problems on our ability to think about them, and not only they but luminaries from Fibonacci to Einstein have labored to invent or teach new notations and representations. This is very interesting. Thanks for sending it. On Thu, Oct 16, 2008 at 7:14 PM, Massimo Di Pierro [EMAIL PROTECTED] wrote: Hi Paul, this is a document I write as a summary of a meeting I attended in 2006 at Argonne National Laboratory about revising the Physics curriculum. If it is of any use you can do anything you want with it. Massimo On Oct 16, 2008, at 5:55 PM, michel paul wrote: This would be a great text for a high school math/CS class: Math for the Digital Age. - Michel On Thu, Oct 16, 2008 at 4:15 AM, roberto [EMAIL PROTECTED] wrote: hello (i am rather new in python ...) i am about to start a course of physics and math for students aged 14-17 (high school) and i am deeply interested in the possibilty of teaching fundamental concepts of these subjects via teaching programming; i chose python (i won't change my mind ...) so i am looking for resources on how to deal with these topics via this great programming language; i need some help from you and moreover if you are aware of books already covering these need thank you in advance -- roberto OS: GNU/Linux, Debian ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig ATT1.txt ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Don't panic.--HHGTTG, Douglas Adams fivethirtyeight.com, 3bluedudes.com Obama still moving ahead in EC! http://www.obamapedia.org/page/Smears Join us! http://wiki.sugarlabs.org/go/User:Mokurai For the children Silent Thunder (默雷/धर्ममेघशब्दगर्ज ) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
[Edu-sig] Python 2.6 Turtle module and Sugar TurtleArt (was Re: Edu-sig Digest, Vol 63, Issue 11)
How would you compare this turtle module with the TurtleArt activity in Sugar? It is available in .deb and .rpm packages for Ubuntu, Debian, and Fedora, and also in .xo bundles, installable with xo-get.py. Sugar Labs is working with other Linux distributions to make Sugar packages available as widely as possible. http://wiki.laptop.org/go/TurtleArt http://wiki.laptop.og/go/Xo-get On Wed, Oct 8, 2008 at 1:14 PM, John Posner [EMAIL PROTECTED] wrote: Miguel, Python 2.6, which was released one week ago, comes with a new turtle module. Perhaps this is something, you and your kids would like as it is pure educational Python software based on Tkinter. One of it's design goals was to provide easy access to graphics ... Gregor's new Turtle module is, indeed, terrific. If some students need a gentler introduction, take a look at the point-and-click front end that I added (ClixTur at http://www.geocities.com/jjphoogrp). Students can begin by creating drawings pretty much as they would in KidPix or Paint or Visio. (OK, it's a bit more primitive, because there are no dragging operations). As they click, a transcript of the Python code being executed appears in a separate window. The students can use this code to: * play back the transcript, to recreate their drawings This is very simple, but it gets across the idea of a stored program. And the high speed of the playback will be fun for younger students. * make revisions to the Python/Turtle code, and see what differences they produce in the drawing This kind of introduction to programming is much less intimidating than starting with a blank page. And it's just about as satisfying, especially if you generated the original code yourself with the point-and-click interface. Best of luck, John Posner ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Don't panic.--HHGTTG, Douglas Adams fivethirtyeight.com, 3bluedudes.com Obama still moving ahead in EC! http://www.obamapedia.org/ Join us! http://wiki.sugarlabs.org/go/User:Mokurai For the children ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Algorithms Animator Open Sourced
Thank you. Presumably we could apply the same approach to teaching elementary-school arithmetic algorithms, maze traversal algorithms, and the like for One Laptop Per Child. I have suggested this to their Education mailing list. On Sun, Sep 14, 2008 at 1:14 PM, DiPierro, Massimo [EMAIL PROTECTED] wrote: I open sourced this. In the hope it is useful to some of you. Algorithms Animator https://launchpad.net/algorithms-animator Python application that implements and animates interactively those algorithms that are normally covered in an undergraduate course on the topic. It includes Insertion Sort, Quicksort, Mergesort, AVL Tree Search/Insert/Rebalance, Depth First Search, Breadth First Search, Topological Sort, Prim, Kruskal, Dijkstra, LCS, Huffman-Fano, and more. It is extensible. All the API are exposed. It includes a ready-to-run Windows executable (bin/AlgorithmsAnimator.exe), some documentation and a short tutorial about running time analysis (doc/csc321notes.pdf). This program was originally designed in 2003 for teaching Design and Analysis of Algorithms at DePaul University. All the algorithms in the source code (src/csc321algorithms.py) are equivalent line-by-line to the pseudo-code in the MIT CLRS Introduction to Algorithms book. Massimo ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Don't panic.--HHGTTG, Douglas Adams fivethirtyeight.com, 3bluedudes.com Obama by 70 in EC! http://www.obamapedia.org/ Join us! http://wiki.sugarlabs.org/go/User:Mokurai For the children ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] nouns and verbs
On Tue, Aug 5, 2008 at 10:32 PM, Yoshiki Ohshima [EMAIL PROTECTED] wrote: At Sun, 3 Aug 2008 20:03:03 -0700, michel paul wrote: In secondary math classes we often say Math is a language, but we really don't teach it that way. The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'. I enjoyed reading your lines of thought, and Edward has a good observation. But I also have to point out that when people say math is a language, it means that Math is a language to describe what it can describe well. But trying to make an analogy to English doesn't get you go too far. After all, why does it have to have anything to do with the English syntax? It is not a great language to express what you would like to do over weekend either. The language-ness is not in whether it has verbs and nouns, but the relationship between the target concept (Idea) and the description to mean it, and also something to think in. Most of math uses quite other forms of language, including equations and relations. It turns out that math for imperative programming is the kind that makes the best use of the noun-verb-adverb-pronoun family of distinctions. On the other hand, there are math languages important for computing that are analogous to quite different human languages. Among them is relational algebra, which can express all standard relational database operations, and can be expressed quite directly in Lojban, which has relation words but no separate nouns, verbs, or adjectives. There are also declarative languages such as Prolog that do not specify how to carry out a computation, but do give sets of constraints on the solution that a Prolog engine can process. The question is not, Which language is best? but, Which is best for this purpose? Which is not only a question of inherent mathematics, but of external network effects and ecologies and of available hardware. And, the language-ness is not in these mathematical symbols and syntax, either. It would be possible to write equations in English-like syntax (like your sum of 2 and 3 example). But the aspiration of preciseness compactness tends to favor a simpler and less ambiguious notation. The solution of the cubic equation was discovered and presented in this sort of language. Florian Cajori wrote an excellent History of Mathematical Notation that talks about the relationship between notations and discoveries in considerable detail. So, it would be appropriate to say math is a language for of physics but saying math is a language doesn't sound like a complete sentence to me. Is math a language of math? would be an interesting question^^; There are many languages in math. Now, computer languages are like mathematics, but much more complex in many ways. It is built on top of some axioms, but the set of axioms tends to be very big. The notation is less ambiguous than typical mathematics one because one of the intended readers of the notation is the computer. Actually, to the mathematician, programming is a fairly simple concept that can be expressed in several different ways as the working out of only two basic concepts, such as the S and K combinators (Unlambda or J), or Lambda expressions and application (LISP and many related languages). Most programming languages have a good deal of unneeded and counterproductive complexity added on, like C++. To the non-mathematician, these simpler solutions seem harder than memorizing the complex syntax of conventional languages, as was often borne in upon Computer Scientist Edsger Dijkstra. He spent much of his career trying to make programming easier to do well, and was regularly told by practitioners that he had made it harder instead. The same principle applies with even greater force in education. Don't do us no favors, teachers seem to say. if you make it so that we can really teach this stuff, then we will all have to go learn it ourselves, and we can't. This is a delusion in a way, but not the delusion of the teachersthemselves. It is a delusion enforced by the social system they work in. Like Ethiopian teachers treating questions from students as personal insults, until they get XOs. There experience suggests that there is hope for the profession as a whole. -- Yoshiki ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Silent Thunder [ 默雷 / शब्दगर्ज ] is my name, And Children are my nation. The Cosmos is my dwelling place, And Truth my destination. ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] after-school python, age 11+
You guys and kids are all so great. How would some of you like to speak and do demos at a future PyCon? Next year will be in Chicago, and for the year after that I am heading the bid to get it in the San Francisco Bay Area. The other possibilities are Atlanta and Cleveland. If you are interested, I can introduce you all to the PyCon staff and to the OLPC Grassroots list, and we can organize something for lots of children all over the world. There are a lot of other conferences that should see your work up close. Software, hardware, education, economic development... Also, how would you and your publishers like to have classroom-tested Spanish and other translations of your books? 2008/8/21 Warren Sande [EMAIL PROTECTED]: Jeremy, I was at the same point a couple years ago, and reached the same conclusion. Long story short, the end result is Hello World! Computer Programming for Kids and Other Beginners which I wrote with my son. It will be released in a few weeks. Some edu-sig folks were involved in the review process (Thanks, all!) You can see the publisher's page here: http://www.manning.com/sande/. You can pre-order it on Amazon here. It uses Python (and Pygame and PythonCard). Some examples are games, but many more are not. It takes a fairly traditional approach to teaching beginning programming. I think the presentation, writing style, illustrations, and examples make it suitable for kids 10 and up. Several adults who reviewed it said they would use it, too, which I was really happy to hear. We absolutely tried to avoid talking down to the reader, while also trying to make it fun. Regards, Warren Sande - Original Message From: Jeremy Gray [EMAIL PROTECTED] To: edu-sig@python.org Sent: Tuesday, August 19, 2008 12:44:41 PM Subject: [Edu-sig] after-school python, age 11+ Hi all, This is my first post to edu-sig, and its sort of long. In a nutshell: a) I have developed and posted a few new material for kids getting started with programming, e.g., for an after-school club, at http://afterschoolpython.pbwiki.com/ Its free (no advertising ever, open-source recommended), and will be so forever. b) I am interested in collaborating with or sharing notes with others, to make it even better. Being new to this interesting forum, I'll introduce myself briefly. I'm a dad (two kids, age 11 and 5), and have always been a geek at heart. I do science for a living (human brain imaging and psychology, using computers for everything), and have interests in education (including National Science Foundation grants related to education research). I'm not an elementary-age educator, although have family members who are educators. So it seems inevitable that I'd end up lurking on python edu-sig :o) I've seen some fairly long posts, so I'll take the plunge with a longish one myself. Apologies if that's frowned on. Basically, I want to teach my 6th grader how to program this coming year. We've fooled around with logo / turtle graphics and like it, and are ready for a real language. I was quickly sold on python as the way to go, despite never having used it myself (or any OO language ... or maybe in part because of that--I want to learn something too!). I looked around for existing materials, and am really impressed by how much is out there for python (one of several selling points). yet I did not find anything I was that completely happy with. I looked carefully at the following, and learned a lot, and like a great many things about them: - Snake Wrangling for Kids - LiveWires summer program - other resources linked on Beginner's Guide to Python for non-programmers - A byte of python - J. Miller's 2004 PhD dissertation. his analysis of posts on what the community thinks about desirable features in using python in education is really helpful. one point that caught my eye was the dearth of intro curriculum materials. So, I took the plunge and have started to write something up myself. Its well underway, but is a work in progress, at http://afterschoolpython.pbwiki.com/ My goal is to have it be an experience in learning how a computer can enhance your mind, using a real language, aimed at a young audience without talking down to them. (Young but able to read, type using a text editor, and do some elementary-school math). I tried to follow Miller's guidelines on desirable features, but have not followed them all (not yet at least, graphics is a glaring example). The key thing that motivated me to put effort into yet-another-free-resource for learning python was to try to focus on problem solving as enhanced by a computer, for this age group. Plus sneaking in some geek tidbits here and there, like a few linux command-line tools (e.g., top), so that they are not seen as exotic or weird or hard. A few of the activities are basically cognitive science, and a few are more or less math. I'm posting for two main reasons. 1. The
Re: [Edu-sig] Free Software in Africa
here at OSCON). Word for framework in Malawi. Chisimba is highly modular, per Debian community (ala Synaptic), includes a package management system. Implements MVC. Yes, there's Python involved, hooked to gstreamer. Also: CURL, FFmpeg, Java... lots of toyz, went by pretty fast. Now Keats is demoing the remote package management component. You can start a new eLearning environment in just minutes, given enough bandwidth. Everything else is component based, e.g. adding a blog or some other resource is a matter of mouse clicks. Some components allow real time audio, shared white board annotation, filtering. With cut and paste, you can embed the live component in a blog, in a moodle or whatever. www.dkeats.com for more examples. USAID, Sun Microsystems, Geek Corps are part of the alliance somehow (USAID focused on animal health). University of Nairobi, NOLNET in Namibia are working on implementing AVOIR, as is National University of Rwanda. Electronic Thesis and Dissertation system is another of the components. Sun is providing hardware in six of the thirteen partner institutions so far. Social Content and Networking for Schools connects like 50 schools in poor areas to create an intranet (not connected to Internet) with social networking and eLearning. Social tools help curriculum content to grow. Chisimba reminds me of Plone, sort of, but it's built very specifically for customized eLearning environments. Sometimes Chisimba users become potential interns, helping with Chisimba's development. Those who've become interns have contributed usable code without exception. Realtime podcasting application is a 3-click process. Start, Stop, Publish. Bandwidth is the biggest challenge. Some institutions don't realize the value of networks. Culturally, there's often a tendency to keeping quiet, to be deferential, whereas on the Internet you're encouraged to be more egalitarian (out of necessity in a lot of ways). Salary structures and high turnover are other problems. People move on before they have time to become Chisimba developers. Questions: what about OLPC (one laptop per child). Getting computing resources to students is a good thing, not limited to the XO initiative. Providing labs on a massive scale is the only way to provide a lot of access in many cases, as the students have no access to laptops. This is where Sun comes in, in some cases. Government funding has been problematic in that the South African department with jurisdiction has had some turnover, some friends have left. Why start a new framework? In part to encourage local participation, hard to break in to ongoing open source projects in some cases. A goal here was to be self-managing, running all aspects, including the version control, servers. Sometimes it's just easier to start from scratch. AVOIR is about developing competence and confidence among young African software developers. It's an exercise in community building, as well as a project aimed at producing quality software (they go together). I asked about fonts, internationalization. A lot of the languages just use Latin-1 characters, but in Afghanistan they're working on the Farsi translation (of Chisimba). The Chisimba package itself is sophisticated about language issues, uses UTF-8. The animal health project has a mobile devices API although Dr. Keats isn't sure how far they've come along with that. Kirby ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Edward Cherlin End Poverty at a Profit by teaching children business http://www.EarthTreasury.org/ The best way to predict the future is to invent it.--Alan Kay ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] alpha release of carcode (v3)
On Thu, Jul 17, 2008 at 1:52 PM, Toby Donaldson [EMAIL PROTECTED] wrote: Carcode, a project aimed at helping beginners learn to program by controlling an animated robot car, has just been released in alpha: How does this differ from the animated robot car in Etoys, which can be programmed using snap-together tiles? http://code.google.com/p/carcode/wiki/README Here are some screenshots: http://code.google.com/p/carcode/wiki/Screenshots This release is entirely the work of Carlos Daniel Ruvalcaba Valenzuela, who has been doing a great job on carcode as part of this year's Google Summer of Code. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig -- Edward Cherlin End Poverty at a Profit by teaching children business http://www.EarthTreasury.org/ The best way to predict the future is to invent it.--Alan Kay ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Pygame etc.
at the end. We could use an Othello in Sugar, and lots of other games. I have books and books full of card games, board games, math games...African games like Mancala and Mlabalaba, classic games like Go, any of the games already available as Free Software...Anybody who is short of ideas for themselves or for students can ask me about them. We also need people to work on game infrastructure, like a collaboration framework that supports viewing and kibitzing without the players seeing the comments. Something that many online game servers provide for chess, go, bridge... Just a thought... I should read it more closely to give you some more detailed feedback. Cheers, André Thank you! Al Sweigart -- Edward Cherlin End Poverty at a Profit by teaching children business http://www.EarthTreasury.org/ The best way to predict the future is to invent it.--Alan Kay ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Re: [Edu-sig] Pygame etc.
On Fri, Jun 27, 2008 at 5:34 PM, kirby urner [EMAIL PROTECTED] wrote: On Fri, Jun 27, 2008 at 4:11 PM, Edward Cherlin [EMAIL PROTECTED] wrote: 2008/6/19 kirby urner [EMAIL PROTECTED]: SNIP PS: the Europython list is making me homesick for Vilnius, My grandfather was from Vilnius. You might like to check out Andrius Kulikauskus's Minciu Sodas, which is based there. Hey thanks for that informative posting Edward, lots I didn't know mixed with some familiar stuff I enjoy revisiting. A pleasure. My overlap with Alan Kay was courtesy of Mark Shuttleworth who threw together this high powered meeting in London aimed at thinking through a strategy for South Africa (some government representation, other private sector). Andrius, I, and a fairly high-powered group of others have been working on a strategy for the world. The basic elements that I am working on right now are renewable electric power, WiMax for Internet connections, microfinance, and OLPC. Later I propose to work on linking schools around the world and teaching the students how to go into business together. Each component supports the others better than linearly to increase the community's total access to economic opportunity even in the poorest and most remote villages. We have others working on community, agriculture, health, and various other components of a complete set of solutions. We pow wowed for about 2.5 days, Gunner clerking.[1] Your plan looks interesting. I have Wikied some thoughts about what textbooks should turn into when we have a known software base including SciPy, and also some thoughts about what should happen to the curriculum as we find out more about how to make subjects accessible at ever-earlier ages. There is some work on Kindegarten Calculus, for example, teaching the concepts but not the apparatus. Alan Kay has a demo in which ten-year olds are pointed in two directions, in simulation and in real life, and then encouraged to combine the results in order to figure out that Galilean gravity means constant acceleration. If you then get children to look at water fountains (something the Greeks failed to notice properly) and show them how to model Galilean relativity with constant horizontal motion, they get to discover parabolic motion. Relating that to conic sections visually is easy, but the proofs have to wait until later. I blogged about it live at the time [2] plus have had some time to reflect since then, lots of field testing ideas. I haven't been the South Africa in the interim (used to go there more often when my parents lived in Lesotho) but do check on Kusasa from time to time, to see how it's going.[3] Love them Freedom Toasters! [4] Kirby [1] http://www.facebook.com/profile.php?id=708462278 [2] http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-two.html [3] http://www.kusasa.org/ [4] http://controlroom.blogspot.com/2008/05/legally-free.html -- Edward Cherlin End Poverty at a Profit by teaching children business http://www.EarthTreasury.org/ The best way to predict the future is to invent it.--Alan Kay ___ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig