Re: [IAEP] Turtles All The Way Out
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
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
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
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
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
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
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
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
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
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
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
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
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