Fostering Play and Rewarding Failure in the Pedagogy of Programming

SPRING 2012: V.08 N.01: CAA Conference Edition 2012

Jason Bernagozzi
Alfred State College, New York.

“Code as Craft” Panel Presentation, Jason Bernagozzi speaking. (Used with permission.)

“Code as Craft” Panel Presentation, Jason Bernagozzi, speaking. (Used with permission.)

As a video and new media artist, I am highly aware that what I know today will change tomorrow. As an educator, I understand that despite the endless pursuit of the new, there is a range of principles from the history of media as a creative form that should be addressed in order to guide students away from mimicking the most common uses of technology. This is in no way an easy task. Digital media is intoxicating and deceptive in how it is used by popular culture, especially in an age where people are willingly participating in the commodification of their own personal identities through social networking. [1] At the same time, in order to become effective makers of media, students have to be engaged with the technical and conceptual realities of how that media has been integrated within the greater consumer culture.  Therein lies the paradox that media artists need to understand the form and function of the medium and transcend its common use, which in turn brings into question some serious issues on how to approach programming in the fine arts in an age where immediacy and automation have increasingly captured the focus of the technological landscape. [2]

Numerous books and articles have been written recently chronicling some of the serious issues surrounding the effectiveness of contemporary fine arts pedagogy. Students seem increasingly more likely to take shortcuts and seem to be focused on content rather than technical skill. Perhaps in reaction to the perceived truth of these observations, many media art programs across the country are teaching students to use consumer-grade media software such as iMovie to streamline the creative process so that students can focus on their ideas without being bogged down with technical issues. While this pedagogical approach may have some merits, I believe that the fast and loose nature of these prosumer applications does not teach the fundamental vocabularies needed to understand and sustain a technical and conceptual evolution of media practice.

A similar attitude towards learning technique can be found within the plastic arts as well. In the race for the new, sculptors do not sculpt, painters do not paint. While this de-structuralist approach within art was and is absolutely necessary to combat the tyranny of modernist essentialism, some have seen the pedagogical struggle behind educating a new generation of artists rising from the over-determination of postmodern theory almost completely dissolving the importance of craft.[3] Students cannot “think outside of the box” because they can’t identify what the box is, how it works and what functions it can possibly serve. In other words, can you render an abstract image without first understanding what the structure of the source is in the first place?

Yet there is no rewind button. New software interfaces seem to be inevitably moving away from the necessity of computer literacy for most people. So where can I begin? I do not believe that I have any specific method or answer, rather I want to propose a series of observations that will hopefully provide a direction for the ever growing dialogue between the problems surrounding professional and consumer technology and creative practice. I believe that now more than ever we should be teaching students to hone their sense of craft throughout their conceptual development so that they are more “maker” and less “user”. Yet maybe by developing a balanced method that takes the realities of current uses of technology into consideration, we can also address the changing ways in which new generations are learning while encouraging them to focus on creating work that is technically sound and historically relevant. [4]

I have found that despite the general difficulty in learning the software, Max/MSP/Jitter in particular has proven to be an effective interface for artists. Max is a graphical programming language, meaning that the process of building the program is modular in nature; the code itself is never seen, boxes representing lines of code are interconnected throughout the workflow or patch. Even though the code is encapsulated within graphical icons, you still have to understand how that particular object works, what arguments and messages it accepts, and how each object can integrate with other objects in the workflow. The program itself is a hybrid between old and new ways of thinking about software in that it still requires research, trail and error and some programming knowledge to run while being approachable enough for a generation of art students who are used to using programs that automate the technical details for them.

Because Max can literally be applied to anything, it becomes difficult to teach in a linear fashion because the workflow and object choices will vary depending on the specific project. Therefore, as I teach my students the basic vocabularies involved in programming, I am also teaching them how to research the parameters of each object and how to look for other objects that are complimentary in their function as it relates to some of the conceptual ideas behind their work. Throughout this process, I try to encourage them to think of failure as a part of figuring out how to let their concept “speak” through the programming language. To promote this idea, my students are given semi-functional Max patches in which a message, attribute or operator is causing the program to not function properly; either something is misspelled, the wrong kind of operator is placed in the workflow, or the value of an argument is making the system shut down.

Patch Problem, 2011, Jason Bernagozzi (Used with permission.)

Patch Problem, 2011, Jason Bernagozzi (Used with permission.)

This lesson forces the student to play with and to try out various modifications based on their research into each object’s reference files in order to get the patch to work. In the process of doing this, students will look at the help file patches, try out various messages and parameters, and see processes that come about through play and failure that they may not have found through a more linear approach.

I believe that in order to effectively teach programming as a creative medium we must first address that there is a preconception that programming requires a lot of non-art related exercises. I believe that introducing students to graphical programming as the first step in their media practice will help solve some of these assumptions by integrating “readymade” or modular applications into the introductory curriculum. Students will, of course, have to learn the readymade applications by learning the basic vocabularies associated with programming and use problem-solving and research to make those modules work correctly. When the patch finally works, they can use it as a building block from which they build a media instrument that they use to create their first art pieces. This is different from borrowing code or patches they find online because, through the process of researching the parameters associated with each object, they have to “look under the hood” and explore what the object can and cannot do, and as a result, they will learn how to customize and improve those modules when building a program for another project.

Shader Example, 2011, Jason Bernagozzi. (Used with permission.)

Shader Example, 2011, Jason Bernagozzi. (Used with permission.)

As students move on to more complex processes, they will have the foundational knowledge to begin incorporating other languages into their workflow. As an example, for a more effective video processing system in Max/MSP/Jitter, it makes sense to work in openGL by embedding shaders within the jit.gl.slab object rather than using multiple objects so that students can route some of the heavy lifting away from the processor and onto the graphics card. If they want to become even more efficient, it makes sense for them to create their own shaders by combining several lines of code from the max shader library into one. Even though the students will not have worked with lines of code before, they can draw upon their skills as researchers to look into the code, see that there is integer, floating integer, vec1, etc., values attributed to various named parameters. Once they upload the shader into the openGL slab, they can reference the code and use the prepend parameter message to figure out through play and failure how the shader works within their media instrument.

Shader Example, 2011, Jason Bernagozzi. (Used with permission.)

Shader Example, 2011, Jason Bernagozzi. (Used with permission.)

In many ways this approach is inspired by early media art pioneers who worked with various custom-made video synthesizers in order to play with the medium in ways that explored the potential of video beyond the most common modes of representation found during that time. [5] The Experimental Television Center, for example, brought together various instruments made by artists, engineers and enthusiasts because at that time the economic and technical difficulty in making such instruments was hard to bear alone. In the spirit of exploration and experimentation, people involved with the ETC worked to create larger video processing and editing systems from which one could pick and choose various instruments to combine. As video came into the digital age, artists found ways to combine the new with the old as a part of a community-based effort leaving notes and programs to include in the overall system from one residency to another. Teaching students to program collaboratively and to research together in this fashion not only places their newfound practice within a historical context; it also promotes the idea of perpetual re-evaluation through community-based dialogue.

My experiments in finding new ways to approach teaching programming to artists hopefully illuminates several key ideas that can be used as part of a sustainable media practice. First, I believe they teach students to be vigilant researchers and to see the process of trial and error in programming as analogous to the repetition of techniques they practice in traditional foundations classes. Secondly, it encourages students to see smaller programs as modular units that can be used to create larger systems, reinforcing a sense of play when they something out “just to see what it does.” This method is also in sync with the project-based pedagogy of the art school where history, technique and concept come together as a unified practice where students don’t have to wait to make the work they came to art school for. Finally, and most importantly, by learning to become artists and researchers within the ever-expanding field of digital media, when it comes time to figuring out new coding languages that go beyond the capabilities of current graphical programming software, they will be prepared with the fundamentals necessary to move on to the next big thing.

References

1. http://www.businessweek.com/magazine/content/10_40/b4197064860826.htm
2. http://www.nytimes.com/2010/11/21/technology/21brain.html?_r=1&pagewanted=all
3.  Juli Carson and Bruce Yonemoto, “Curriculum and Practice in the Age of Post-Studio Art Production,” in Rethinking the Contemporary Art School, ed. Brad Buckley and John Conomos, (Halifax: The Press of Nova Scotia College, 2009), 90.
4. Marc Prensky, “Digital Natives, Digital Immigrants,” in On The Horizon (MCB University Press, Vol. 9 No. 5, October 2001
5. Chris Meigh-Andrews, “A History of Video Art: The Development of Form and Function,” (New York: Berg, 2006). 112-126.