Computational Methods in the Humanities

Course Description

Contents

Assignments

In addition to project tasks, students will complete coding assignments, conceptual response papers (often as in-class assignments), and participate in collaborative discussion and troubleshooting on a Canvas forum. Students must observe file-naming conventions for all uploaded homework and project files

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 — not only using AI / LLM tools, but also published, more authoritative references — 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.

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.

Standing Assignments

Coding Forums

Despite the image of the programmer as a solitary soul bent over a glowing screen in a cubicle, programming is, in reality, a social activity, and real programmers make liberal use of discussion forums to ask and answer questions. Furthermore, despite the classroom tradition where students submit homework to a professor, who grades and returns it, so that nobody else ever sees it, that’s not the way coding works in the real world and it’s not the model in this course. Like real developers, we ask and answer questions in the open. This course component has two principal goals: 1) it provides a forum to ask and answer questions, and 2) it helps course participants become familiar with an industry-standard discussion platform.

Participation in the discussion beyond the minimum requirement is strongly encouraged. Don’t be shy about asking questions in this forum; your instructors do this all the time in their own work, and you can’t learn to code if you don’t learn how to participate in a coding community. And don’t be shy about answering questions, which is both good citizenship and personally satisfying. Much of the classroom time will be devoted to teacher-centered instruction, and the discussion framework offers an opportunity to interact with classmates to cultivate a community in which peers provide insight, solutions, and general discussion. This discussion forum should be the first resource for questions, comments, etc.

As a bare minimum, each student is required to post at least one question, resource, or tip per thematic unit. The post should be thoughtful, clear, and (when helpful) include code bloacks and /or links to Github pages. The poster is required to engage with follow-up both from instructors and fellow students: failure to do so will result in a zero for the assignment.

Project Updates

Periodically throughout the semester students will be required to submit project updates. The specifics of these check-in assignments will vary, but all count toward the total project grade for the semester. Even though the work for these assignmens will generally be collaborative, students must all submit a response for credit.

Examinations

Most thematic units are culminate in a "test," which is really more like a homework assignment (since the tests are take-home, open-book, and can be collaborative), except that they are meant to assess your progress and identify areas where you need to review. 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.

Grading

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.

Relative weight of each requirement

Coding assignments 25%
Tests (drop lowest) 15%
Participation 20%
Project grade 40%

Attendance

Showing up for class is especially important for this course: you will receive periodic attendance grades throughout the semester as part of your participation grade.

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 (license key posted on Canvas). 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.

Enrollment Information

  • General education requirement: Quantitative and formal reasoning
  • Cross-listings:
    • CLASS 1050-1050 (16898)
    • ENGLIT 1600-1060 (24787)
    • GER 1550-1060 (16897)
    • HIST 1030-1060 (17118)
    • INFSCI 0013-1050 (23950)
    • RELGST 1780-1060 (16895)
    • SLAV 1050-1060 (16993)
    • SLAV 2050-1210 (32325)

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.