Computational Methods in the Humanities

Course Description

Contents

Content Overview

Computational Methods in the Humanities is one of the very few courses offered at the University of Pittsburgh that is applies quantitative and formal reasoning to the interests and needs of students in the humanities. To this end, it combines lecture, discussion, and practical programming exercises.

There are no prerequisites: this course assumes that students have zero prior coding experience.

This course will introduce students to the role that computational methods can play in primary research and scholarship in the humanities, using as a framework eXtensible Markup Language (XML) and related technologies. XML has excellent properties for document modeling, which makes it singularly useful for humanities computing, and it is not an accident that many Digital Humanities projects today are built around XML and related technologies. The related technologies addressed in the course include a powerful declarative programming language (XSLT), a formal model for the navigation of XML documents (XPath) used by XSLT, a metalanguage for the formal modeling of documents (Relax NG), a constraint modeling language (ISO Schematron), a graphic description language (SVG), and others. If this description does not make sense now, it will by the time you finish the course!

Upon successful completion of this course students will be able to 1) identify opportunities for the application of computer technology to authentic research problems in the humanities; 2) analyze the structure of texts in the humanities and develop formal representations of those structures; 3) write original computer programs, using languages in broad use in the Digital Humanities and document processing communities, to conduct research on those texts; and 4) operate comfortably with industry-standard development resources for code development, project management, and discussion.

An Honors course provides a research-oriented, graduate-level educational opportunity, and students who complete this course have frequently commented that it was simultaneously one of the most demanding and one of the most rewarding experiences of their academic careers. That experience requires a commitment, appropriate for an Honors course, to attend all course meetings and complete all homework conscientiously and in a timely fashion. Given that commitment on your part, the instructors will be eager to work with you to help you finish the course having acquired skills that will enable you to use computational methods to conduct professional-level original research in the humanities.

Required Texts and Materials

Students are required to have a laptop (not a tablet) in order to access coding software at home and/or during project meetings. Pitt IT offers Chromebooks for students to borrow for free. Students can access Windows-based software on University Chromebooks and desktop machines in computing labs through the Virtual Computing Lab.

The principal (and required) textbook is Michael Kay, XSLT 2.0 and XPath 2.0 programmer’s reference, 4th edition, Indianapolis: Wiley/Wrox, 2008, ISBN-10: 0470192747. ISBN-13: 978-0470192740. Earlier editions are not acceptable. Most students will access the free, digital version of the textbook through the Pitt library system. If you wish to have access to a hard copy (which you are not required to buy), this book is available from Amazon (do not buy the Kindle edition, which is difficult to use because of poor indexing) and other on-line vendors. Other required materials are available at no cost on the Internet. All of these materials, including the Kay book, are intended primarily for reference, which is to say that students should anticipate using them frequently and intensively to research solutions to particular problems, but they are not expected to read them cover to cover.

This course will use the <oXygen/> XML Editor and IDE (integrated development environment), which is available in all CSSD computing labs (including the Virtual Computing Lab) through a site license purchased by the University. The site license also permits students enrolled in this course (and only those students) to install a copy of the software on their personal computers (Windows, Mac, and Linux) for use at home (for course-related purposes only). The software can be downloaded from https://www.oxygenxml.com and the license code to register your home copy is available as an announcement inside Canvas. We will notify you about other course software (all free) as the need arises.

Projects

The centerpiece of this course, and single most important grade, are student-driven, team research projects. Students are at liberty to select any topic of interest to them, so long as (a) it has research value within what we broadly consider "the humanities", and (b) the project takes advantage of many of the digital methods covered in this course. For additional guidelines, and examples of past projects, see this webpage.

Assignments

In addition to project tasks, course activities include reading, coding, and response paper assignments, as well as participation in formal and informal online discussion. Students must complete at least 90% of each homework component (programming assignments, response papers, project tasks, participation in online activities) on time in order to pass the course. For students who meet the 90% requirement, these assignments, taken together, are worth 25% of the course grade. Students will need to observe file-naming conventions for all uploaded homework and project files; please ask the instructors if anything is unclear.

Coding Tasks

Coding assignments in this course are a technique for learning and studying, and not—as in many other courses—a way of testing whether you’ve already learned something covered in class or in an assigned reading. Because a crucial skill in Digital Humanities development is the ability to look up how to do something you don’t already know how to do, these assignments will frequently challenge you to write code that you do not yet know how to write. Students who are used to the homework-as-test model of course design may find this disconcerting (But they haven’t told us how to do this!), but professional developers have to look things up all the time, and learning how to look things up is a critical pedagogical goal of this course. There may be times when you don’t get the result you want, and in those cases you can still get full credit for the assignment if you’ve made a serious attempt and if you submit, along with your code, a description of what you tried, the results you expected, the results you got, and what you think went wrong. Getting stuck is part of the learning process and the instructors will be happy to help unstick you as long as you’ve described your understanding of the problem and your attempts to resolve it on your own. To help you develop the habit of carefully reading, and then explaining, your code, you must submit at least one relevant, thoughtful comment with each coding assignment. Note: When submitting commentary with your homework assignment, refrain from using any Canvas-specific commenting feature; instead, you should write your message directly in your homework file as a formal comment (we’ll show you how). This is the only way to guarantee that the instructors will be able to see it.

The instructors will post solutions to and discussion of programming assignments on this website after the assignment deadline. The instructors will read and evaluate all student homework, and will post an assessment on Canvas, and we will write back to you with individual comments only if your specific submission raises an issue that we don’t address in our general posted solution. If we don’t return your assignment, that means that we have nothing to add to our posted solution, which you nonetheless need to read, and should you have any specific questions after you’ve done that, please ask the instructors.

Coding assignments are assessed as check plus, check, and check minus. Don’t think of these as grades, since they all receive full credit; they are feedback, for learning purposes, about how well you engaged with the assignment. If you have not engaged with the assignment adequately (whether that means solving the tasks or discussing the coding impediments you encountered and how you dealt with them), we will ask you to meet with us to review the issues and then complete a followup (redo) task in order to receive credit. Submissions that are blank, inappropriately short, or otherwise not reflective of reasonable time or effort being spent on the assignment will be marked as not submitted. Because we post solutions to coding assignments and review them in class and because homework assignments are sequenced, and therefore time-sensitive, we cannot accept late homework submissions.

This course draws on a wide variety of online resources for its content, which means that many coding assignment descriptions will be hosted on Obdurodon, but some will be posted on Bactriana or Canvas. However, links to all assignments will be posted on the syllabus: students should not wait for them to be posted as Canvas assignments to get started, even though Canvas is where they will ultimately be submitted.

Response Papers

Students will be asked to submit 300- to 400-word response papers to readings or as evaluations of Digital Humanities web sites, projects, and resources. Your response does not have to be long, but it must show a thoughtful intellectual engagement with the material. For example, don’t summarize an article (which you could do just by skimming or reading the first paragraph) and don’t just praise or condemn a web site without going into specifics about why some component is or is not well designed and suggesting specific ways it could be improved. Good response papers show thought and attention, and may respond to a reading or site in general, or to a detail of specific interest. Some sites are significant for their design and user experience, others for their research methodology, and response papers should engage with the aspects that are most significant to the project. In some cases the syllabus will specify the focus of the response papers for a particular assignment. Response papers are also assessed as check plus, check, and check minus, all of which earn full credit, and your instructors will return them with individualized feedback.

Standing Assignments

Students are expected to consistently engage with each others projects throughout the semester, and also to code and troubleshoot "in the open." To this end, starting in the second week, each project team is expected to post a weekly update on their Github repo page; each student must individually comment on another project team's update at least once per month; and all students are expected to consistently engage on the Slack troubleshooting and coding channel. On these standing assignments, see this page for more details.)

Examinations

There are seven coding tests, of which only the best five are incorporated into the course grade (15%). There are no make-up tests; if you miss a test, it is effectively excused, since it just becomes one of the two that don’t count.

All test are assigned over a weekend. They will be open-book/open-notes, but they must be completed individually, which means that although you can look things up (and you are encouraged to do so, as needed, much as professional developers do), you are not permitted to request or receive help from any other persons.

There is no final examination.

Summary of Deliverable Schedule

Below is a table summarizing all the assignments, exams, posts, etc. that are expected of you throughout the semester. Please refer to the above description (and standing assignment explanation) for more detail.

Assignment Brief Summary How Often/Due Date Location
Semester-Long Project Completed in a small group throughout the semester. Groups meet ~1x/week; complete weekly 'checkpoints' (see below); final submission and presentation due at end of semester. n/a
Exams Take-home, open-book (closed-classmate) subject exams. Seven throughout semester (see syllabus); done over the weekend. Lowest 2 dropped. Canvas
Team Project Updates Update on project progress. ~1x/week,; only 1 per team Github
Team Project Update Discussions Interact/reply to another groups' updates. ~1x/month or more; done individually Github
Response Papers 300-400 word responses to readings, past projects, etc. Varies: see syllabus but ~1-2/week Canvas
Coding Assignments Coding assignments on the current unit. Varies: see syllabus, but ~1-2/week Canvas
Slack Posts Actively posting in Slack channel (coding questions, answer questions, etc.) no set amount, just being consistently involved in the Slack. Slack

Grading

Relative weight of each requirement

Homework assignments 25%
Tests (best five) 15%
Standing assignments 20%
Project grade 40%

Attendance

Although you will not receive an attendance grade, showing up for class is especially important for this course: students who miss more than four class sessions will receive a failing grae.

The material in this course is inherently challenging, but grading policies are designed to facilitate learning and reward effort: full credit is awarded for coding assignments for which students make an honest effort (receiving at least a check minus); "test" may seem like an intimidating grade category, but is proportionally the least emphasized grading category, and we drop the two lowest grades; and feedback is offered very frequently in the standing assignment and project catetories, offering ample opportunity for improvement.

Enrollment Information

Students may enroll under any of the cross-listed rubrics and both undergraduate and graduate students are welcome (graduate students should enroll in Slav 2050, which is the same course, but the 2000 number means that graduate students will earn graduate credit). Whether the course satisfies requirements for a departmental major is up to the individual departments, and interested students should inquire about this with their major advisors. The course carries a University Honors College (UHC) designation; for information about enrolling in UHC courses, see https://www.frederickhonors.pitt.edu/academics/courses.