1. Characterize exploratory programming(existing style in use by others)
Exploration of landscape vs. exploitation of existing knowledge base
Both exploration/exploitation needed; beginning/intermediate students often only learn the latter
2. Alas
3. Relationship to creative computing
Journal pub 1974-75(?)
Alan Kay(smalltalk), Seymour Papert(Logo), J Kemeney & T Kurtz(BASIC)
BASIC at Dartmouth as broad curricular effort across programs
4. Relationship to programming as inquiry
D Englebart, 1962: computers as augmentation of human intellect
Improved us of computing leads to better inquiry - e.g. distant reading and large scale visualizations in DH projects
Educational work often involves using small, manageable datasets
Interesting to martial CAD as an example of augmentation rather than drafting tool
In what ways are CC & P@I the same thing?
C Hartman & generated poetry
Critical Code Studies
Something missing in here about political content of the rhetoric of self-empowerment
5. How to teach exploratory programming
Teach in more than one language, to minimize understanding of syntax expertise as skill/knowledge acquisition(cf teaching blocks/lambdas in Python for use in Ruby)
E.g. type systems or iteration may have different syntax, but you pick up their underlying concepts regardless
Work across media - demonstrate applicability of techniques to both image, audio, animation, text
Teach both analysis('inquiry') and'creative' work
At the very beginning:
Start with simple but extensible program modification
Nick Montfort (MIT)