Skip to Main Content

Digital Pedagogy - A Guide for Librarians, Faculty, and Students

This guide is meant to inform the user about Digital Pedagogy. It includes information on educational theory, a collection of case studies, and resources relevant to the study of digital pedagogy.

Programming with Humanisits

Teaching Programming to Humanities Students


In the chapter, “Programming with Humanists,” Stephen Ramsay argues for teaching programming in the humanities on utilitarian grounds. The author has taught a class in programming since 2002, at the University of Virginia, training students in a digital media program, describing the process as a synergy between technical and more conventionally humanities focused coursework. For this particular course, he outlined the need for relevant technologies such as:

  • UNIX
  • XML
  • programming
  • web design
  • knowledge of relational databases


specifically for humanities students.


When the author took a professorship at the University of Georgia, he very quickly encountered graduate students that also wanted to develop these skills. Some had taken computer programming classes, and felt that they didn’t get anything from them because the examples were irrelevant to their humanities driven questions. For Ramsay, this set the scene for the development of a two semester course teaching digital tools and methods to humanities students.The emphasis of the course was the manipulation of textual data.


Like authors such as Rockwell, Sinclair, and others, Ramsay states that it is better to teach concepts rather than skills to students. The exercises that were most impactful on students, and referred to as most effective, included problem sets, effectually, problem based learning. The exercises were done in an open book setting, and as students could work with peers, consisted of collaborative learning. The author let Donald Knuth’s statement guide him, in terms of his pedagogical approach:


    “Let us change our traditional attitude to the construction of programs: Instead of

    Imagining that our main task is to instruct a computer what to do, let us concentrate rather

    On explaining to human beings what we want a computer to do.”


While teaching this course, the instructor stated that it helped to avoid setting a rigid schedule, instead, trying to follow student interest as much as possible, creating or explaining projects that are actually relevant to the students’ interests. In addition to being hands on, the activities were complemented by theory (roughly every third class), and again, Ramsay customized the reading list according to student interest as much as possible. Ramsay argues that it is important to teach digital humanists programming in addition to relational databases, XSLT, and UNIX, because it helps them to gain knowledge in the area of “computational thinking.” He also argues that if humanities students learn to think in the context of sophisticated computational tools, computational thinking can also be called humanistic thinking.

Additional Resources - Stephen Ramsey