Learnable Processing Programming: Part One

Brett Victor recently posted an intriguing essay entitled Learnable Programming. I’ve been a fan of many of his essays (e.g., [1] and [2]). Victor is quite a pioneer of what we might refer to as design-based computing pedagogy as opposed to a programming or assessment driven pedagogy. And this essay surely lives up to his previous work; I think I could write fifty blog posts reacting to this single essay. T-49 …

Pedagogical Processing

I use Processing in my introductory computing class at Bard. This semester is my third iteration of the class. I chose Processing for a variety of reasons, some of which overlap:

  • Processing allows artists and designers to write real code with relatively little pain.
  • Processing balances developing powerful programmed artifacts with a relatively simple programming interface.
  • Processing has a welcoming, productive open-source community.
  • A ton of libraries and examples help students write relevant, meaningful sketches (e.g. with video, images, sounds, etc.)

Continue reading Learnable Processing Programming: Part One

On Computational Teaching

Why aren’t computer scientists the best teachers?

(Or, why our students aren’t robots.)

“Science is knowledge which we understand so well that we can teach it to a computer; and if we don’t fully understand something, it is an art to deal with it. Since the notion of an algorithm or a computer program provides us with an extremely useful test for the depth of our knowledge about any given subject, the process of going from an art to a science means that we learn how to automate something.”
—Computer Programming as an Art, Donald Knuth, CACM, December 1974.

Why aren’t computer scientists better teachers? Or rather, why aren’t computer scientists the best teachers? We are very good — pros, in fact — at explaining things in absolute detail to things that know absolutely nothing. If we can explain quicksort to a RISC machine, we should surely be able to teach binary-search to teenagers, right?

But of course we don’t teach our computers. And we don’t program our students. Or do we?

Continue reading On Computational Teaching

The Algorithm Made Me Do it!

Last Thursday, one of our Live Arts Bard artists-in-residence, Annie Dorsen, gave us a behind-the-scenes view of her latest production: False Peach. The performance explores the notion of consciousness, agency, and language through an algorithmic production of Hamlet. Although still in its infancy, the play will use automated dialogue and lighting to recreate the famous play in an experimental fashion. I had the chance to attend her presentation of her piece Hello, Hi There at AAAI-2012 in Toronto this past summer. Hello, Hi There will be performed at Bard in November.

The moral agency of robots, or software-bots, has been a hot topic in both philosophy and robotics lately. And from my perspective, the most interesting part of Annie’s work, is this notion of agency or control. Who is responsible for the software’s actions? — whether it be drones or drama. In some ways, the creators of the play relinquish control of the production to the algorithms. They hit start at the beginning of the performance, and magic happens. Every night is a different, unpredictable performance. Random number generators, equations, and conditionals guide and mis-guide the narrative. But in an important sense, this type of production is one of the most controlled plays ever. Everything is predetermined, and nothing is left to human improvisation. There is no pesky spotlight operator to miss her cue or actors to make a slightly late entrance or improvise the delivery of a line. And not only is it deterministic and in some ways eternal, but that stems from a human encoding this knowledge in a computer program. It isn’t eternal because it’s a machine, it’s eternal because the play is formally encoded.

I asked Annie a question relating to this notion of control and she had a great response about this work truly investigating the notion of collaboration. Collaboration between humans, and collaboration with machines. By formalizing the dramatic decisions in code, a very systematic exploration of collaboration and decision-making is possible. A very exciting approach to exploring agency, and I look forward to the final production next year.

Robots Make CS1 Real.

My colleague in the computer science program at Bard, Sven Anderson, is teaching our introductory computing class. The course teaches object-oriented programming using the IPRE robot platform and python. And although robots are error-prone with their noisy sensors and motors, eat batteries, and make it difficult to grade student programs, few pedagogical approaches to CS1 can provoke the following reaction:

Photo courtesy of Sven Anderson.

Truth Values: What Mathematics Can Teach Us About the CS Gender Imbalance

Tonight we took a group of Bard students to Vassar to see the play Truth Values by Gioia De Cari. The one-woman-show depicts her “Romp Through M.I.T.’s Male Math Maze.” It was a funny, touching account of the strange world of mathematics research and graduate education — first encounters with the research kind. The play made me reflect on my own experience in graduate school managing incoming expectations with sober, if foreign, realities.

Truth Values also pointed to a few lessons we computer scientists might heed. I would like to highlight a stark contrast between the reality of computer science education and research and that of mathematics. The gender imbalance in computer science is awful, at both the undergraduate and graduate levels. This makes it hard to tease out exactly why this imbalance exists. The story with mathematics education is different. And that just might provide computing educators some insight.

Continue reading Truth Values: What Mathematics Can Teach Us About the CS Gender Imbalance