SS 2008
This semester I'm supervising the current Master Project "T3H" – see here.
Also, I'm giving a class on
Thinking [in] Machines
In philosophy it is a common place that "thinking" is intimately interwoven with language; some people even believe that thinking and the use of language are roughly the same. It is of no surprise then that the ability to read and write "written" language (i.e. literacy) turned out to be one of our core cultural competences.
At a first glance it might seem just a superficial analogy that computer programs also have a textual representation: long strings of characters which often resemble nouns, verbs, or imperatives of "natural" languages. But, soon people deepened this analogy and introduced the idea of "computational thinking": thinking in algorithms, or "Thinking in Machines".
In this seminar, we want to explore this concept, focussing particularly on one of its most advanced instantiations: live coding, or "on-the-fly" programming. The main topics covered are:
- Conceptual analysis. Reading and discussing recent (and less recent) papers about Computational Thinking, Literate Programming, Live Coding, Digerati.
- Technical analysis. Analyzing concepts of programming languages; identifying enabling attributes for interactive and live coding practices.
- Analysis of existing live coding systems: Smalltalk, SuperCollider, Chuck, Impromptu, fluxus et al.
- Identifying limitations and shortcomings of current concepts and systems: expanding the concept of "machine" (post-digital machines, biology); introducing novel ideas of machine interaction, e.g., tangible interfaces.
- Hands-on experience in programming: introduction to programming in Scheme (a Lisp dialect), using the DrScheme IDE (Integrated Development Environment).
Readings:
Jeannette M. Wing, Computational Thinking
Michael Mateas, Procedural Literacy
Christopher Michael Hancock, Real-Time Programming and the Big Ideas of Computational Literacy
Sean McDirmid, Living it up with a Live Programming Language
Jonathan Edwards, Subtext: Uncovering the Simplicity of Programming
Click Nilson, Live Coding Practice
Andrew Sorensen, Andrew R. Brown, An Approach to Musical Live Coding
Links:
Donald E. Knuth, Literate Programming
DrScheme: Homepage
R. K. Dybvig, The Scheme Programming Language
Course Assessments:
Obligatory: Active participation in programming activities with DrScheme
Obligatory: Either one of:
Presentation and written paper on one of the theoretical topics
Implementation of a more sophisticated program in a programming environment of your choice
Obligatory: 80% presence during the semester
