Archive for Uncategorized

Code as Language: L&T&C Take 2

In 2015 we introduced a computing component into Bard’s Language and Thinking program. We will be presenting a paper about that pilot project at ITiCSE this July.

We revised the curriculum in 2016 after the first experience. We revamped the coding workshop to be taught by Bard student instructors, moved the infrastructure to github, and made it about the idea of code and language. Starting with a free-write, then moving on to a hands-on lesson in HTML & JavaScript, and ending with an optional reflection on code and language. From WEIZENBAUM to POSTMAN to STEIN, students reflected on code as language, code acts, and creativity. We are again revising it this summer for the 2017 incarnation, stay tuned …

Summer Vacation 2015: Part II (Language & Thinking)

This summer I taught a course in the Bard Prison Initiative (BPI) in addition to advising undergraduate research students. I also co-developed a computing component for our Language and Thinking (L&T) program. This post covers the L&T effort, the previous post was about BPI.

Since its inception, the Bard computer science program (i.e., department) has posited that computing is a valuable and integral part of a liberal arts education. Since I have joined the program, I have adopted this mission whole-heartedly — thus, this blog. As a program, we offer a wide variety of introductory computing courses involving: the web, simulation, interactive graphics, robotics, and digital humanities. These courses expose students from many backgrounds to computational thinking, communicating algorithms to computers and people alike in PHP, Logo, Processing and Python.

Last year our college was interested in exposing all of our students to coding & computing. Given this ambition, our program thought long and hard in consultation with others around campus. A new college-wide distribution requirement? A MOOC? Hour-of-Code? Scratch? App-Inventor? Scribbler Robots?
Read more

Summer Vacation 2015: Part I (BPI)

Many wonder what teachers and professors actually do in their free summer months. Days on the beach? Long walks in the woods? Fishing? Crabbing? Well, I did a little of that this summer, but I also had the most extraordinary, and busiest, summer so far in my career.

After teaching computer science to undergraduates at Bard for six years, this summer was a bit of a reawakening. In addition to advising great undergraduate research students via BSRI, which I do most summers, I also taught a course in the Bard Prison Initiative (BPI) and co-developed a computing component for our Language and Thinking program. This post (Part I) covers BPI, and the L&T effort is up next in Part II.
Read more

Automatons and Entertainers

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.

Read more

(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>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)

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

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.)

Read more

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?

Read more

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.

Read more

MOOCS & The Virtues of an Educator (not a Programmer)

Like many, my complaint with the MOOC isn’t the MOOC itself, but the surrounding hype. My complaint is simpler than the eminent devaluation of teaching in terms of personal and public investment thanks to the MOOC marketing (as Bogost has argued and others have provided evidence). My primary complaint with the hype is the hubris.

The MOOC hype grossly underestimates the computational difficulty of teaching.

Read more

Computing is a Liberal Art

“… the computer is being used to program the child. In my vision,
the child programs the computer and in doing so, both acquires a
sense of mastery over a piece of the most modern and powerful
technology and establishes an intimate contact with some of the
deepest ideas from science, from mathematics, and from the art of
intellectual model building”

— Seymour Papert in “Mindstorms: Children, Computers, And Powerful Ideas”

Computing is a Liberal Art is my personal blog on computing, robotics, liberal arts education, and various other things. Why? Students studying the liberal arts and sciences need lucrative, creative career opportunities. The tech industry needs a more diverse, creative work force. Moreover, it is imperative that all citizens have a role in shaping tomorrow’s technology, not just the technologists — assuring all citizens are programming rather than being programmed.

As computation plays a larger role in our professional, personal, and civic lives, thinking and communicating algorithmically has become as important as literacy in any other sense. And although being skilled at a particular computer application is often a prerequisite, it isn’t the whole story. As Papert (a mathematician, computer scientist, and student of Piaget) remarked concerning the potential of computing, “a revolution in ideas that is no more reducible to technologies than physics and molecular biology are reducible to the technological tools used in the laboratories or poetry to the printing press.” Being truly computationally literate means one can begin to think using the symbols and ideas of computation to solve problems or make art in new ways.

Some related takes on computing & the liberal arts: