My goals in the course are straightforward; at the end of 15 sessions, you should be able to:
- host a web project that investigates an academic topic of your choosing;
- consider means by which you can present the topic to a public larger than the class;
- use Atom as a development environment for your project;
- create and manipulate Leaflet maps;
- manage GeoJSON data;
- use Git to keep track of your project; and
- think about your literary study as a process that changes over time.
What are the prerequisites?
If you’re on this website, you’ve got most of the prerequisites covered, as it implies that you have a web browser and the desire to learn.
I believe that anyone can learn to program, but it helps if you are optimistic and fond of puzzles. Programming is, like many intellectual pursuits, a method of creatively solving problems. Like with any puzzle, when you program, you use your mind to realize a goal within a certain set of limitations created ahead of time, be they the shapes of the puzzle pieces of the grammar of the programming language.
The path to your goal can be (and often is) convoluted and unexpected, but that means that reaching the end is that much more satisfying.
What if I’m not an English major?
This course is for any student, really. But I was an English major, and I am teaching this in an English department, so I prepare the materials with a specific audience in mind. After all, both mini-projects deal with works of English literature, Geoffrey Chaucer’s General Prologue and Langston Hughes’s “Could Be.”
My own practice reveals the need I serve with this course. Most programming books I have read fall into one of two categories; they are either introductions to computer science that use a specific programming language for the introduction (Haverbeke, Allen Downey’s Think Python, or even the mindbendingly great The Little Schemer), or they are introductions to a specific programming language aimed at people who already know how to program (David Black’s The Well-Grounded Rubyist). For my students, the former seem too detailed and get abstract too quickly, while the latter move too quickly (and get abstract almost instantly).
So just as a university might offer different statistics courses depending on the students’ interests, including a sort of “Stat for people who aren’t scientists,” I propose a course that assumes very little advance knowledge, like the first category of books, but also tries to push process and practice over fundamental concepts in computer science. More than anything, I aim to teach by example and by remembering who my students are.
And that element of sharing is important in this course. A large part of the excitement of engaging in a creative process is sharing the results of that process with others. And progamming is, believe it or not, a very creative process.
Why not Python or R?
Atom!?! But Vim is the one true editor!
- Atom is available (for free) for Windows, Mac, and Linux, and it looks more or less the same on all of the operating systems. I don’t want to be platform specific when teaching, because I’m already relying on the students’ having some access to some/any computer. I’d rather not rely on it being a specific kind of computer.
- Atom has nice Git and GitHub support preinstalled. Part of the skills taught in this course include thinking about a creative and intellectual process that includes versioning, so Git-in-the-box is a great feature.
If you would like to take this course using Vim and Git from the command line, that is entirely up to you. Of course, if you’re already using Vim, then you might be too advanced for this course, anyway.
There’s a lot of “how to make a website” stuff here, but not a lot of analysis
Teaching people how to code is just a Silicon Valley ploy to drive down developer wages
Of course. However, the goal of this course is not to teach students how to become coders so that they can dilute the programmer pool in California. Instead, I am teaching process- and project-based creative thinking when it comes to literary study through programming. If students are inspired to continue learning to program as a result of this course, then they can consider that sector of the job market down the line.
That said, each instance of bias coming out of Silicon Valley reveals how much they need to hire more people with humanities training. As a result, learning to code will help a humanist get hired in Silicon Valley—but probably not as a developer. Instead, the company will likely want to leverage the student’s humanities skills. In such a way, their familiarity with programming is a bonus for the company’s plans to make the world a better place. English majors have roles in Silicon Valley, but it won’t be among the engineers.
But isn’t digital humanities a neoliberal scheme?
Please see the multiple volumes of Debates in the Digital Humanities. However, it’s likely that even those books won’t convince you otherwise.