As the leaves begin to change in the Hudson Valley each year, Bard’s Hannah Arendt Center puts on a fantastic, colorful and current conference, and this year was no exception. The title of this year’s two-day event was Failing Fast: The Educated Citizen in Crisis. I was not able to see all of the talks, but the sessions I attended failed to disappoint. From Stanford computer scientist and Coursera founder, Andrew Ng speaking about the potential of the MOOC’s to John Seery from Pomona College speaking about the virtues of a liberal arts education, a large range of views were put forward. Check out the conference schedule for the other speakers.
The organizers of this conference go out of their way to invite intellectuals from across the spectrum to share their views: scientists and writers, conservatives and liberals, entrepreneurs and academics. All were invited to share their views about the future of education. But like past meetings with such impressively mixed audiences, many of the messages get lost, attenuated or misconstrued as they travel between the vast intellectual space between the participants.
Making robotics accessible has been a career-long goal of mine. For many of the themes of this blog: all citizens should be empowered to use robotics (and computing) technology in their own work, and the fields of robotics and computing need to be informed by a diverse set of contributors. My class on Drones this Fall will continue this track of teaching and research.
Starting with some of my earliest work on using open-source software with robotics and then later with my work with IPRE on using robots in CS-1, I have been on a mission to make robotics more open, transparent and adaptable. My latest effort in this vein is embodied by the Calico Project. Calico is a learning environment for computing particularly suited for robotics.
Calico is about choice: choice of operating system, choice of programming language, and choice of programming context. The particular operating system (e.g., Windows, Mac OS X, and Linux) or programming language (e.g., Java, C#, Scheme, Python, Ruby) should not limit your pedagogical mission. Although Calico started as a way to easily program the IPRE Scribbler robot in Python on all three platforms it has evolved into a system that allows students to explore a variety of computing contexts (e.g. Processing-inspired graphics) with a variety of languages (e.g. scheme). We have extended Calico to work with other robot platforms like the Lego NXT and the Finch. Our next step, in the spirit of Pyro, is to use Calico as a front-end to the Robot Operating System (ROS).
Last week, we had a Calico summer research meet-up at Sarah Lawrence College. Part of this meeting was devoted to understanding how we could use ROS with Calico. A prototype system was presented that is able to control both the simple ROS turtle simulation, but also the Stage robot simulation, the iRobot Create, and the Parrot AR Drone. We are in the process of flushing out this interface and writing a proposal, stay tuned!
I teach two introductory computing classes at Bard: one using Python (using IPRE’s Calico and robots) and the other with Processing. Both programming environments could be better by borrowing ideas from the other. And by better, I mean a lower floor, making it easier for newcomers to programming; and a higher ceiling, making the tool useful after CS1. Rather than concentrating exclusively on one tool, I am continuing to attack the problem on both fronts.
This post is focused on making Processing better for introductory courses; Calico is next.
My first attempt is a simple tool called sp5repl, a small layer around Scala and Processing that allows you to write Processing sketches dynamically using an interactive read-eval-loop. The code entered into the Scala REPL is actually compiled, thus it runs at full speed; we get most of the flexibility of Jython and Clojure/Quil with the speed and error checking of Scala. A small example that generates the image below:
sp5repl>fill(196, 128, 64)
sp5repl>ellipse(width/2, height/2, 150, 150)
sp5repl>fill(64, 128, 196)
sp5repl>for (i <- width to 0 by -1) ellipse(random(i), i, i/20, i/20)
What I like most about Keith’s post is that it asks precisely the right questions about how to best use an emerging medium in public outreach and education. Too often we can become fixated on new technology and try to use it as much as possible because it’s new, or because it seems able to fit (albeit often awkwardly) into an existing paradigm. Instead we should be thinking about how these technologies work, how they are changing our social habits, and develop our uses of them appropriately.
Children’s media has been trying to provide “instruction with delight” since we’ve had media content designated specifically for children. The celebrated children’s publisher John Newbery (called the “Father of Children’s Literature”) promised just this combination in A Little Pretty Pocket Book in 1744. But every medium has different properties, so understanding what kinds of delight a medium can afford is crucial to being able to make it educationally effective. Continue reading Making the Most of the Medium: A Response