[IAEP] The XOrobots in Montevideo

2011-05-20 Thread Caryl Bigenho

Hi All,


I have some photos and a short video that I took of the robot project they 
showed us in Montevideo.  The file size of the email with all of them attached 
is to large and many of your email servers are bouncing it back.  So I will 
send the files individually in separate files.  I hope they come through that 
way!
The project was done by a group of engineering students at one of the 
universities there.  Their website address shows in one of the photos. I've 
also included screenshots of the code they wrote to make it happen.  It is 
written in Turtle Art a version of Logo.  How's your Spanish?


Here is a guide to the attachments:


XOrobots1.avi: A movie showing two of the robots in action.  One starts around 
the oval, senses the other one waiting and stops. The other senses the first 
one and starts around the oval and goes until it reaches the first one. Then 
the process proceeds.  The robots are programmed to go only where the surface 
is black.  If they are put in one of the black floor tiles, they continue 
moving about within the square, but never leave it.


XOrobots2.jpg and XOrobot4.jpg: screenshots of the TurtleArt code written to 
make it work.


XOrobot3.jpg: A still shot of a single XOrobot going around the circle. Shows 
their website address.


XOrobot5.jpg: A shot of the wheeled platform with the XO removed.


Looks like fun doesn't it!


Caryl
  ___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

[IAEP] OLPC Contributors Program Mtg (on #olpc-meeting, 2PM Boston Time, Fri May 20)

2011-05-20 Thread Holt

Please join us in 30 MIN, voting for the latest OLPC/Sugar community
projects over IRC Live Chat, to make the best project allocations 
mentoring relationships--starting right here:

http://forum.laptop.org/chat

Then type at bottom:
/join #olpc-meeting


AGENDA:

* Fast Review of the 5 latest (greatest!) HW/Project Proposals.
  Plz join us advocating for  reviewing shortcomings of these proposals:

  1. Marysville Rotary XO Literacy Project - Guatemala / Marysville, WA
  2. Community Health Information for OLPC - Montara, CA
  3. Project VOICE - Philippines / Wantagh, NY
  4. ClassContribute, a homework / gradebook app - Eastchester, NY
  5. OLPC Tuva - Tiburon CA, Russia

* Which projects might you enjoy Mentoring below?!
http://wiki.laptop.org/go/Projects
http://rt.laptop.org/Search/Results.html?Query=Queue=%27contributors%27

* New projects  libraries -- teaching them Community Outreach:
http://wiki.laptop.org/go/XO_Laptop_Lending_Libraries


1. Marysville Rotary XO Literacy Project - Guatemala / Marysville, WA
   http://rt.laptop.org/Ticket/Display.html?id=79572
   http://www.marysvillerotary.org/literacyXOproject
http://olpcMAP.net?id=884001
   SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net  
http://j.mp/6UhCtd


   Requests 6-8 XOs over 2-3 months

   Project Objectives:
   Determine if the XO Laptop systems will provide an educational
   environment needed to improve both the education level in our local
   early child learning program and if these systems can become a valuable
   educational instrument in the rural / poverty areas of Guatemala. Also,
   to determine if it is possible to have both a simple Sugar 
programming

   and a vocational repair facility at our Technology High School, thus
   expanding the educational and learning spectrum across many age groups.


2. Community Health Information for OLPC - Montara, CA
   http://rt.laptop.org/Ticket/Display.html?id=79823
   http://wiki.laptop.org/go/WiRED-CHI
   http://wiredinternational.org
   SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net  
http://j.mp/6UhCtd


   Requests 2 XO-1s and 2 XO-1.5s over 2+ months

   Project Objectives:
   This request is for two/three laptops to use as test and demonstration
   tools in a project to provide interactive health training programs
   through WiRED’s community health information (CHI) project. We seek
   to load and test our software on these machines as prototypes for a
   larger program involving OLPC computers. The complete software
   (health topics, auxiliary health libraries, search and access tools)
   will be provided without charge to OLPC for use in its global work.
   See a sample at
   http://www.itnhealth.net/CHIC2/presentations/50/player.html


3. Project VOICE - Philippines  Wantagh, NY
   http://rt.laptop.org/Ticket/Display.html?id=80245
   http://olpcMAP.net?id=883002
   SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net  
http://j.mp/6UhCtd


   Requests 1 XOs over 12 months

   Project Objectives:
   The goal of Project VOICE is to foster literacy, opinion and expression
   in underprivileged Filipino youth living in the Philippines. This 
goal can
   be divided into two sub-goals, namely: to teach English from a young 
age in
   order to develop a strong command of the language at an older age, 
and, in

   older, literate youth, encourage expression and journalism, and the
   formation of opinions and the sharing of ideas, especially regarding 
social

   issues.

   To these ends, we list the following practical benchmarks and
   concrete objectives of the project:

   A. To develop an open-source English language teaching software, 
similar to
   Rosetta Stone, that is lightweight and optimized to run on XO's, and 
that is
   custom-tailored to the unique needs of children in the poorer 
regions of the

   Philippines and elsewhere.  B. To deploy and conduct a pilot
   program in a test school in the Philippines.  C. To develop or port an
   open-source journalism tool for the XO.  D. To deploy and conduct
   a pilot program in a test school in the Philippines for this tool.


4. ClassContribute, a homework / gradebook app - Eastchester, NY
   http://rt.laptop.org/Ticket/Display.html?id=80592
   http://olpcMAP.net?id=893001
   SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net  
http://j.mp/6UhCtd


   Requests 1 XO-1 and 1 XO-1.5 over ~6 months

   Project Objectives:
   I want to be able to have a HTML (in browser) way for a teacher to
   post individual student grades, as well as interactive homework
   assignments. I also want to implement an “E-Mail your Teacher”
   section, where a student could choose a specific topic for which
   they could contact their teacher.


5. OLPC Tuva - Tiburon CA, Russia
   http://rt.laptop.org/Ticket/Display.html?id=81063
   http://olpctuva.wordpress.com
   http://olpcMAP.net?id=892003
   SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net  
http://j.mp/6UhCtd


   Requests 2 XO-1.5s over 12 months

   

Re: [IAEP] The XOrobots in Montevideo

2011-05-20 Thread Andres Aguirre
Caryl, is great that you liked the project butiá (the XO robot)
If you want, you could upload the photos/videos to the facebook group of the
project
http://www.facebook.com/group.php?gid=147042805312846
I leave a video of the robot in the eduJAM here:
http://www.youtube.com/watch?v=Uv6P1pQ71IM
Also, there is some pictures here:
http://www.flickr.com/photos/butiarobot/sets/
Thanks for taking pictures!!
Regards
Andrés, from the Butiá team

On Fri, May 20, 2011 at 2:19 PM, Caryl Bigenho cbige...@hotmail.com wrote:

  Hi All,


 I have some photos and a short video that I took of the robot project they
 showed us in Montevideo.  The file size of the email with all of them
 attached is to large and many of your email servers are bouncing it back.
  So I will send the files individually in separate files.  I hope they come
 through that way!


 The project was done by a group of engineering students at one of the
 universities there.  Their website address shows in one of the photos. I've
 also included screenshots of the code they wrote to make it happen.  It is
 written in Turtle Art a version of Logo.  How's your Spanish?


 Here is a guide to the attachments:


 *XOrobots1.avi*: A movie showing two of the robots in action.  One starts
 around the oval, senses the other one waiting and stops. The other senses
 the first one and starts around the oval and goes until it reaches the first
 one. Then the process proceeds.  The robots are programmed to go only where
 the surface is black.  If they are put in one of the black floor tiles, they
 continue moving about within the square, but never leave it.


 *XOrobots2.jpg* and XOrobot4.jpg: screenshots of the TurtleArt code
 written to make it work.


 *XOrobot3.jpg*: A still shot of a single XOrobot going around the circle.
 Shows their website address.


 *XOrobot5*.jpg: A shot of the wheeled platform with the XO removed.


 Looks like fun doesn't it!


 Caryl

 ___
 IAEP -- It's An Education Project (not a laptop project!)
 IAEP@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/iaep




-- 
/\ndrés
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

Re: [IAEP] copy files to/from server

2011-05-20 Thread Martin Langhoff
On Fri, May 20, 2011 at 2:12 AM,  fors...@ozonline.com.au wrote:
 why not use Moodle or Sharepoint or Blackboard?

Yeah - there's an easy-installation Moodle package. That's what I'd go with.


m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep


Re: [IAEP] Turtles All The Way Down

2011-05-20 Thread C. Scott Ananian
On Fri, May 20, 2011 at 11:09 AM, Alan Kay alan.n...@yahoo.com wrote:
 This is nice!

 Smalltalk actually got started by thinking about a way to make a child's
 Logo-like language with objects and pattern matching that could express its
 own operating system and environment.

 It is very tricky to retain/maintain readability (so the first Smalltalk was
 also an extensible language not just semantically but syntactically).

 With a tile language, this is really worth thinking about, since using tiles
 suggests ways to extend both the form and the meaning of the tiles.

My current thinking is that macros are *graphical*, not *source*
transformations.  You can create
your own tiles for the language which render into hygenic macros.
They are represented in source as simple message dispatch.  For
example, choosing a particularly ugly bit of JavaScript syntax:

var ForBlockMacro = imports.macros.ForBlockMacro;
var foo = function() {
 var i;
 ForBlockMacro(function() { i=0; },
   function() { return i  5; },
   function() { i+=1; },
   function() { /* body */ });
}

This is the underlying syntax for the macro.  But the ForBlockMacro
function (which is a first class object in JavaScript) can have an
asTile() method which returns a more attractive visual representation
in the tile editor; in fact, the representation could elide all the
'function' and 'return' nastiness of the raw syntax and display
(traditionally) as:

for ( i=0 ; i  5 ; i+=1 ) {
  /* body */
}

My current plan is to finess the multiple views issue (discussed in
3.4 of http://labs.oracle.com/self/papers/programming-as-experience.html)
by representing objects as 3d polyhedra.  The front view might be
the nice cleaned up tile macro, but you should be able to rotate the
tile to see the low level source, and then rotate it again to see the
object corresponding to the actual widget displaying the source, etc.
So, one object, many views.

I've built the current system on a very flexible operator precedence
grammar, so there's no reason I *couldn't* allow the user to flexibly
extend the base grammar.  But that increases the conceptual effort
necessary to understand the system -- I have to understand the
expanded language before I can understand the code I'm looking at.
The macro system I describe above has the nice property that you don't
*have* to understand the macro or the grammar of the new if statement.
 It's enough to look at the desugared version:

 ForBlockMacro(function() { i=0; },
   function() { return i  5; },
   function() { i+=1; },
   function() { /* body */ });

and the implementation of ForBlockMacro:

ForBlockMacro = function(initBlock, condBlock, incrBlock, bodyBlock) {
 initBlock();
 while (condBlock()) {
 bodyBlock();
 incrBlock();
 }
   };
   ForBlockMacro.asTile() = ;

This seems (to me) a preferable way of understanding what the new tile
does.  But I'm open to other ideas on this front.  (And yes,
JavaScript's syntax isn't lovely.  But I'm interested in what I can do
with what I've got.)
  --scott

-- 
      ( http://cscott.net )
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

Re: [IAEP] Turtles All The Way Out

2011-05-20 Thread C. Scott Ananian
On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote:
 separation.  This is why they never learn to modify the real programs
 that hide behind the fluffy interfaces on their real XO computers.

I hope to show you a system where the real program *is* the fluffy
interface (and vice versa).  I'm not at that point yet, but you've
correctly extracted the point of this particular research program.
  --scott

-- 
      ( http://cscott.net )
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

Re: [IAEP] Turtles All The Way Out

2011-05-20 Thread Walter Bender
On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote:

  Recently, I finished my dissertation on mobile development
  directly from mobile devices. Something like this might've been very
  useful, although I did target experienced developers, not beginners.

 Mobile development would work great on mobile devices like the XO-1,
 XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the
 kids a few simple paradigms like files, hierarchical file systems
 and text editors.


Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and
files (and even a hierarchical file system) that has a data store as its
primary interface. The problem with mobile development on mobile devices is
not one of religion, it is about physical affordances: small screen and no
(or inadequate) keyboard.



 (Efforts to teach computers to compile or interpret large programs
 that aren't written in collections of files are doomed to niche
 uselessness, though it sure makes a fun research/masturbation topic.
 I spent years paid to write big programs in APL that way in the '70s --
 those programs are all unportably dead today, and APL is a tiny niche.)

 These are not hard concepts.  Kids learn them daily, but not from XOs.


 Since OLPC can't seem to be dissuaded from this fundamental error, the
 question for me is whether it can be influenced to minimize the amount
 of learning that kids go through which is unique to this useless
 programming model.  There *is* usefulness in teaching kids how to
 write tiny programs that can never scale up to useful, portable,
 supportable programs.  But once they get the basic concepts, they
 should be transitioned to industry best practices pretty quickly,
 writing a real Hello World and then evolving it to be more useful.

 Rather than getting stuck by e.g. trying to make substantial programs
 fit on one screen by moving tiles around visually.  As in the
 model-view-controller paradigm, the kids need to learn that the view
 is not the model, but the model is a simply structured thing that
 lives behind the view.  If you don't teach the abstract structures
 that the model is based on, the kids can't learn to make that
 separation.  This is why they never learn to modify the real programs
 that hide behind the fluffy interfaces on their real XO computers.


I cannot speak for every Sugar developer, but the approach I have tried to
take with Turtle Art is a bit different than you are describing. The
block-based programming environment is not meant to be a substitute for real
tools; it is meant to be a place to get started; to learn that you can write
and modify code; and to provide multiple motivations and launch pads for
getting into the real thing. I've worked pretty hard to make the
structured thing behind the view more approachable, and have provided
multiple ways in and out: exporting your fluffy view into Logo that can be
run in Brian Harvey's text-based Logo environment; direct, in-line
extensions written in Python; the ability to create new blocks by importing
Python; a plugin mechanism for making major interventions; and a refactoring
of the underlying structures to make the code more approachable. (The source
code is peppered with comments and examples of how to make modifications.)
None of these interventions are intended to keep the kids programming in
Turtle Art. They are all intended to get the kids started down the path of
real programming. But I content that we need to engage them; let them
discover that they can write code; and make changes; and that it is not
something just for others but for everyone. When I talked about Turtles
All the Way Down at Libre Planet two-years ago, I wasn't suggesting that we
use fluffy interfaces all the way down, but that we invite modifications all
the way down by providing scaffolding and encouragement. Step One is to give
them the freedom to make changes; Step Two is to give them the context in
which they can actually start doing it. Sure, there will always be the
handful of kids who will jump right into Emacs and C, but most won't. Maybe
we can encourage a few more to do something of substance but giving them
some scaffolding.

I am open to suggestions as to how to get more kids to move on from Turtle
Art to ___ (insert you favorite real programming environment here).

-walter


John
 ___
 Devel mailing list
 de...@lists.laptop.org
 http://lists.laptop.org/listinfo/devel




-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

Re: [IAEP] Turtles All The Way Out

2011-05-20 Thread mokurai
On Fri, May 20, 2011 3:11 pm, Walter Bender wrote:
 On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote:

  Recently, I finished my dissertation on mobile development
  directly from mobile devices. Something like this might've been very
  useful, although I did target experienced developers, not beginners.

When we get to wearables with glasses-mounted full-sized display devices
and one-hand chord keyboards, absolutely. Or when soft keyboards on
multitouch tablets are totally reliable.

 Mobile development would work great on mobile devices like the XO-1,
 XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the
 kids a few simple paradigms like files, hierarchical file systems
 and text editors.

See Introduction to the Command Line

http://booki.flossmanuals.net/command-line/edit/

of which I am a co-author.

I don't know where you get the idea that files, hierarchical file systems,
and text editors are simple concepts. I would be willing to discuss
introducing the Linux file system in middle school, but our issue is
programming for third-graders, or even earlier. Preschoolers can grasp the
ideas behind turtle art by acting the part of the turtle. Where would you
have them begin?

 Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and
 files (and even a hierarchical file system) that has a data store as its
 primary interface. The problem with mobile development on mobile devices
 is
 not one of religion, it is about physical affordances: small screen and no
 (or inadequate) keyboard.


 (Efforts to teach computers to compile or interpret large programs
 that aren't written in collections of files are doomed to niche
 uselessness, though it sure makes a fun research/masturbation topic.

Language, John, our discussion of child programming must be discussable
with the children, their parents, and their parents' churches and
political parties. The archive of this list is public information.

 I spent years paid to write big programs in APL that way in the '70s --
 those programs are all unportably dead today, and APL is a tiny niche.)

I have an ISO/ANSI standard APL that occupies 29K, thus originally giving
a 32K workspace on 8-bit computers with 64K memory. It could easily be
expanded to run with any amount of memory. Ken Iverson successfully used
IBM APL\360 to teach first-grade arithmetic on a 360 with Selectric
terminals.

I also have books on math and other subjects in APL, from arithmetic to
calculus, cryptography, and computer design.

 These are not hard concepts.  Kids learn them daily, but not from XOs.

Kids of what age?

 Since OLPC can't seem to be dissuaded from this fundamental error,

because it isn't one,

 the
 question for me is whether it can be influenced to minimize the amount
 of learning that kids go through which is unique to this useless
 programming model.

The point is to maximize learning in minimum time or with minimum effort.

 There *is* usefulness in teaching kids how to
 write tiny programs that can never scale up to useful, portable,
 supportable programs.  But once they get the basic concepts, they
 should be transitioned to industry best

worst, actually (Did you ever hear of the programmer who claimed to have
20 years experience in COBOL, but it turned out he had two years
experience repeated 10 times?) No industry has ever embraced best
practices.

 practices pretty quickly,
 writing a real Hello World

So Hello World in Turtle Art is unreal?

Here is a complete APL Hello, World. program, with its output.

   'Hello, World.'
Hello, World.

and a complete Turtle Art version

PrintTextVariable Hello, World.

which the activity will be happy to convert to Logo.

Next you put a Python function call on a single block to print the text,
and away you go.

 and then evolving it to be more useful.

Precisely.

I prefer to teach not only programming but computer science concepts in
the early years. One of the great advantages of Turtle Art is that there
is no parsing step to translate from linear text with bizarre punctuation
rules to a tree structure. The children program directly in effectively
preparsed tree structures, with no syntactic sugar, as the LISPers call
it.

Also, Walter has built stack primitives into Turtle Blocks, so we can
teach stack discipline and the rudiments of FORTH in Turtle Art. He
recently added a block to read the color at the turtle's location. I had
mentioned to him some time ago that that was the only function missing for
me to write a Turing machine in Turtle Art, using colors for cell states
and elements in the transition table. I must do that sometime.

 Rather than getting stuck by e.g. trying to make substantial programs
 fit on one screen by moving tiles around visually.

Strawman. Not the purpose of Turtle Blocks, and not something we would
encourage anybody to do. At that point you start writing Python
subroutines, and shortly after that you transfer completely to Python. Or
Smalltalk. And from 

Re: [IAEP] Turtles All The Way Out

2011-05-20 Thread Alan Kay
Actually, I said I made up the term 'Object-oriented', and I did not have C++ 
in mind.

Cheers,

Alan





From: moku...@earthtreasury.org moku...@earthtreasury.org
To: Walter Bender walter.ben...@gmail.com
Cc: Lucian Branescu lucian.brane...@gmail.com; IAEP SugarLabs 
iaep@lists.sugarlabs.org; OLPC Devel de...@lists.laptop.org; John Gilmore 
g...@toad.com
Sent: Fri, May 20, 2011 5:51:08 PM
Subject: Re: [IAEP] Turtles All The Way Out

On Fri, May 20, 2011 3:11 pm, Walter Bender wrote:
 On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote:

  Recently, I finished my dissertation on mobile development
  directly from mobile devices. Something like this might've been very
  useful, although I did target experienced developers, not beginners.

When we get to wearables with glasses-mounted full-sized display devices
and one-hand chord keyboards, absolutely. Or when soft keyboards on
multitouch tablets are totally reliable.

 Mobile development would work great on mobile devices like the XO-1,
 XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the
 kids a few simple paradigms like files, hierarchical file systems
 and text editors.

See Introduction to the Command Line

http://booki.flossmanuals.net/command-line/edit/

of which I am a co-author.

I don't know where you get the idea that files, hierarchical file systems,
and text editors are simple concepts. I would be willing to discuss
introducing the Linux file system in middle school, but our issue is
programming for third-graders, or even earlier. Preschoolers can grasp the
ideas behind turtle art by acting the part of the turtle. Where would you
have them begin?

 Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and
 files (and even a hierarchical file system) that has a data store as its
 primary interface. The problem with mobile development on mobile devices
 is
 not one of religion, it is about physical affordances: small screen and no
 (or inadequate) keyboard.


 (Efforts to teach computers to compile or interpret large programs
 that aren't written in collections of files are doomed to niche
 uselessness, though it sure makes a fun research/masturbation topic.

Language, John, our discussion of child programming must be discussable
with the children, their parents, and their parents' churches and
political parties. The archive of this list is public information.

 I spent years paid to write big programs in APL that way in the '70s --
 those programs are all unportably dead today, and APL is a tiny niche.)

I have an ISO/ANSI standard APL that occupies 29K, thus originally giving
a 32K workspace on 8-bit computers with 64K memory. It could easily be
expanded to run with any amount of memory. Ken Iverson successfully used
IBM APL\360 to teach first-grade arithmetic on a 360 with Selectric
terminals.

I also have books on math and other subjects in APL, from arithmetic to
calculus, cryptography, and computer design.

 These are not hard concepts.  Kids learn them daily, but not from XOs.

Kids of what age?

 Since OLPC can't seem to be dissuaded from this fundamental error,

because it isn't one,

 the
 question for me is whether it can be influenced to minimize the amount
 of learning that kids go through which is unique to this useless
 programming model.

The point is to maximize learning in minimum time or with minimum effort.

 There *is* usefulness in teaching kids how to
 write tiny programs that can never scale up to useful, portable,
 supportable programs.  But once they get the basic concepts, they
 should be transitioned to industry best

worst, actually (Did you ever hear of the programmer who claimed to have
20 years experience in COBOL, but it turned out he had two years
experience repeated 10 times?) No industry has ever embraced best
practices.

 practices pretty quickly,
 writing a real Hello World

So Hello World in Turtle Art is unreal?

Here is a complete APL Hello, World. program, with its output.

   'Hello, World.'
Hello, World.

and a complete Turtle Art version

PrintTextVariable Hello, World.

which the activity will be happy to convert to Logo.

Next you put a Python function call on a single block to print the text,
and away you go.

 and then evolving it to be more useful.

Precisely.

I prefer to teach not only programming but computer science concepts in
the early years. One of the great advantages of Turtle Art is that there
is no parsing step to translate from linear text with bizarre punctuation
rules to a tree structure. The children program directly in effectively
preparsed tree structures, with no syntactic sugar, as the LISPers call
it.

Also, Walter has built stack primitives into Turtle Blocks, so we can
teach stack discipline and the rudiments of FORTH in Turtle Art. He
recently added a block to read the color at the turtle's location. I had
mentioned to him some time ago that that was the only function missing for
me to write a 

Re: [IAEP] Turtles All The Way Down

2011-05-20 Thread mokurai
On Fri, May 20, 2011 2:28 pm, C. Scott Ananian wrote:
 On Fri, May 20, 2011 at 11:09 AM, Alan Kay alan.n...@yahoo.com wrote:
 This is nice!

 Smalltalk actually got started by thinking about a way to make a child's
 Logo-like language with objects and pattern matching that could express
 its own operating system and environment.

Seymour Papert also proposed creating an environment in which learning
math would be as easy as learning ordinary language. Smalltalk has a
number of kinds of number and shape objects, but I have not seen much else
in the way of mathematical objects. I am trying to go through various
subjects to extract the ideas that preschoolers can absorb, and create
materials to encourage them to explore those ideas.

Caleb Gattegno and Ken Iverson did a fair amount on algebra, using
Cuisenaire rods and APL respectively.

Don Cohen has done Calculus by and for Young People

I have made a start on symmetry groups, using variations on children's
block toys.

Elementary set theory using Venn diagrams was done long ago.

But there is so much more.

 It is very tricky to retain/maintain readability (so the first Smalltalk
 was
 also an extensible language not just semantically but syntactically).

 With a tile language, this is really worth thinking about, since using
 tiles
 suggests ways to extend both the form and the meaning of the tiles.

 My current thinking is that macros are *graphical*, not *source*
 transformations.  You can create
 your own tiles for the language which render into hygenic macros.
 They are represented in source as simple message dispatch.  For
 example, choosing a particularly ugly bit of JavaScript syntax:

I would like to be able to create a set of blocks implementing the
symmetry group of a simple shape such as an equilateral triangle. This
case is generated by a 120 degree rotation and a reflection, giving six
elements in all.

Similarly I would like to be able to do modular addition, subtraction,
multiplication, and division in finite fields, and the and and or
functions or union and intersection on lattices.

Does your system accommodate this?

 var ForBlockMacro = imports.macros.ForBlockMacro;
 var foo = function() {
  var i;
  ForBlockMacro(function() { i=0; },
function() { return i  5; },
function() { i+=1; },
function() { /* body */ });
 }

 This is the underlying syntax for the macro.  But the ForBlockMacro
 function (which is a first class object in JavaScript) can have an
 asTile() method which returns a more attractive visual representation
 in the tile editor; in fact, the representation could elide all the
 'function' and 'return' nastiness of the raw syntax and display
 (traditionally) as:

 for ( i=0 ; i  5 ; i+=1 ) {
   /* body */
 }

 My current plan is to finess the multiple views issue (discussed in
 3.4 of http://labs.oracle.com/self/papers/programming-as-experience.html)
 by representing objects as 3d polyhedra.  The front view might be
 the nice cleaned up tile macro, but you should be able to rotate the
 tile to see the low level source, and then rotate it again to see the
 object corresponding to the actual widget displaying the source, etc.
 So, one object, many views.

 I've built the current system on a very flexible operator precedence
 grammar, so there's no reason I *couldn't* allow the user to flexibly
 extend the base grammar.  But that increases the conceptual effort
 necessary to understand the system -- I have to understand the
 expanded language before I can understand the code I'm looking at.
 The macro system I describe above has the nice property that you don't
 *have* to understand the macro or the grammar of the new if statement.
  It's enough to look at the desugared version:

  ForBlockMacro(function() { i=0; },
function() { return i  5; },
function() { i+=1; },
function() { /* body */ });

 and the implementation of ForBlockMacro:

 ForBlockMacro = function(initBlock, condBlock, incrBlock, bodyBlock) {
  initBlock();
  while (condBlock()) {
  bodyBlock();
  incrBlock();
  }
};
ForBlockMacro.asTile() = ;

 This seems (to me) a preferable way of understanding what the new tile
 does.  But I'm open to other ideas on this front.  (And yes,
 JavaScript's syntax isn't lovely.  But I'm interested in what I can do
 with what I've got.)
   --scott

 --
       ( http://cscott.net )
 ___
 IAEP -- It's An Education Project (not a laptop project!)
 IAEP@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/iaep


-- 
Edward Mokurai
(#40664;#38647;/#2343;#2352;#2381;#2350;#2350;#2375;#2328;#2358;#2348;#2381;#2342;#2327;#2352;#2381;#2332;/#1583;#1726;#1585;#1605;#1605;#1740;#1711;#1726;#1588;#1576;#1583;#1711;#1585;
#1580;) Cherlin
Silent Thunder is my name, and Children are my nation.
The Cosmos 

Re: [IAEP] Turtles All The Way Down

2011-05-20 Thread Gonzalo Odiard
The question is: does this really have educational value? Turtles all the
way down is a great slogan, and a fine way to teach a graduate-level class
on compiler technology, but I feel that the higher-level UI for tile-based
program editing is the really useful thing for tablet computing. I'm a
compiler geek and love the grungy underbelly of this stuff, but I keep
reminding myself I should really be spending more time building a beautiful
fluffy surface.

You are doing the right question
I remember here No silver bullet [1]
Different languages, different levels of abstraction, need different
interfaces, and text is powerfull interface. May be is not the best
interface to start to program, but surely graphic block are not the best
interface to do programs of more than 400 of blocks.

Gonzalo

[1] http://en.wikipedia.org/wiki/No_Silver_Bullet

On Fri, May 20, 2011 at 10:30 AM, C. Scott Ananian csc...@laptop.orgwrote:

 I've done a little more work on Turtles All The Way Down, which I
 (very briefly) discussed at EduJam.  I actually wrote a garbage
 collector in TurtleScript for TurtleScript on Sunday.  Brief writeup
 here:
   http://cananian.livejournal.com/64140.html
 and exhaustive mind-numbing detail here:
   http://cscott.net/Projects/TurtleScript/

 No actual turtles yet!  I'm going to have to fix that soon.
  --scott

 --
   ( http://cscott.net )
 ___
 IAEP -- It's An Education Project (not a laptop project!)
 IAEP@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/iaep
___
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep