On Mon, Apr 12, 2010 at 12:53, <ch...@seberino.org> wrote: > On Mon, Apr 12, 2010 at 09:30:50AM -0700, David MacQuigg wrote: >>> 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. > > That is eminently reasonable but I'm not sure it is true. My children seemed > to pick up using a mouse without any instruction IIRC.
Let me clarify. Moving the mouse pointer is automatic and inevitable. Clicking is inevitable, but most clicks will fail to do anything. Moving the pointer to an icon and clicking is obvious if you see someone else do it, without formal instruction. So far, so good. Now what about click and drag (menu selection, open submenu, move, resize, rotate, draw) right click (context menu) middle click (or left and right click simultaneously. Various effects) hover (hint, alt text, popup, short menu) hover longer (longer menu) double click (open, run) shift click and drag (selection) triple click (larger selection, line or paragraph) control click (no standard) alt click (no standard) etc. Gamers learn many more combinations, sometimes including complex chords, on special gamer controls. Emacsers only use the mouse to change virtual terminals, if that, and do everything else with key combinations (EMACS = Escape, Meta, Alt, Control, Shift) My experience is that all of these mouse actions need to be taught, particularly the multi-use actions like shift click. This may consist of demonstrating each usage once, if the result is sufficiently rewarding and immediate. With very young children, I hold the x mouse key for them on the XO at first, to let them get the hang of click and drag in stages. Large numbers of adults are completely unaware of triple click. I personally hate delayed hover menus, especially doubly-delayed expanding hover menus, as in Sugar. This is being redesigned. > Geometry, motion & pictures seem > to tap a very primitive part of our brains...much deeper than the symbology of > algebra and pseudocode. I wonder if there are methods of communication that > don't need much explanation because that is how are brains are naturally > wired. Try Scratch, which applies Smalltalk to multimedia. Editing movies is just drag and drop. Also Turtle Art. Sugar has a version in Python which supports adding functions in Python. I have done a presentation on teaching Python in elementary schools using these tools. You can put a Python expression into a graphing tile, for example, or grab math examples from Pippy the Python editor and tell the turtle to map out primes, or Fibonacci numbers, or the Pascal triangle. (Mod 2, it gives a Sierpinski fractal.) >> It's interesting to speculate whether there >> will ever be another major improvement in programming, a step beyond >> Python, or if Python will simply incorporate any good ideas that come >> along (as it did with our @ syntax). I would bet on the latter. I bet against you. This is not a new idea. See The Next 700 Programming Languages, by Landin. He proposed absorbing everything into LISPish language structures. > Well that is exciting for me as I know Python and don't want to learn a new > language every 3 months. A gentle introduction to APL concepts without the syntax and symbols is available in numpy. I propose to teach children the basics of the essential features used in all of the major languages, in primary school. My short list of really major concepts includes arithmetic (prefix in LISP, postfix in FORTH, infix everywhere else) variable names are pronouns namespaces Boolean algebra sets permutations, sorting, and searching combinatorics lists of lists (LISP, SCHEME) arrays (APL) forests (arrays of trees, J) OOP (Smalltalk, Python) minimal syntaxes with neither parentheses nor precedence parse trees first-class functions functional programming number base/polynomial equivalence data/program equivalence database topological (dependence) sorting for spreadsheets Then they will recognize that new languages differ mostly in syntax, which is no big deal for those who understand how computing really works. _You_, on the other hand, don't need to learn a new language more often than every two or three years in order to start catching up. Obviously, we can't give third-graders that list of terminology. The idea is to present real examples of these ideas, and only introduce the names later--the opposite of the age-old tradition in textbooks, but a match to the way infants learn before they acquire language. BTW, did you know that infants can learn four or more languages simultaneously without ever finding out that it's supposed to be hard to do? > cs > _______________________________________________ > 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