[IAEP] The XOrobots in Montevideo
Hi All, I have some photos and a short video that I took of the robot project they showed us in Montevideo. The file size of the email with all of them attached is to large and many of your email servers are bouncing it back. So I will send the files individually in separate files. I hope they come through that way! The project was done by a group of engineering students at one of the universities there. Their website address shows in one of the photos. I've also included screenshots of the code they wrote to make it happen. It is written in Turtle Art a version of Logo. How's your Spanish? Here is a guide to the attachments: XOrobots1.avi: A movie showing two of the robots in action. One starts around the oval, senses the other one waiting and stops. The other senses the first one and starts around the oval and goes until it reaches the first one. Then the process proceeds. The robots are programmed to go only where the surface is black. If they are put in one of the black floor tiles, they continue moving about within the square, but never leave it. XOrobots2.jpg and XOrobot4.jpg: screenshots of the TurtleArt code written to make it work. XOrobot3.jpg: A still shot of a single XOrobot going around the circle. Shows their website address. XOrobot5.jpg: A shot of the wheeled platform with the XO removed. Looks like fun doesn't it! Caryl ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
[IAEP] OLPC Contributors Program Mtg (on #olpc-meeting, 2PM Boston Time, Fri May 20)
Please join us in 30 MIN, voting for the latest OLPC/Sugar community projects over IRC Live Chat, to make the best project allocations mentoring relationships--starting right here: http://forum.laptop.org/chat Then type at bottom: /join #olpc-meeting AGENDA: * Fast Review of the 5 latest (greatest!) HW/Project Proposals. Plz join us advocating for reviewing shortcomings of these proposals: 1. Marysville Rotary XO Literacy Project - Guatemala / Marysville, WA 2. Community Health Information for OLPC - Montara, CA 3. Project VOICE - Philippines / Wantagh, NY 4. ClassContribute, a homework / gradebook app - Eastchester, NY 5. OLPC Tuva - Tiburon CA, Russia * Which projects might you enjoy Mentoring below?! http://wiki.laptop.org/go/Projects http://rt.laptop.org/Search/Results.html?Query=Queue=%27contributors%27 * New projects libraries -- teaching them Community Outreach: http://wiki.laptop.org/go/XO_Laptop_Lending_Libraries 1. Marysville Rotary XO Literacy Project - Guatemala / Marysville, WA http://rt.laptop.org/Ticket/Display.html?id=79572 http://www.marysvillerotary.org/literacyXOproject http://olpcMAP.net?id=884001 SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net http://j.mp/6UhCtd Requests 6-8 XOs over 2-3 months Project Objectives: Determine if the XO Laptop systems will provide an educational environment needed to improve both the education level in our local early child learning program and if these systems can become a valuable educational instrument in the rural / poverty areas of Guatemala. Also, to determine if it is possible to have both a simple Sugar programming and a vocational repair facility at our Technology High School, thus expanding the educational and learning spectrum across many age groups. 2. Community Health Information for OLPC - Montara, CA http://rt.laptop.org/Ticket/Display.html?id=79823 http://wiki.laptop.org/go/WiRED-CHI http://wiredinternational.org SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net http://j.mp/6UhCtd Requests 2 XO-1s and 2 XO-1.5s over 2+ months Project Objectives: This request is for two/three laptops to use as test and demonstration tools in a project to provide interactive health training programs through WiRED’s community health information (CHI) project. We seek to load and test our software on these machines as prototypes for a larger program involving OLPC computers. The complete software (health topics, auxiliary health libraries, search and access tools) will be provided without charge to OLPC for use in its global work. See a sample at http://www.itnhealth.net/CHIC2/presentations/50/player.html 3. Project VOICE - Philippines Wantagh, NY http://rt.laptop.org/Ticket/Display.html?id=80245 http://olpcMAP.net?id=883002 SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net http://j.mp/6UhCtd Requests 1 XOs over 12 months Project Objectives: The goal of Project VOICE is to foster literacy, opinion and expression in underprivileged Filipino youth living in the Philippines. This goal can be divided into two sub-goals, namely: to teach English from a young age in order to develop a strong command of the language at an older age, and, in older, literate youth, encourage expression and journalism, and the formation of opinions and the sharing of ideas, especially regarding social issues. To these ends, we list the following practical benchmarks and concrete objectives of the project: A. To develop an open-source English language teaching software, similar to Rosetta Stone, that is lightweight and optimized to run on XO's, and that is custom-tailored to the unique needs of children in the poorer regions of the Philippines and elsewhere. B. To deploy and conduct a pilot program in a test school in the Philippines. C. To develop or port an open-source journalism tool for the XO. D. To deploy and conduct a pilot program in a test school in the Philippines for this tool. 4. ClassContribute, a homework / gradebook app - Eastchester, NY http://rt.laptop.org/Ticket/Display.html?id=80592 http://olpcMAP.net?id=893001 SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net http://j.mp/6UhCtd Requests 1 XO-1 and 1 XO-1.5 over ~6 months Project Objectives: I want to be able to have a HTML (in browser) way for a teacher to post individual student grades, as well as interactive homework assignments. I also want to implement an “E-Mail your Teacher” section, where a student could choose a specific topic for which they could contact their teacher. 5. OLPC Tuva - Tiburon CA, Russia http://rt.laptop.org/Ticket/Display.html?id=81063 http://olpctuva.wordpress.com http://olpcMAP.net?id=892003 SPECIFIC SITE NEEDS TO BE POSTED OFF http://olpcMAP.net http://j.mp/6UhCtd Requests 2 XO-1.5s over 12 months
Re: [IAEP] The XOrobots in Montevideo
Caryl, is great that you liked the project butiá (the XO robot) If you want, you could upload the photos/videos to the facebook group of the project http://www.facebook.com/group.php?gid=147042805312846 I leave a video of the robot in the eduJAM here: http://www.youtube.com/watch?v=Uv6P1pQ71IM Also, there is some pictures here: http://www.flickr.com/photos/butiarobot/sets/ Thanks for taking pictures!! Regards Andrés, from the Butiá team On Fri, May 20, 2011 at 2:19 PM, Caryl Bigenho cbige...@hotmail.com wrote: Hi All, I have some photos and a short video that I took of the robot project they showed us in Montevideo. The file size of the email with all of them attached is to large and many of your email servers are bouncing it back. So I will send the files individually in separate files. I hope they come through that way! The project was done by a group of engineering students at one of the universities there. Their website address shows in one of the photos. I've also included screenshots of the code they wrote to make it happen. It is written in Turtle Art a version of Logo. How's your Spanish? Here is a guide to the attachments: *XOrobots1.avi*: A movie showing two of the robots in action. One starts around the oval, senses the other one waiting and stops. The other senses the first one and starts around the oval and goes until it reaches the first one. Then the process proceeds. The robots are programmed to go only where the surface is black. If they are put in one of the black floor tiles, they continue moving about within the square, but never leave it. *XOrobots2.jpg* and XOrobot4.jpg: screenshots of the TurtleArt code written to make it work. *XOrobot3.jpg*: A still shot of a single XOrobot going around the circle. Shows their website address. *XOrobot5*.jpg: A shot of the wheeled platform with the XO removed. Looks like fun doesn't it! Caryl ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- /\ndrés ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] copy files to/from server
On Fri, May 20, 2011 at 2:12 AM, fors...@ozonline.com.au wrote: why not use Moodle or Sharepoint or Blackboard? Yeah - there's an easy-installation Moodle package. That's what I'd go with. m -- martin.langh...@gmail.com mar...@laptop.org -- Software Architect - OLPC - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Turtles All The Way Down
On Fri, May 20, 2011 at 11:09 AM, Alan Kay alan.n...@yahoo.com wrote: This is nice! Smalltalk actually got started by thinking about a way to make a child's Logo-like language with objects and pattern matching that could express its own operating system and environment. It is very tricky to retain/maintain readability (so the first Smalltalk was also an extensible language not just semantically but syntactically). With a tile language, this is really worth thinking about, since using tiles suggests ways to extend both the form and the meaning of the tiles. My current thinking is that macros are *graphical*, not *source* transformations. You can create your own tiles for the language which render into hygenic macros. They are represented in source as simple message dispatch. For example, choosing a particularly ugly bit of JavaScript syntax: var ForBlockMacro = imports.macros.ForBlockMacro; var foo = function() { var i; ForBlockMacro(function() { i=0; }, function() { return i 5; }, function() { i+=1; }, function() { /* body */ }); } This is the underlying syntax for the macro. But the ForBlockMacro function (which is a first class object in JavaScript) can have an asTile() method which returns a more attractive visual representation in the tile editor; in fact, the representation could elide all the 'function' and 'return' nastiness of the raw syntax and display (traditionally) as: for ( i=0 ; i 5 ; i+=1 ) { /* body */ } My current plan is to finess the multiple views issue (discussed in 3.4 of http://labs.oracle.com/self/papers/programming-as-experience.html) by representing objects as 3d polyhedra. The front view might be the nice cleaned up tile macro, but you should be able to rotate the tile to see the low level source, and then rotate it again to see the object corresponding to the actual widget displaying the source, etc. So, one object, many views. I've built the current system on a very flexible operator precedence grammar, so there's no reason I *couldn't* allow the user to flexibly extend the base grammar. But that increases the conceptual effort necessary to understand the system -- I have to understand the expanded language before I can understand the code I'm looking at. The macro system I describe above has the nice property that you don't *have* to understand the macro or the grammar of the new if statement. It's enough to look at the desugared version: ForBlockMacro(function() { i=0; }, function() { return i 5; }, function() { i+=1; }, function() { /* body */ }); and the implementation of ForBlockMacro: ForBlockMacro = function(initBlock, condBlock, incrBlock, bodyBlock) { initBlock(); while (condBlock()) { bodyBlock(); incrBlock(); } }; ForBlockMacro.asTile() = ; This seems (to me) a preferable way of understanding what the new tile does. But I'm open to other ideas on this front. (And yes, JavaScript's syntax isn't lovely. But I'm interested in what I can do with what I've got.) --scott -- ( http://cscott.net ) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Turtles All The Way Out
On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote: separation. This is why they never learn to modify the real programs that hide behind the fluffy interfaces on their real XO computers. I hope to show you a system where the real program *is* the fluffy interface (and vice versa). I'm not at that point yet, but you've correctly extracted the point of this particular research program. --scott -- ( http://cscott.net ) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Turtles All The Way Out
On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote: Recently, I finished my dissertation on mobile development directly from mobile devices. Something like this might've been very useful, although I did target experienced developers, not beginners. Mobile development would work great on mobile devices like the XO-1, XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the kids a few simple paradigms like files, hierarchical file systems and text editors. Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and files (and even a hierarchical file system) that has a data store as its primary interface. The problem with mobile development on mobile devices is not one of religion, it is about physical affordances: small screen and no (or inadequate) keyboard. (Efforts to teach computers to compile or interpret large programs that aren't written in collections of files are doomed to niche uselessness, though it sure makes a fun research/masturbation topic. I spent years paid to write big programs in APL that way in the '70s -- those programs are all unportably dead today, and APL is a tiny niche.) These are not hard concepts. Kids learn them daily, but not from XOs. Since OLPC can't seem to be dissuaded from this fundamental error, the question for me is whether it can be influenced to minimize the amount of learning that kids go through which is unique to this useless programming model. There *is* usefulness in teaching kids how to write tiny programs that can never scale up to useful, portable, supportable programs. But once they get the basic concepts, they should be transitioned to industry best practices pretty quickly, writing a real Hello World and then evolving it to be more useful. Rather than getting stuck by e.g. trying to make substantial programs fit on one screen by moving tiles around visually. As in the model-view-controller paradigm, the kids need to learn that the view is not the model, but the model is a simply structured thing that lives behind the view. If you don't teach the abstract structures that the model is based on, the kids can't learn to make that separation. This is why they never learn to modify the real programs that hide behind the fluffy interfaces on their real XO computers. I cannot speak for every Sugar developer, but the approach I have tried to take with Turtle Art is a bit different than you are describing. The block-based programming environment is not meant to be a substitute for real tools; it is meant to be a place to get started; to learn that you can write and modify code; and to provide multiple motivations and launch pads for getting into the real thing. I've worked pretty hard to make the structured thing behind the view more approachable, and have provided multiple ways in and out: exporting your fluffy view into Logo that can be run in Brian Harvey's text-based Logo environment; direct, in-line extensions written in Python; the ability to create new blocks by importing Python; a plugin mechanism for making major interventions; and a refactoring of the underlying structures to make the code more approachable. (The source code is peppered with comments and examples of how to make modifications.) None of these interventions are intended to keep the kids programming in Turtle Art. They are all intended to get the kids started down the path of real programming. But I content that we need to engage them; let them discover that they can write code; and make changes; and that it is not something just for others but for everyone. When I talked about Turtles All the Way Down at Libre Planet two-years ago, I wasn't suggesting that we use fluffy interfaces all the way down, but that we invite modifications all the way down by providing scaffolding and encouragement. Step One is to give them the freedom to make changes; Step Two is to give them the context in which they can actually start doing it. Sure, there will always be the handful of kids who will jump right into Emacs and C, but most won't. Maybe we can encourage a few more to do something of substance but giving them some scaffolding. I am open to suggestions as to how to get more kids to move on from Turtle Art to ___ (insert you favorite real programming environment here). -walter John ___ Devel mailing list de...@lists.laptop.org http://lists.laptop.org/listinfo/devel -- Walter Bender Sugar Labs http://www.sugarlabs.org ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Turtles All The Way Out
On Fri, May 20, 2011 3:11 pm, Walter Bender wrote: On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote: Recently, I finished my dissertation on mobile development directly from mobile devices. Something like this might've been very useful, although I did target experienced developers, not beginners. When we get to wearables with glasses-mounted full-sized display devices and one-hand chord keyboards, absolutely. Or when soft keyboards on multitouch tablets are totally reliable. Mobile development would work great on mobile devices like the XO-1, XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the kids a few simple paradigms like files, hierarchical file systems and text editors. See Introduction to the Command Line http://booki.flossmanuals.net/command-line/edit/ of which I am a co-author. I don't know where you get the idea that files, hierarchical file systems, and text editors are simple concepts. I would be willing to discuss introducing the Linux file system in middle school, but our issue is programming for third-graders, or even earlier. Preschoolers can grasp the ideas behind turtle art by acting the part of the turtle. Where would you have them begin? Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and files (and even a hierarchical file system) that has a data store as its primary interface. The problem with mobile development on mobile devices is not one of religion, it is about physical affordances: small screen and no (or inadequate) keyboard. (Efforts to teach computers to compile or interpret large programs that aren't written in collections of files are doomed to niche uselessness, though it sure makes a fun research/masturbation topic. Language, John, our discussion of child programming must be discussable with the children, their parents, and their parents' churches and political parties. The archive of this list is public information. I spent years paid to write big programs in APL that way in the '70s -- those programs are all unportably dead today, and APL is a tiny niche.) I have an ISO/ANSI standard APL that occupies 29K, thus originally giving a 32K workspace on 8-bit computers with 64K memory. It could easily be expanded to run with any amount of memory. Ken Iverson successfully used IBM APL\360 to teach first-grade arithmetic on a 360 with Selectric terminals. I also have books on math and other subjects in APL, from arithmetic to calculus, cryptography, and computer design. These are not hard concepts. Kids learn them daily, but not from XOs. Kids of what age? Since OLPC can't seem to be dissuaded from this fundamental error, because it isn't one, the question for me is whether it can be influenced to minimize the amount of learning that kids go through which is unique to this useless programming model. The point is to maximize learning in minimum time or with minimum effort. There *is* usefulness in teaching kids how to write tiny programs that can never scale up to useful, portable, supportable programs. But once they get the basic concepts, they should be transitioned to industry best worst, actually (Did you ever hear of the programmer who claimed to have 20 years experience in COBOL, but it turned out he had two years experience repeated 10 times?) No industry has ever embraced best practices. practices pretty quickly, writing a real Hello World So Hello World in Turtle Art is unreal? Here is a complete APL Hello, World. program, with its output. 'Hello, World.' Hello, World. and a complete Turtle Art version PrintTextVariable Hello, World. which the activity will be happy to convert to Logo. Next you put a Python function call on a single block to print the text, and away you go. and then evolving it to be more useful. Precisely. I prefer to teach not only programming but computer science concepts in the early years. One of the great advantages of Turtle Art is that there is no parsing step to translate from linear text with bizarre punctuation rules to a tree structure. The children program directly in effectively preparsed tree structures, with no syntactic sugar, as the LISPers call it. Also, Walter has built stack primitives into Turtle Blocks, so we can teach stack discipline and the rudiments of FORTH in Turtle Art. He recently added a block to read the color at the turtle's location. I had mentioned to him some time ago that that was the only function missing for me to write a Turing machine in Turtle Art, using colors for cell states and elements in the transition table. I must do that sometime. Rather than getting stuck by e.g. trying to make substantial programs fit on one screen by moving tiles around visually. Strawman. Not the purpose of Turtle Blocks, and not something we would encourage anybody to do. At that point you start writing Python subroutines, and shortly after that you transfer completely to Python. Or Smalltalk. And from
Re: [IAEP] Turtles All The Way Out
Actually, I said I made up the term 'Object-oriented', and I did not have C++ in mind. Cheers, Alan From: moku...@earthtreasury.org moku...@earthtreasury.org To: Walter Bender walter.ben...@gmail.com Cc: Lucian Branescu lucian.brane...@gmail.com; IAEP SugarLabs iaep@lists.sugarlabs.org; OLPC Devel de...@lists.laptop.org; John Gilmore g...@toad.com Sent: Fri, May 20, 2011 5:51:08 PM Subject: Re: [IAEP] Turtles All The Way Out On Fri, May 20, 2011 3:11 pm, Walter Bender wrote: On Fri, May 20, 2011 at 2:28 PM, John Gilmore g...@toad.com wrote: Recently, I finished my dissertation on mobile development directly from mobile devices. Something like this might've been very useful, although I did target experienced developers, not beginners. When we get to wearables with glasses-mounted full-sized display devices and one-hand chord keyboards, absolutely. Or when soft keyboards on multitouch tablets are totally reliable. Mobile development would work great on mobile devices like the XO-1, XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the kids a few simple paradigms like files, hierarchical file systems and text editors. See Introduction to the Command Line http://booki.flossmanuals.net/command-line/edit/ of which I am a co-author. I don't know where you get the idea that files, hierarchical file systems, and text editors are simple concepts. I would be willing to discuss introducing the Linux file system in middle school, but our issue is programming for third-graders, or even earlier. Preschoolers can grasp the ideas behind turtle art by acting the part of the turtle. Where would you have them begin? Sugar comes with a plain-text editor (written by a 14-year-old, BTW) and files (and even a hierarchical file system) that has a data store as its primary interface. The problem with mobile development on mobile devices is not one of religion, it is about physical affordances: small screen and no (or inadequate) keyboard. (Efforts to teach computers to compile or interpret large programs that aren't written in collections of files are doomed to niche uselessness, though it sure makes a fun research/masturbation topic. Language, John, our discussion of child programming must be discussable with the children, their parents, and their parents' churches and political parties. The archive of this list is public information. I spent years paid to write big programs in APL that way in the '70s -- those programs are all unportably dead today, and APL is a tiny niche.) I have an ISO/ANSI standard APL that occupies 29K, thus originally giving a 32K workspace on 8-bit computers with 64K memory. It could easily be expanded to run with any amount of memory. Ken Iverson successfully used IBM APL\360 to teach first-grade arithmetic on a 360 with Selectric terminals. I also have books on math and other subjects in APL, from arithmetic to calculus, cryptography, and computer design. These are not hard concepts. Kids learn them daily, but not from XOs. Kids of what age? Since OLPC can't seem to be dissuaded from this fundamental error, because it isn't one, the question for me is whether it can be influenced to minimize the amount of learning that kids go through which is unique to this useless programming model. The point is to maximize learning in minimum time or with minimum effort. There *is* usefulness in teaching kids how to write tiny programs that can never scale up to useful, portable, supportable programs. But once they get the basic concepts, they should be transitioned to industry best worst, actually (Did you ever hear of the programmer who claimed to have 20 years experience in COBOL, but it turned out he had two years experience repeated 10 times?) No industry has ever embraced best practices. practices pretty quickly, writing a real Hello World So Hello World in Turtle Art is unreal? Here is a complete APL Hello, World. program, with its output. 'Hello, World.' Hello, World. and a complete Turtle Art version PrintTextVariable Hello, World. which the activity will be happy to convert to Logo. Next you put a Python function call on a single block to print the text, and away you go. and then evolving it to be more useful. Precisely. I prefer to teach not only programming but computer science concepts in the early years. One of the great advantages of Turtle Art is that there is no parsing step to translate from linear text with bizarre punctuation rules to a tree structure. The children program directly in effectively preparsed tree structures, with no syntactic sugar, as the LISPers call it. Also, Walter has built stack primitives into Turtle Blocks, so we can teach stack discipline and the rudiments of FORTH in Turtle Art. He recently added a block to read the color at the turtle's location. I had mentioned to him some time ago that that was the only function missing for me to write a
Re: [IAEP] Turtles All The Way Down
On Fri, May 20, 2011 2:28 pm, C. Scott Ananian wrote: On Fri, May 20, 2011 at 11:09 AM, Alan Kay alan.n...@yahoo.com wrote: This is nice! Smalltalk actually got started by thinking about a way to make a child's Logo-like language with objects and pattern matching that could express its own operating system and environment. Seymour Papert also proposed creating an environment in which learning math would be as easy as learning ordinary language. Smalltalk has a number of kinds of number and shape objects, but I have not seen much else in the way of mathematical objects. I am trying to go through various subjects to extract the ideas that preschoolers can absorb, and create materials to encourage them to explore those ideas. Caleb Gattegno and Ken Iverson did a fair amount on algebra, using Cuisenaire rods and APL respectively. Don Cohen has done Calculus by and for Young People I have made a start on symmetry groups, using variations on children's block toys. Elementary set theory using Venn diagrams was done long ago. But there is so much more. It is very tricky to retain/maintain readability (so the first Smalltalk was also an extensible language not just semantically but syntactically). With a tile language, this is really worth thinking about, since using tiles suggests ways to extend both the form and the meaning of the tiles. My current thinking is that macros are *graphical*, not *source* transformations. You can create your own tiles for the language which render into hygenic macros. They are represented in source as simple message dispatch. For example, choosing a particularly ugly bit of JavaScript syntax: I would like to be able to create a set of blocks implementing the symmetry group of a simple shape such as an equilateral triangle. This case is generated by a 120 degree rotation and a reflection, giving six elements in all. Similarly I would like to be able to do modular addition, subtraction, multiplication, and division in finite fields, and the and and or functions or union and intersection on lattices. Does your system accommodate this? var ForBlockMacro = imports.macros.ForBlockMacro; var foo = function() { var i; ForBlockMacro(function() { i=0; }, function() { return i 5; }, function() { i+=1; }, function() { /* body */ }); } This is the underlying syntax for the macro. But the ForBlockMacro function (which is a first class object in JavaScript) can have an asTile() method which returns a more attractive visual representation in the tile editor; in fact, the representation could elide all the 'function' and 'return' nastiness of the raw syntax and display (traditionally) as: for ( i=0 ; i 5 ; i+=1 ) { /* body */ } My current plan is to finess the multiple views issue (discussed in 3.4 of http://labs.oracle.com/self/papers/programming-as-experience.html) by representing objects as 3d polyhedra. The front view might be the nice cleaned up tile macro, but you should be able to rotate the tile to see the low level source, and then rotate it again to see the object corresponding to the actual widget displaying the source, etc. So, one object, many views. I've built the current system on a very flexible operator precedence grammar, so there's no reason I *couldn't* allow the user to flexibly extend the base grammar. But that increases the conceptual effort necessary to understand the system -- I have to understand the expanded language before I can understand the code I'm looking at. The macro system I describe above has the nice property that you don't *have* to understand the macro or the grammar of the new if statement. It's enough to look at the desugared version: ForBlockMacro(function() { i=0; }, function() { return i 5; }, function() { i+=1; }, function() { /* body */ }); and the implementation of ForBlockMacro: ForBlockMacro = function(initBlock, condBlock, incrBlock, bodyBlock) { initBlock(); while (condBlock()) { bodyBlock(); incrBlock(); } }; ForBlockMacro.asTile() = ; This seems (to me) a preferable way of understanding what the new tile does. But I'm open to other ideas on this front. (And yes, JavaScript's syntax isn't lovely. But I'm interested in what I can do with what I've got.) --scott -- Â Â Â ( http://cscott.net ) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- Edward Mokurai (#40664;#38647;/#2343;#2352;#2381;#2350;#2350;#2375;#2328;#2358;#2348;#2381;#2342;#2327;#2352;#2381;#2332;/#1583;#1726;#1585;#1605;#1605;#1740;#1711;#1726;#1588;#1576;#1583;#1711;#1585; #1580;) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos
Re: [IAEP] Turtles All The Way Down
The question is: does this really have educational value? Turtles all the way down is a great slogan, and a fine way to teach a graduate-level class on compiler technology, but I feel that the higher-level UI for tile-based program editing is the really useful thing for tablet computing. I'm a compiler geek and love the grungy underbelly of this stuff, but I keep reminding myself I should really be spending more time building a beautiful fluffy surface. You are doing the right question I remember here No silver bullet [1] Different languages, different levels of abstraction, need different interfaces, and text is powerfull interface. May be is not the best interface to start to program, but surely graphic block are not the best interface to do programs of more than 400 of blocks. Gonzalo [1] http://en.wikipedia.org/wiki/No_Silver_Bullet On Fri, May 20, 2011 at 10:30 AM, C. Scott Ananian csc...@laptop.orgwrote: I've done a little more work on Turtles All The Way Down, which I (very briefly) discussed at EduJam. I actually wrote a garbage collector in TurtleScript for TurtleScript on Sunday. Brief writeup here: http://cananian.livejournal.com/64140.html and exhaustive mind-numbing detail here: http://cscott.net/Projects/TurtleScript/ No actual turtles yet! I'm going to have to fix that soon. --scott -- ( http://cscott.net ) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep