An Art History Major Teaching Programming, Part 1

This is the first of a three-part series about how the techniques I learned studying Art History have influenced the ways I teach Programming at UNC-Chapel Hill’s iSchool.

Part one: Code is Cultural

President Obama recently came under criticism for disparaging art history majors. He made the comment in the context of extolling the virtues of technical training for those who choose not to go to a four-year college. I took it as a challenge of sorts: to demonstrate my ‘usefulness,’ and that of my Art History degree.  I’ll note from the outset that my thoughts on this subject are heavily influenced by Paul Graham, who wrote persuasively on this topic over a decade ago. My experiences in art history, as a photographer (not a painter like Graham), and as a teacher together provide some unique insights that I’d like to share.

Studying Culture Alongside Technique

Art history taught me how to study amazing technical feats as products of more than just the hand that made them. I studied the Dutch Golden Age extensively, an era that produced some of the most intricate and technical oil paintings the world has seen. There artists were products of a culture that valued clarity and simplicity of representation. This culture not only drove their interest in producing such works, but also made it possible to make a living doing so1. The techniques these artists employed were indeed intricate, but an understanding of the wider cultural context in which they operated is essential to even begin to interpret their work.

David Bailly portrait with vanitas objects

To begin to understand a painting like this, one must study both the techniques the artist used and the culture that gives meaning to the symbols he employs.
Painting by David Bailly, 1651.

The same can be said of programming. Computer code can be as intricate and technically advanced as any painting. It can also be just as inscrutable without the proper context. This has drastic implications for teaching it successfully, especially to groups who have not been exposed to it from a young age.

Teaching with Cultural Immersion

The best art history class I ever took was about Dutch art, taught on-site in museums and cathedrals in Belgium and the Netherlands. This process of cultural immersion is too-seldom replicated in programming courses. Yet it’s much easier to do with programming than with art history- the culture in question is still operating in the present! Later on in this series I’ll describe how Meetups and Hackathons are the perfect cultural immersion tool for teaching programming, especially to those with relatively little experience.

From Personal Experience to Perspicuity

The field of art history was at one time captivated by descriptions of subjective personal experience. It has since moved on to a broader view of what art is. I believe effectively teaching programming requires doing the same. It’s important to move beyond personal preferences in programming language, paradigm, or framework and equip students to understand why communities of coders have developed these technologies to accomplish diverse goals. By providing a cultural context around Python, the skills I’m teaching my students in that language will translate into a perspicuous conception of the basics of programming languages in general, helping them learn new technologies as they encounter them.

Looking ahead to Part Two: The cultural immersion required for teaching code as a cultural product can’t happen effectively in the classroom alone. In the second part of this series, I’ll talk about how Open Source is similar to an Independent Salon, allowing programmers direct access to the public and other programmers without any kind of mediating group. This gives instructors an invaluable tool for introducing students to the communities surrounding code.


  1. For more on Dutch art in the 17th century, Svetlana Alpers’ The Art of Describing is an excellent and thorough introduction.