Wednesday, December 30, 2009

ScienceSim: Highly Recommended

I was just trying out ScienceSim, an OpenSimulator project sponsored by Intel and run and maintained by a loosely organized group of participating scientists and programmers. The main goal of the project is to "Enable new usages in education and visualization through the construction of persistent 3D spaces build and deployed by a federation of organizations and users (from the website)." You can create a free account at the first link and follow the instructions for downloading a viewer and configuring it to connect to the sim. Then you just explore. There doesn't seem to be any guiding organization to what projects and simulations are developed there and some could really use more information to be useful to the outside observer. One, however, is far and above the most worthwhile, especially for a teacher, and worth the price of admission itself (which is free, but...). That is the planetarium, which allows you to fly your avatar among the planets as they orbit the sun. UPDATE 1-27: To get there go to the Pascal region. The easiest way is to choose Pascal from the region menu on the left of the login screen. Or you can teleport over using the map once you log in. It would be an excellent simulation for any elementary or middle school class to experience as you can really see the different rates of the planetary orbits.

Some other simulations are promised but not always accessible. The project is comprised of different people hosting their own sims and linking them to this main one. So if someone's sim isn't running at the moment their teleport link won't work.

Wednesday, December 16, 2009

Making Robots Real: Constructionism and Robotics

I'm finally teaching robotics the way I've been wanting to for the last 5 years. Really the way I've been wanting to teach period for the last 17 years! Early on in my teaching career I read about constructionism and wanted to get my students doing writer's workshop, writing their own meaningful stories that intrinsically motivate them to become better writers. It never happened to my satisfaction because I could never find the right balance between teaching didactically and giving students the freedom to write what and how they wanted. Suddenly I find that it's coming together in my 9th grade robotics class. My students are inventing their own robots, and long-story-short here's how it happened.

Last year was my first year teaching 9th grade robotics and I went into it with the intention of making it as rigorous as they could handle with a focus on fundamental programming concepts. So while it was project-based in the sense that they produced projects, such as a vehicle that could follow a course taped out on white paper, I laid out a series of goals for them to reach so they could develop each project with progressively more sophisticated algorithms. What ended up happening is that a few students completed and understood everything, most got some of the way through the challenges, and some barely got past the first step, having been stuck just getting the project built and communication down. At no point during the class did I feel that they had ownership of their projects. When they completed the projects I gave them all they wanted to do was sit and talk rather than try more ideas.

This year I decided to give them more control over what they made and let their needs dictate the programming concepts they would learn. From the outset I gave them very few parameters--the first project simply had to involve programming the LED display, the second project using motors to illustrate gearing up or down and a switch to activate the motors--and have given them little explicit programming instruction. They have been much more involved in their projects and there have been many great opportunities to teach programming concepts that have been useful to them. In one case, a student had three procedures that were separate actions of her DJ robot and to get them all to run, she was typing their names separately in the direct command line. I hadn't taught them about creating a 'main' procedure that calls the sub-procedures. But once I showed her that it made sense right away. She was able to then go on to show the class and teach them the concept in a more effective way than I could have.

I think one key thing going forward will be giving them opportunities to explain their programming structures to the class, both to help them articulate what they are doing and to share good ideas that other students will hopefully want to try out and learn.

Looking back on last year's class, I realize I was not letting the students develop as much ownership of their projects as I could have by making the point of their projects being to move up through this sequence of concepts in a stepwise way. Rather than discovering the need for programming tools I was telling them when to use them so they never really took any interest in figuring out what they were for.