[ANN] rur-ple: pre-release of new lessons.
Hi everyone, I just uploaded (I had to do it twice to get it right) a new set of lessons for rur-ple on sourceforge.net. They are in a file named "html.zip". There are about a dozen new additional lessons. [rur-ple is a learning environment for Python, inspired by Karel the Robot, and Guido van Robot ... but it allows so much more!] I would describe the new lessons as a "beta" release. They can't properly be viewed through the browser included in rur-ple, because of my use of style files. This won't change in the future. The "index" file (rur.htm) has not been fully updated. However, if you use it to take you to the first lesson, you should be able to navigate from one lesson to the next. I have made a small change in the robot language [facing_North() has been changed to facing_north()]; the current version of rur-ple on sourceforge uses the old notation. Future lesson numbering will be of the form 0.n where n= number of lessons included, until I have enough to call it a "complete" introduction to Python. I will need to make a new release soon of rur-ple, so that it will work properly on MacOs. Also, I'm *really* excited about a significant change I have made to the last notebook page (the simple Python editor) for the app. I am waiting to have lessons written for it (I just need two or three more I think) and then I'll do a new rur-ple release. Now, how's that for a teaser ;-) *Please*, don't be shy to give me some feedback (good *and* bad). André
Hi Andre --- My plan is to introduce my daughter to Python using the robot theme. Your curriculum is an obvious place to start. I will be starting a more in depth investigation of your work in the near future. My longer term hope is to see some physical robot offerings on the market (in addition to the screen based ones) with some kind of Python capability -- perhaps just a module with pre-defined motions the user might resequence or trigger based on events (sensor inputs), per Lego Mindstorms example. Also, I'm hoping the screen-based options become more visually sophisticated, ala the Sims genre, i.e. we could script theater, complete with dialog and sound, using Python (yes, this is Alice territory). Arthur, before you blow your stack, this theater or playhouse genre isn't about learning or teaching programming necessarily. It's about scripting plays and sharing them with your friends. Programming is a prerequisite, but by the time you start animating some Shakespeare play or whatever, we assume you've already got those skills. Python is for people who already know how to program, not just for those into learning how. An important fact to keep in mind, as we explore the space of potentially marketable products. Kirby
On 29-Jan-06, at 8:04 AM, kirby urner wrote:
Hi Andre ---
My plan is to introduce my daughter to Python using the robot theme. Your curriculum is an obvious place to start. I will be starting a more in depth investigation of your work in the near future.
I'm also introducing my daughter to programming with robots. If they're close to the same age (mine is nine) we might be able to brainstorm approaches and share successes.
My longer term hope is to see some physical robot offerings on the market (in addition to the screen based ones) with some kind of Python capability -- perhaps just a module with pre-defined motions the user might resequence or trigger based on events (sensor inputs), per Lego Mindstorms example.
Pyro (http://pyrorobotics.org/) does exactly this. It provides an environment for programming physical robots, but you can also run them in a simulator which uses OpenGL to create both the robot and a world for the robot to interact with. Could be interesting to bring something like this to RUR-PLE.
Also, I'm hoping the screen-based options become more visually sophisticated, ala the Sims genre, i.e. we could script theater, complete with dialog and sound, using Python (yes, this is Alice territory).
Nothing wrong with going into Alice territory. Squeak smalltalk has a 3D distributed environment called Croquet (http:// www.opencroquet.org/) which they are planning to hook up to Python in the near future (looking through their wiki and developer blogs, it looks like they've already integrated Python via their Babel component, and even developed their Wicket component with it, but that it needs further testing?).
Arthur, before you blow your stack, this theater or playhouse genre isn't about learning or teaching programming necessarily. It's about scripting plays and sharing them with your friends.
In my case it is because my daughter wants to create her own games, animations, and art using the computer. She was fascinated by a screensaver I wrote and wants to make her own. I'm looking at RUR- PLE and other tools for making it easier for her to dive in. --Dethe
Programming is a prerequisite, but by the time you start animating some Shakespeare play or whatever, we assume you've already got those skills.
Python is for people who already know how to program, not just for those into learning how.
An important fact to keep in mind, as we explore the space of potentially marketable products.
Kirby
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Ninety percent of the technology hasn't even been developed yet. -- Tim Armstrong, Google
I was asleep at the wheel during this last bit of discussion of RUR-PLE, and just now catching up. Some comments below: On Sun, 2006-01-29 at 09:56 -0800, Dethe Elza wrote:
My longer term hope is to see some physical robot offerings on the market (in addition to the screen based ones) with some kind of Python capability -- perhaps just a module with pre-defined motions the user might resequence or trigger based on events (sensor inputs), per Lego Mindstorms example.
Python is catching on in many places, including real robotics and AI research. Many low-level systems have Python wrappers. I'll be presenting at SIGCSE (http://www.cs.rit.edu/~sigcse06/) in a month with two other colleagues. We all three do robotics, but all use Python in different ways. For example, Python now runs natively on Sony's AIBO. It used to be the case that one would write C++ code, compile it, reboot, upload, run, in order to program the AIBO. Now, it can be all Python (and the award winning CMU team is doing just that). As a side note, the AIBO was just canceled by Sony. Bummer. It was a great platform. And as Dethe mentioned:
Pyro (http://pyrorobotics.org/) does exactly this. It provides an environment for programming physical robots, but you can also run them in a simulator which uses OpenGL to create both the robot and a world for the robot to interact with. Could be interesting to bring something like this to RUR-PLE.
As one of the developers of Pyro, I wonder about going the other way too, bringing RUR-PLE pieces to Pyro. In fact, not only can Pyro control OpenGL robots, AIBO, 2d simulators, but it can also be used to play checkers, chess, and the like. Also, we have a "wumpus world" that operates much like RUR-PLE's world. I co-wrote a paper a couple of years ago, "Avoiding the Karel-the-Robot Paradox: A framework for making sophisticated robotics accessible" [1]. The point was that instead of teaching a pseudo-language in a pseudo-world, we should teach a real language/system which remains constant across all robot platforms. It is an extreme position (and largely aimed at real robotics systems), but does raise some real questions: - Does RUR-PLE limit the student too much? Or is does hiding some parts of the complexity of Python and real robots make it easier to learn? - Does learning to rely on the hidden bits make it harder to learn real Python as the student continues? - Is it easy to move to Pyro from RUR-PLE, or would it be easier to have a RUR-PLE world in Pyro? - Would having to deal with real world issues (like time, inaccurate sensors, inaccurate wheels) cloud the environment, or does it excite the student and teach other valuable lessons? - Do kids see RUR-PLE as silly and too simple? Do kids see Pyro as too complex? Is there a preferred age for both systems? - Can kids explore "emergent phenomena" with RUR-PLE? Or is it just too constrained? Students can have control many robots in Pyro, but is this too much for them to handle? (Pokemon is vast, and yet not that interesting because there aren't any interaction effects. Even The Sims has limited interaction effects.) - Having real sensors in Pyro allows students to hook up input directly to output. In RUR-PLE you have to use symbol names (left, right, beeper_to_left, etc). How does this affect what we learn? Are these biases put in place when we are young and hard to overcome later? The programs are more similar than one might guess: In RUR-PLE: move() move() turn_left() There are some subtle points in this program: how do you know when you have gone one grid space? can you move .5 grid spaces? how do you know when you have turned exactly 90 degrees? In Pyro (talking to a symbolic, discrete world): class MyBrain(Brain): def step(self): self.robot.move("forward") self.robot.move("forward") self.robot.move("left") The same questions apply here, and we answer them by going to a continuous world. In Pyro (talking to a real or simulated, continuous world): class MyBrain(Brain): def step(self): self.robot.move(0, 1) # translate amt, rotate amt time.sleep(1.0) self.robot.move(1, 0) # values go from -1 to 1 time.sleep(3.0) self.robot.move(0, 1) time.sleep(1.0) A complete intro lesson can be seen here: http://pyrorobotics.org/?page=PyroModuleDirectControl Some of these points may be non-issues because RUR-PLE isn't attempting to teach robotics. But what if it were? Some of these points we could explore by making RUR-PLE talk to the Pyro 2D simulators (one is written in pure-Python) and by having Pyro connect to the simulator in RUR-PLE. I'd be interested in sharing lessons learned from that software which is designed "for kids" versus "for young adults." BTW, I use do use Pyro to teach cognitive science students how to program. Questions of intelligence make a great way to motivate the learning of programming, and of course Python is great for that. Would young kids benefit from this same motivation? -Doug [1] http://dangermouse.brynmawr.edu/~dblank/papers/aaaiss04-pyro.pdf -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank
On 1-Feb-06, at 11:05 AM, Douglas S. Blank wrote:
For example, Python now runs natively on Sony's AIBO. It used to be the case that one would write C++ code, compile it, reboot, upload, run, in order to program the AIBO. Now, it can be all Python (and the award winning CMU team is doing just that). As a side note, the AIBO was just canceled by Sony. Bummer. It was a great platform.
Wow, that alone sounds like a great reason to get an AIBO (python is a great selling point for me--I never wanted a smartphone until Nokia ported python to theirs).
As one of the developers of Pyro, I wonder about going the other way too, bringing RUR-PLE pieces to Pyro. In fact, not only can Pyro control OpenGL robots, AIBO, 2d simulators, but it can also be used to play checkers, chess, and the like. Also, we have a "wumpus world" that operates much like RUR-PLE's world.
Mixing RUR-PLE and Pyro sounds like a good idea to me. My daughter likes to push things past their limits (she's a good beta tester for me), so if she was using RUR-PLE and found that it "unfolded" into a bigger, more complicated, but more powerful world, I think that would really get her involved. Does Pyro yet run natively on OS X (without requiring X windows/Gnome/ fink)?
Some of these points may be non-issues because RUR-PLE isn't attempting to teach robotics. But what if it were? Some of these points we could explore by making RUR-PLE talk to the Pyro 2D simulators (one is written in pure-Python) and by having Pyro connect to the simulator in RUR- PLE. I'd be interested in sharing lessons learned from that software which is designed "for kids" versus "for young adults."
Using robotics to teach programming, vs. using programming to teach robotics. Two sides of the same coin, IMHO. I think you've raised some good points to consider, but I know I'd like to see this combination work out (especially if it runs on OS X).
BTW, I use do use Pyro to teach cognitive science students how to program. Questions of intelligence make a great way to motivate the learning of programming, and of course Python is great for that. Would young kids benefit from this same motivation?
Not directly questioning their intelligence, but praising them for being smart when they figure something out, yeah, that's a heady motivator. --Dethe "Any idea that couldn't stand a few decades of neglect is not worth anything." --Gabriel Garcia Marquez
On Wed, 2006-02-01 at 19:31 -0800, Dethe Elza wrote:
Mixing RUR-PLE and Pyro sounds like a good idea to me. My daughter likes to push things past their limits (she's a good beta tester for me), so if she was using RUR-PLE and found that it "unfolded" into a bigger, more complicated, but more powerful world, I think that would really get her involved.
Yes, I think it would be good to think about making it easy to move from rur-ple to pyro.
Does Pyro yet run natively on OS X (without requiring X windows/Gnome/ fink)?
In a word, yes. It is still the case that if you want to use the advanced 3D simulator (gazebo) you'll need X (I suspect that someone will eventually write a front end to gazebo in native Mac). But, we now have a simulator written in 100% Python that simulates vision, grippers, and range sensors. You can see some images and the interface here: http://pyrorobotics.org/?page=The_20Pyrobot_20Simulator
Some of these points may be non-issues because RUR-PLE isn't attempting to teach robotics. But what if it were? Some of these points we could explore by making RUR-PLE talk to the Pyro 2D simulators (one is written in pure-Python) and by having Pyro connect to the simulator in RUR- PLE. I'd be interested in sharing lessons learned from that software which is designed "for kids" versus "for young adults."
Using robotics to teach programming, vs. using programming to teach robotics. Two sides of the same coin, IMHO. I think you've raised some good points to consider, but I know I'd like to see this combination work out (especially if it runs on OS X).
Very well said. I hope we can discuss this further.
BTW, I use do use Pyro to teach cognitive science students how to program. Questions of intelligence make a great way to motivate the learning of programming, and of course Python is great for that. Would young kids benefit from this same motivation?
Not directly questioning their intelligence, but praising them for being smart when they figure something out, yeah, that's a heady motivator.
Actually, I meant that students can question where intelligence comes from, and *that* motivates them to learn about robots. These questions are subtle, and I don't think we have an answer. It doesn't (necessarily) have anything to do with logic. It is akin to "what does it mean to be alive?" and "how can non-living material give rise to life?" How can intelligence come from non-intelligent things? These are some of the great questions of our time. I think Python can help explore them. -Doug
--Dethe
"Any idea that couldn't stand a few decades of neglect is not worth anything." --Gabriel Garcia Marquez
-- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank
For example, Python now runs natively on Sony's AIBO.
My daughter just got her new I-Cybie via UPS yesterday. She's very excited about it. The battery is still charging and I've yet to see it perform. We're working up to an affordable Pythonic robot eventually, as she's just about the right age to find programming of interest. Especially if there's pet robot at the other end of it. Kirby
kirby urner wrote:
Hi Andre ---
My plan is to introduce my daughter to Python using the robot theme. Your curriculum is an obvious place to start. I will be starting a more in depth investigation of your work in the near future.
My longer term hope is to see some physical robot offerings on the market (in addition to the screen based ones) with some kind of Python capability -- perhaps just a module with pre-defined motions the user might resequence or trigger based on events (sensor inputs), per Lego Mindstorms example.
Also, I'm hoping the screen-based options become more visually sophisticated, ala the Sims genre, i.e. we could script theater, complete with dialog and sound, using Python (yes, this is Alice territory).
Arthur, before you blow your stack, this theater or playhouse genre isn't about learning or teaching programming necessarily. It's about scripting plays and sharing them with your friends.
What I would tend to blow my stack about is more the notion of pushing things off into to future... as if the barriers was technological. if: IDLE 1.1.2
from visual import * display(background=color.white) <visual.ui.display object at 0x0927D150> sphere(color=color.blue) <visual.primitives.sphere object at 0x0927D120>
ain't enough to get a kid excited, the kid is simply jaded. A fancier technology - Croquet? - plays better to the jaded, perhaps. seems to me with some certainty that playing to jaded sensibilities is not the role that educators should play.
An important fact to keep in mind, as we explore the space of potentially marketable products.
didn't know we were. Art
if:
IDLE 1.1.2
from visual import * display(background=color.white) <visual.ui.display object at 0x0927D150> sphere(color=color.blue) <visual.primitives.sphere object at 0x0927D120>
ain't enough to get a kid excited, the kid is simply jaded.
A fancier technology - Croquet? - plays better to the jaded, perhaps.
I understand your point and I think you've expressed it effectively. However, the Dragon Kit might be sold as such: a laboratory for scripting dragon behaviors, and sharing these creations with your friends online. You can even make them fight each other in cyber-arenas, which are firewalled to ensure no remote controlling i.e. your dragon competes on the merits of its code, with no last minute patches once the bout is in progress. However, other dragon ethusiasts would have little interest in arena-based dragon fights. They're more into intricate storytelling, complete with wizards, knights, the works. More like Shrek. Oh yeah, some programming required (says so on the box, little Python logo). But like duh, that's a given. All such toys require some kind of programming, that's what we went to school for, to learn from like you're showing above (VPython and so on, with lots of cross-references to other disciplines, no market-centric bias to push someone's bottom line). seems to me with some certainty that playing to jaded sensibilities is
not the role that educators should play.
An important fact to keep in mind, as we explore the space of potentially marketable products.
didn't know we were.
Art
I routinely rope in commercial products for their educational value, including but not limited to computer games and simulations. It's important for our family that we have access to toyz. I actively stimulate the imaginations of toy makes with descriptions of what we'd likely buy, and charge on our Platinum Amazon Visa, which I just signed for while buying Tara a new robot dog with her own money (the 16+% variable APR is pretty outrageous -- thinking mainly of the promotional discount, which turned out not to apply, as this was a pass through from Toys R Us, and therefore apparently not qualified). Kirby
participants (5)
-
Andre Roberge -
Arthur -
Dethe Elza -
Douglas S. Blank -
kirby urner