2012–2013 DH Fellowship Rotation
Projects Director: Sean Takats
During the winter term of 2013, the DH Fellows worked closely with Fred Gibbs and Sean Takats on two projects:
Our first task was to learn rudimentary Python scripts through the tutorials on the Programming Historian 2 website, and then to revise the lengthy lessons into smaller, accessible tutorials that only required short blocks of time to complete. Our revised lessons will be available later in 2013 when the entire site is updated.
Using the Python language that we learned, we designed new scripts and tutorials that access Zotero libraries with the Zotero API. Those lessons will also be available through the Programming Historian site after the update. Although the lessons provide only basic functions, they are a starting point from which to build more robust programs.
DH Fellows on Research
Although I had some programming experience before I came to the center, Python was completely new to me; I learned quickly, however, that any previous encounters with the grammatical and syntactical structures of programming languages and scripts makes learning a new vocabulary and particular structures of Python much easier. Even if I couldn’t write a script from scratch, I could figure out how the examples were working. In the end, writing Python programs is not as complicated as one might assume at first glance, and a little time spent with the language and some good examples should demonstrate enough basics to begin experimenting.
In recent years, historians who use digital tools in their research have argued that all historians would benefit from some knowledge of programming languages and the ability to write simple programs to enhance research methods. The first Programming Historian site was released in 2007 by Bill Turkel and Alan MacEachern. The current project builds on the first and updates the samples used in the lessons. The DH Fellows at GMU have a unique opportunity to begin learning programming languages early in their careers, and to integrate those skills into their history research while they are still developing a methodology. Unlike established scholars, who might have trouble grafting new tools onto existing workflows, graduate students are still learning and shaping their approaches.
One of the most important aspects of our time in Research Projects was that we were able to use our new skills to envision and create new content to help other historians learn. In fact, one of the programs that accesses the Zotero API might provide a way to batch edit Zotero items, a feature that is not present in the browser plugin or standalone program. For the team at RRCHNM, research is about learning new skills, helping others learn, and solving problems.
Amanda Morton (2012)
I will admit to knowing very little about programming before this rotation, and I would definitely not call myself an expert in Python even now. I do think, however, that the experience of editing and developing tutorials on uses of this programming language geared toward historians was incredibly valuable. I learned more about Python, text editors, and WordPress than I ever would have on my own, and I think that our contribution to the project improved the readability of the lessons and introduced some valuable first steps to using Python with the Zotero API.
While I might not use these Python lessons in my own research, there is definite value in understanding the terminology and logic behind programming languages. Additionally, because I was responsible for editing and reformatting the set of introductory lessons for the Programming Historian, I had to take a kind of crash course in the construction of effective introductory tutorials. There is most assuredly an art to making the first page of a tutorial that doesn’t make your audience scoff or run for the hills, as I discovered in my own efforts to find a resource that explained the basics of Python in a slightly less complicated way than the original introductory lesson on the Programming Historian site. I’m sure my effort is imperfect, but I hope it adds something to the set of lessons as a whole.
I don’t think that historians need to be master programmers to do good digital work. I do, however, believe that some familiarity with the potential uses of programming languages like Python would be incredibly beneficial.
Ben Hurwitz (2012)
I came to this rotation with no programming experience. I had heard of Python but I had no idea of what it was used for or what a ‘high-level’ programming language meant. Needless to say, the introduction to this project was intimidating, but Fred Gibbs was great in assuring us that we would quickly begin to understand the patterns and functionalities of the language.
Of all the projects we worked on this semester, the Programming Historian and the Zotero API gave the DH fellows a chance to work with each other (and only each other) closely on some very technical issues. This was a great experience which allowed each of us to contribute according to our abilities. Spencer tackled much of the trickier code problems, Amanda was responsible for much of the WordPress styling, and I was responsible for much of the lesson writing – though of course we shared in all of these duties.
Because the audience for the Programming Historian includes people who, like myself, have little or no programming experience, I did not feel out of place on this project. The original lessons were at times very difficult for inexperienced users to follow, and they included ambitious assumptions about what the average historian is able to accomplish on his/her computer. As a member of the target audience, I could spot issues, go to the others for help, and then create instructions for troubleshooting those issues. Thus lesson writing was a learning exercise as well as a teaching exercise.
The other great thing about this project was that we were able to improve the site in important ways over a very short time. When we left the project, we left behind a set of redesigned, user-friendly tutorials, organized in a much more practical format. We were even able to add new content through our lesson on using the Zotero API.