(De-)Coding the Drone: A New Course

Drones: Literacy && Autonomy && Privacy

Drones have captured the public attention and discourse in a surprising way. And although the current left-right political coalition against drones in the U.S. is rare, this is not what surprises me the most. The most surprising aspect to me is the mismatch between the public’s technological perceptions and expectations of drones compared with their technological reality. Computing, Algorithms, and AI are to blame for lots of things: putting chess masters out of business, crashing satellites, overdosing cancer patients, electronic trading trouble, reading our email, judging our credit. But targeted assassination? Are the algorithms really to blame here?
Read more

Making Robots Accessible with Calico

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!

Read more

sp5repl: A Read-Eval-Processing Loop with Scala

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>size(250, 250)
sp5repl>background(24)
sp5repl>smooth()
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)

screen4
Read more

Making the Most of the Medium: A Response

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.

Frontispiece to A Pretty Little Pocket Book

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.
Read more

Doubling Down on Experimental Public Education

If we were creating Sesame Street from scratch in 2012 would it use Scratch? A Scratch-based Facebook? A Pre-school-MOOC? If we wanted to create a large publicly-funded 21st century education equalizer — what would that look like?


At Bard we like to experiment, particularly with education. Bard runs various public high school early colleges throughout the country and is involved in higher education throughout the world. Later this week, Bard’s Center for Curatorial Studies (the program that gets the CS acronym on campus, computer science is shortened to CMSC) is hosting a conference on experimental education. Maria Sachiko Cecire, who will write a follow-up to this post, will speak at this conference about Bard’s new Experimental Humanities concentration she directs, and if distilled to a single quote:

“…provides students with the historical context, theoretical background, and analytical and technical skills needed to engage productively with new forms of humanistic inquiry in our digital age”

The concentration emphasizes the need to think critically in many modes at once, e.g. text, film, and digital media. As my first blog post indicates, my participation stems from an interest in promoting digital literacy and reforming our “read-only” digital culture, as Larry Lessig might put it. Ultimately, we hope literacy in experimental media can push the boundary in terms of thinking and education.

Read more