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  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  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  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

Print<> 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 there, you can learn the syntactic sugar of any
programming language. After learning three different clean p

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" 
To: Walter Bender 
Cc: Lucian Branescu ; IAEP SugarLabs 
; OLPC Devel ; John Gilmore 

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  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

Print<> 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 locati

Re: [IAEP] Turtles All The Way Out

2011-06-06 Thread mokurai
On Mon, June 6, 2011 8:11 pm, John Gilmore wrote:
> I had to think about this some before having a useful response.

Excellent questions, and very timely.

I believe that Walter Bender wrote:
>> 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 contend 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.
>
> Walter, this is a worthwhile approach.

Several programming languages have been successfully taught in third
grade, including Logo, LISP, Smalltalk, BASIC and a few others. APL has
been successfully taught as a math language rather than a programming
language starting in first grade, with programming introduced in third
grade. (APL is the only programming language that has times × and divide ÷
symbols that match first-grade arithmetic books, as does the XO keyboard.)

All of the successful experiments that I know of on teaching programming
in elementary school started with simple examples and free exploration,
and then showed users how to make small modifications to start with,
advancing gradually through various problems of interest and the relevant
functions and features of the languages. There is an excellent tutorial
sequence of problems on the front page of Etoys, and there are people
working on creating a sequence of perhaps a hundred topics to introduce
the rest of the language. We must do the same in Turtle Art.

> But it was all invisible from an OLPC user's point of view (i.e. a
> child's).  All they get is a GUI in which they can hook blocks
> together and see graphics.

Exactly so. See my Wiki page, The Undiscoverable, about this problem in
Sugar generally, and the necessity of providing hints at appropriate
points in lessons that require these features.

http://wiki.sugarlabs.org/go/The_Undiscoverable

I am about to give Turtle Art its own page, discussing the issues you
raise, and suggesting a strategy to overcome them.

Also http://booki.treehouse.su/discovering-discovery/

which should soon have a chapter on Turtle Art, and eventually others on
other approaches to programming in Smalltalk, Python, and FORTH.

> Even finding the library of fun looking pre-existing designs was hard
> (it's hiding behind a bizarre looking icon that you can't even see
> until you go to a different tab in the Frame than the default one).
> If you show a kid how to find one of those designs, they get the idea
> of TurtleArt, and can modify them to see how the design changes.
> Until they see a complete, working design in 10 blocks including a
> loop, TurtleArt is a morass where new users can drag things around but
> it doesn't do anything fun.

The sequence

* Play with blocks and GUI
* Square example (7 blocks with loop)
* Play with example
* Squares example (13 blocks with nested loops)
* Play with example
* Flower example (3 nested routines with 20, 7, and 6 blocks, each
containing a loop)
* Play with example

does what you want. Start with moving, drawing lines, and turning. Then
put move and turn together, and repeat four times. Then repeat that
several times at angles that make up a full circle. Then do that in
different sizes and colors. Allow sufficient time for exploration in
between. Answer questions with well-chosen hints, rather than showing
students exactly how something works.

I have been working on various ideas for math and physics lessons based on
Turtle Art, and I am about to work out a proper sequence of programming
ideas covering many basic programming and Computer Science ideas,
involving every block and other function in Turtle Art. I have mentioned
elsewhere in this thread that I like Turtle Art because it exposes a
central concept in programming and Computer Science, the parse tree, and
because it allows us to build models of other CS concepts.

> 

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Walter Bender
On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:

> I had to think about this some before having a useful response.
>

Lots of good ideas here, so thank you for taking the time.

>
> > 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.
>
> Walter, this is a worthwhile approach.
>
> But it was all invisible from an OLPC user's point of view (i.e. a
> child's).  All they get is a GUI in which they can hook blocks
> together and see graphics.
>
> Even finding the library of fun looking pre-existing designs was hard
> (it's hiding behind a bizarre looking icon that you can't even see
> until you go to a different tab in the Frame than the default one).
> If you show a kid how to find one of those designs, they get the idea
> of TurtleArt, and can modify them to see how the design changes.
> Until they see a complete, working design in 10 blocks including a
> loop, TurtleArt is a morass where new users can drag things around but
> it doesn't do anything fun.
>
> (Note I'm working from memory of a several-year-old TurtleArt.  Perhaps
> it's better now.)
>

Please grab a recent version. It is quite different from even a year ago.

>
> (Also, it's hard to make the leap from a slow turtle leaving marks
> behind as it goes two steps and turns, to the whole screen being
> filled with colors in a flash.  Most things in the world don't have
> the many-orders-of-magnitude speedups that we in computing have become
> blase about.  It wouldn't occur to us that to paint an entire wall in
> a second, we should tell the painter to move the brush one inch and
> then repeat that over and over until done.  We'd look for a spray gun,
> or toss a whole bucket of paint, or recruit a crowd of painters, or
> something.  Fast things and painstaking things aren't disjoint in
> computing, as they are elsewhere; how do you teach that powerful insight?)
>

Cute idea for a project: "fill the screen." There are of course many ways to
do it: from using the fill-screen block to setting the pen size to the
screen width to discovering the repeat block to discovering that you can
launch as many turtles as you'd like, each of which has a pen.

>
> > 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).
>
> First, have Turtle Art start up not with a blank slate, but by
> bringing in one of the predefined designs -- preferably at random, so
> they'll see more of the corpus as they run it over and over.
>

I have gone back and forth on this one. I think that you are right: I should
start with a program on the screen, probably a simple example of a spiral
that introduces the concepts of loops and variables (and perhaps sensors).


>
> Second, I suggest that if some blocks are implemented in short bits of
> Python, that there be a user interface for seeing and modifying those
> short bits of Python (by examining the block in the GUI).  This will
> provide a bridge for exploring kids to notice that the blocks are
> built out of short bits of structured text -- and that they can
> understand and modify those texts.  If they've already figured out
> that they can modify the numeric blocks, then they'll try modifying
> these too.  The thing that pops the blocks open shouldn't be too hard
> to find -- perhaps a double-click, or something else that they'll do
> by accident sometime.
>

All of the blocks are implemented as short bits of Python. But I deferred to
the Sugar View Source mechanism for revealing the contents. I use a simple
plug-in mechanism to define blocks and palettes, but the disconnect is that
I don't (generally) edit them in line; rath

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Dr. Gerald Ardito
Walter and Edward,

I am very interested in this conversation.
As you know, I have been working with 5th graders and XO Laptops for the
past 3 years in the middle school in which I teach.
For next year, I have designed a pilot program to teach our 6th graders
about programming software and devices. I have seen the sequence as
beginning with software and then leading to robots of some kind.
I think Turtle Art is a perfect place to start, especially given this
conversation, and the availability of the XOs.
So, I am willing to test out the work you are doing with these students.

I have some questions:
1. Will the recent version of Turtle Art (Turtle Blocks) run on the latest
XO build?
2. In order to use sensors, what kind of devices are you talking about
(WeDos?; Arduino? Something else?).
3. Do you have or know of a curriculum that addresses our project?

Thanks.
Gerald

On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender wrote:

>
>
> On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
>
>> I had to think about this some before having a useful response.
>>
>
> Lots of good ideas here, so thank you for taking the time.
>
>>
>> > 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.
>>
>> Walter, this is a worthwhile approach.
>>
>> But it was all invisible from an OLPC user's point of view (i.e. a
>> child's).  All they get is a GUI in which they can hook blocks
>> together and see graphics.
>>
>> Even finding the library of fun looking pre-existing designs was hard
>> (it's hiding behind a bizarre looking icon that you can't even see
>> until you go to a different tab in the Frame than the default one).
>> If you show a kid how to find one of those designs, they get the idea
>> of TurtleArt, and can modify them to see how the design changes.
>> Until they see a complete, working design in 10 blocks including a
>> loop, TurtleArt is a morass where new users can drag things around but
>> it doesn't do anything fun.
>>
>> (Note I'm working from memory of a several-year-old TurtleArt.  Perhaps
>> it's better now.)
>>
>
> Please grab a recent version. It is quite different from even a year ago.
>
>>
>> (Also, it's hard to make the leap from a slow turtle leaving marks
>> behind as it goes two steps and turns, to the whole screen being
>> filled with colors in a flash.  Most things in the world don't have
>> the many-orders-of-magnitude speedups that we in computing have become
>> blase about.  It wouldn't occur to us that to paint an entire wall in
>> a second, we should tell the painter to move the brush one inch and
>> then repeat that over and over until done.  We'd look for a spray gun,
>> or toss a whole bucket of paint, or recruit a crowd of painters, or
>> something.  Fast things and painstaking things aren't disjoint in
>> computing, as they are elsewhere; how do you teach that powerful insight?)
>>
>
> Cute idea for a project: "fill the screen." There are of course many ways
> to do it: from using the fill-screen block to setting the pen size to the
> screen width to discovering the repeat block to discovering that you can
> launch as many turtles as you'd like, each of which has a pen.
>
>>
>> > 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).
>>
>> First, have Turtle Art start up not with a blank slate, but by
>> bringing in one of the predefined designs -- preferably at random, so
>> they'll see more of the corpus as they run it over and over.
>>
>
> I have gone back and forth on this one. I think that you are right: I
> should start with a program on the screen, probabl

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Walter Bender
On Tue, Jun 7, 2011 at 6:06 PM, Dr. Gerald Ardito
wrote:

> Walter and Edward,
>
> I am very interested in this conversation.
> As you know, I have been working with 5th graders and XO Laptops for the
> past 3 years in the middle school in which I teach.
> For next year, I have designed a pilot program to teach our 6th graders
> about programming software and devices. I have seen the sequence as
> beginning with software and then leading to robots of some kind.
> I think Turtle Art is a perfect place to start, especially given this
> conversation, and the availability of the XOs.
> So, I am willing to test out the work you are doing with these students.
>
>  I have some questions:
> 1. Will the recent version of Turtle Art (Turtle Blocks) run on the latest
> XO build?
>
Yes. v108 should run on any XO build.

2. In order to use sensors, what kind of devices are you talking about
> (WeDos?; Arduino? Something else?).
>
Those are all nice, but just using the microphone in works nicely. Plus you
have the camera.


> 3. Do you have or know of a curriculum that addresses our project?
>
There are lots of bits and pieces. Regarding robots, there is a nice book
written by Fred Martin that came out maybe 5 years ago. (Fred was one of the
principal designers of the original Lego robotics kits at MIT and helped
develop with 6.270 curriculum. He teaches at UMass-Lowell.

enjoy.

-walter

>
> Thanks.
> Gerald
>
> On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender wrote:
>
>>
>>
>> On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
>>
>>> I had to think about this some before having a useful response.
>>>
>>
>> Lots of good ideas here, so thank you for taking the time.
>>
>>>
>>> > 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.
>>>
>>> Walter, this is a worthwhile approach.
>>>
>>> But it was all invisible from an OLPC user's point of view (i.e. a
>>> child's).  All they get is a GUI in which they can hook blocks
>>> together and see graphics.
>>>
>>> Even finding the library of fun looking pre-existing designs was hard
>>> (it's hiding behind a bizarre looking icon that you can't even see
>>> until you go to a different tab in the Frame than the default one).
>>> If you show a kid how to find one of those designs, they get the idea
>>> of TurtleArt, and can modify them to see how the design changes.
>>> Until they see a complete, working design in 10 blocks including a
>>> loop, TurtleArt is a morass where new users can drag things around but
>>> it doesn't do anything fun.
>>>
>>> (Note I'm working from memory of a several-year-old TurtleArt.  Perhaps
>>> it's better now.)
>>>
>>
>> Please grab a recent version. It is quite different from even a year ago.
>>
>>>
>>> (Also, it's hard to make the leap from a slow turtle leaving marks
>>> behind as it goes two steps and turns, to the whole screen being
>>> filled with colors in a flash.  Most things in the world don't have
>>> the many-orders-of-magnitude speedups that we in computing have become
>>> blase about.  It wouldn't occur to us that to paint an entire wall in
>>> a second, we should tell the painter to move the brush one inch and
>>> then repeat that over and over until done.  We'd look for a spray gun,
>>> or toss a whole bucket of paint, or recruit a crowd of painters, or
>>> something.  Fast things and painstaking things aren't disjoint in
>>> computing, as they are elsewhere; how do you teach that powerful
>>> insight?)
>>>
>>
>> Cute idea for a project: "fill the screen." There are of course many ways
>> to do it: from using the fill-screen block to setting the pen size to the
>> screen 

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Dr. Gerald Ardito
Walter,

Thanks. And I'll check out Fred Martin's book.
If you are up for another visit to us in the Fall to do some more intensive
Turtle Art work, we'd love to have you.


Gerald

On Tue, Jun 7, 2011 at 6:13 PM, Walter Bender wrote:

>
>
> On Tue, Jun 7, 2011 at 6:06 PM, Dr. Gerald Ardito  > wrote:
>
>> Walter and Edward,
>>
>> I am very interested in this conversation.
>> As you know, I have been working with 5th graders and XO Laptops for the
>> past 3 years in the middle school in which I teach.
>> For next year, I have designed a pilot program to teach our 6th graders
>> about programming software and devices. I have seen the sequence as
>> beginning with software and then leading to robots of some kind.
>> I think Turtle Art is a perfect place to start, especially given this
>> conversation, and the availability of the XOs.
>> So, I am willing to test out the work you are doing with these students.
>>
>>  I have some questions:
>> 1. Will the recent version of Turtle Art (Turtle Blocks) run on the latest
>> XO build?
>>
> Yes. v108 should run on any XO build.
>
> 2. In order to use sensors, what kind of devices are you talking about
>> (WeDos?; Arduino? Something else?).
>>
> Those are all nice, but just using the microphone in works nicely. Plus you
> have the camera.
>
>
>> 3. Do you have or know of a curriculum that addresses our project?
>>
> There are lots of bits and pieces. Regarding robots, there is a nice book
> written by Fred Martin that came out maybe 5 years ago. (Fred was one of the
> principal designers of the original Lego robotics kits at MIT and helped
> develop with 6.270 curriculum. He teaches at UMass-Lowell.
>
> enjoy.
>
> -walter
>
>>
>> Thanks.
>> Gerald
>>
>> On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender wrote:
>>
>>>
>>>
>>> On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
>>>
 I had to think about this some before having a useful response.

>>>
>>> Lots of good ideas here, so thank you for taking the time.
>>>

 > 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.

 Walter, this is a worthwhile approach.

 But it was all invisible from an OLPC user's point of view (i.e. a
 child's).  All they get is a GUI in which they can hook blocks
 together and see graphics.

 Even finding the library of fun looking pre-existing designs was hard
 (it's hiding behind a bizarre looking icon that you can't even see
 until you go to a different tab in the Frame than the default one).
 If you show a kid how to find one of those designs, they get the idea
 of TurtleArt, and can modify them to see how the design changes.
 Until they see a complete, working design in 10 blocks including a
 loop, TurtleArt is a morass where new users can drag things around but
 it doesn't do anything fun.

 (Note I'm working from memory of a several-year-old TurtleArt.  Perhaps
 it's better now.)

>>>
>>> Please grab a recent version. It is quite different from even a year ago.
>>>
>>>

 (Also, it's hard to make the leap from a slow turtle leaving marks
 behind as it goes two steps and turns, to the whole screen being
 filled with colors in a flash.  Most things in the world don't have
 the many-orders-of-magnitude speedups that we in computing have become
 blase about.  It wouldn't occur to us that to paint an entire wall in
 a second, we should tell the painter to move the brush one inch and
 then repeat that over and over until done.  We'd look for a spray gun,
 or t

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Walter Bender
On Tue, Jun 7, 2011 at 6:15 PM, Dr. Gerald Ardito
wrote:

> Walter,
>
> Thanks. And I'll check out Fred Martin's book.
> If you are up for another visit to us in the Fall to do some more intensive
> Turtle Art work, we'd love to have you.
>

Sounds like fun. Maybe early in the semester to get them up and running.

-walter


>
>
> Gerald
>
>
> On Tue, Jun 7, 2011 at 6:13 PM, Walter Bender wrote:
>
>>
>>
>> On Tue, Jun 7, 2011 at 6:06 PM, Dr. Gerald Ardito <
>> gerald.ard...@gmail.com> wrote:
>>
>>> Walter and Edward,
>>>
>>> I am very interested in this conversation.
>>> As you know, I have been working with 5th graders and XO Laptops for the
>>> past 3 years in the middle school in which I teach.
>>> For next year, I have designed a pilot program to teach our 6th graders
>>> about programming software and devices. I have seen the sequence as
>>> beginning with software and then leading to robots of some kind.
>>> I think Turtle Art is a perfect place to start, especially given this
>>> conversation, and the availability of the XOs.
>>> So, I am willing to test out the work you are doing with these students.
>>>
>>>  I have some questions:
>>> 1. Will the recent version of Turtle Art (Turtle Blocks) run on the
>>> latest XO build?
>>>
>> Yes. v108 should run on any XO build.
>>
>> 2. In order to use sensors, what kind of devices are you talking about
>>> (WeDos?; Arduino? Something else?).
>>>
>> Those are all nice, but just using the microphone in works nicely. Plus
>> you have the camera.
>>
>>
>>> 3. Do you have or know of a curriculum that addresses our project?
>>>
>> There are lots of bits and pieces. Regarding robots, there is a nice book
>> written by Fred Martin that came out maybe 5 years ago. (Fred was one of the
>> principal designers of the original Lego robotics kits at MIT and helped
>> develop with 6.270 curriculum. He teaches at UMass-Lowell.
>>
>> enjoy.
>>
>> -walter
>>
>>>
>>> Thanks.
>>> Gerald
>>>
>>> On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender 
>>> wrote:
>>>


 On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:

> I had to think about this some before having a useful response.
>

 Lots of good ideas here, so thank you for taking the time.

>
> > 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.
>
> Walter, this is a worthwhile approach.
>
> But it was all invisible from an OLPC user's point of view (i.e. a
> child's).  All they get is a GUI in which they can hook blocks
> together and see graphics.
>
> Even finding the library of fun looking pre-existing designs was hard
> (it's hiding behind a bizarre looking icon that you can't even see
> until you go to a different tab in the Frame than the default one).
> If you show a kid how to find one of those designs, they get the idea
> of TurtleArt, and can modify them to see how the design changes.
> Until they see a complete, working design in 10 blocks including a
> loop, TurtleArt is a morass where new users can drag things around but
> it doesn't do anything fun.
>
> (Note I'm working from memory of a several-year-old TurtleArt.  Perhaps
> it's better now.)
>

 Please grab a recent version. It is quite different from even a year
 ago.

>
> (Also, it's hard to make the leap from a slow turtle leaving marks
> behind as it goes two steps and turns, to the whole screen being
> filled with colors in a flash.  Most things in the world don't ha

Re: [IAEP] Turtles All The Way Out

2011-06-07 Thread Dr. Gerald Ardito
Walter,

That would be great. Thanks.
Can you look and see when in September might work for you?

Gerald

On Tue, Jun 7, 2011 at 6:17 PM, Walter Bender wrote:

>
>
> On Tue, Jun 7, 2011 at 6:15 PM, Dr. Gerald Ardito  > wrote:
>
>> Walter,
>>
>> Thanks. And I'll check out Fred Martin's book.
>> If you are up for another visit to us in the Fall to do some more
>> intensive Turtle Art work, we'd love to have you.
>>
>
> Sounds like fun. Maybe early in the semester to get them up and running.
>
> -walter
>
>
>>
>>
>> Gerald
>>
>>
>> On Tue, Jun 7, 2011 at 6:13 PM, Walter Bender wrote:
>>
>>>
>>>
>>> On Tue, Jun 7, 2011 at 6:06 PM, Dr. Gerald Ardito <
>>> gerald.ard...@gmail.com> wrote:
>>>
 Walter and Edward,

 I am very interested in this conversation.
 As you know, I have been working with 5th graders and XO Laptops for the
 past 3 years in the middle school in which I teach.
 For next year, I have designed a pilot program to teach our 6th graders
 about programming software and devices. I have seen the sequence as
 beginning with software and then leading to robots of some kind.
 I think Turtle Art is a perfect place to start, especially given this
 conversation, and the availability of the XOs.
 So, I am willing to test out the work you are doing with these students.

  I have some questions:
 1. Will the recent version of Turtle Art (Turtle Blocks) run on the
 latest XO build?

>>> Yes. v108 should run on any XO build.
>>>
>>> 2. In order to use sensors, what kind of devices are you talking about
 (WeDos?; Arduino? Something else?).

>>> Those are all nice, but just using the microphone in works nicely. Plus
>>> you have the camera.
>>>
>>>
 3. Do you have or know of a curriculum that addresses our project?

>>> There are lots of bits and pieces. Regarding robots, there is a nice book
>>> written by Fred Martin that came out maybe 5 years ago. (Fred was one of the
>>> principal designers of the original Lego robotics kits at MIT and helped
>>> develop with 6.270 curriculum. He teaches at UMass-Lowell.
>>>
>>> enjoy.
>>>
>>> -walter
>>>

 Thanks.
 Gerald

 On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender 
 wrote:

>
>
> On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
>
>> I had to think about this some before having a useful response.
>>
>
> Lots of good ideas here, so thank you for taking the time.
>
>>
>> > 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.
>>
>> Walter, this is a worthwhile approach.
>>
>> But it was all invisible from an OLPC user's point of view (i.e. a
>> child's).  All they get is a GUI in which they can hook blocks
>> together and see graphics.
>>
>> Even finding the library of fun looking pre-existing designs was hard
>> (it's hiding behind a bizarre looking icon that you can't even see
>> until you go to a different tab in the Frame than the default one).
>> If you show a kid how to find one of those designs, they get the idea
>> of TurtleArt, and can modify them to see how the design changes.
>> Until they see a complete, working design in 10 blocks including a
>> loop, TurtleArt is a morass where new users can drag things around but
>> it doesn't do anything fun.
>>
>> (Note I'm working from memory of a several-year-old TurtleArt.
>>  Perhaps
>> it's better now.)
>>
>
>

Re: [IAEP] Turtles All The Way Out

2011-06-09 Thread mokurai

On Tue, June 7, 2011 6:06 pm, Dr. Gerald Ardito wrote:
> Walter and Edward,
>
> I am very interested in this conversation.
> As you know, I have been working with 5th graders and XO Laptops for the
> past 3 years in the middle school in which I teach.
> For next year, I have designed a pilot program to teach our 6th graders
> about programming software and devices. I have seen the sequence as
> beginning with software and then leading to robots of some kind.
> I think Turtle Art is a perfect place to start, especially given this
> conversation, and the availability of the XOs.

True. Of course, it works even better if introduced in preschool, with the
teacher giving commands to a child being the turtle, and then children
give commands to each other, for some time before getting on the computer.
I have been working on a version of TA with icons rather than words on the
blocks, and would like to get it tested in kindergarten.

There have been numerous experiments on introducing programming in third
grade in a number of languages. (It is also possible to introduce
calculator languages in first grade.) The usual starting point is to give
children simple programs to run, then show them how to make simple changes
such as variable values. Peter Hewitt's Spirolateral and Turtle Machine
programs are examples of this, where children get to set parameters and
see what they get, and learn to predict what they get as they try to match
the forms presented to them.

> So, I am willing to test out the work you are doing with these students.
>
> I have some questions:
> 1. Will the recent version of Turtle Art (Turtle Blocks) run on the latest
> XO build?

I don't know. I have not been able to install recent versions of Sugar on
my two XOs. However TA-109 works fine in Ubuntu.

> 2. In order to use sensors, what kind of devices are you talking about
> (WeDos?; Arduino? Something else?).

http://wiki.sugarlabs.org/go/Activities/TurtleArt#Sensors_Palette

* keyboard
* sound from microphone
* voltage from sound input port
* time
* read color from camera
* read color from canvas

The OLPC XO can measure external inputs with its microphone jack:

resistance: measurement range is 750 to 14k ohms, (OLPC XO1) and 2k
ohms to open circuit (OLPC XO1.5)
voltage: measurement range is DC 0.4V to 1.85V. (OLPC XO1) and 0.17V
to 3.0V (OLPC XO1.5)

http://wiki.sugarlabs.org/go/Activities/TurtleArt/Using_Turtle_Art_Sensors

many examples

> 3. Do you have or know of a curriculum that addresses our project?

We are building one. What topics would you like to brainstorm with us?

I am going to build a Turing Machine in Turtle Art, using read pixel to
read the state from the tape and the instructions from the program array.
In a sort of TA pseudocode,

Write tape
Write program table
Go to beginning of tape
Repeat until state = halt
  read pixel #from tape
  arithmetic on state value and pixel (tape symbol) value; goto row of
program array
  read pixel #from first column of program array
subroutine: go to tape and write the same pixel color, then go back to
program array
  move right
  read pixel, set that as new state #from second column
  move right
  read pixel #from third column
  go to current cell on tape
  move left or right on tape in response to value read

with a bit more housekeeping code to keep from running off either end of
the tape.

> Thanks.
> Gerald
>
> On Tue, Jun 7, 2011 at 7:37 AM, Walter Bender
> wrote:
>
>>
>>
>> On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
>>
>>> I had to think about this some before having a useful response.
>>>
>>
>> Lots of good ideas here, so thank you for taking the time.
>>
>>>
>>> > 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 th

Re: [IAEP] Turtles All The Way Out

2011-06-10 Thread C. Scott Ananian
On Mon, Jun 6, 2011 at 8:11 PM, John Gilmore  wrote:
> Don Hopkins worked on a PostScript-based window system (HyperLook)
> that would let you "flip over" an object on the screen to see "behind
> it" a control panel with the guts of its implementation visible.  You
> could modify those, then "flip it back" and it would resume running.
> See: http://www.art.net/~hopkins/Don/hyperlook/index.html and
> http://www.art.net/~hopkins/Don/simcity/hyperlook-demo.html .

"Self: The Movie" is also worth watching.  The self guys thought that
continuous execution of the code was important for liveness, along
with some other views (like direct correspondence between objects and
representation) which I don't think I actually agree with.  But still,
worth thinking about:
   http://www.smalltalk.org.br/movies/
  --scott

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