• Office Hours:
    • Benedict’s office hours are Tuesday 3-4pm and Wednesday 2-3pm in AKW 202.
    • Jacob’s office hours are Tuesday and Wednesday from 4-5pm in the Digital Humanities Lab, as well as by appointment.
    • Zach’s office hours are Friday 4-6pm in the Computer Graphics Lab on the fourth floor of AKW.
    • Justin’s office hours are Thursday and Friday 8-9am in the Computer Graphics Lab on the fourth floor of AKW.

Course Description

Welcome to CS 276: Introduction to Web Applications for the Digital Humanities and CS 376: Advanced Web Application Development in the Digital Humanities. The course looks at a wide range of applications of computing as an analysis tool in the humanities, including literature, history of art, archaeology, and music. On the technical side, we will cover web application design, including JavaScript, HTML, SQL database design, and the Node.js and Vue web application frameworks.

CS 276 is designed for a wide range of students. Undergraduates from all fields and humanities graduate students who are interested in digital humanities projects need only minimal programming experience. You should know what a variable, a loop, and a function are in some programming language; it doesn’t matter which. CS50, Yale’s CS 112, or equivalent are more than sufficient. There are no formal prerequisites. Yale humanities graduate students with an interest in digital humanities are encouraged to join the class and may obtain credit with permission from their DGS.

CS 376 is designed for CS majors interested in learning web development and its applications to digital humanities. You will complete additional sections of each programming assignment and will contribute significantly more development effort and/or algorithmic components to your group project commensurate with your experience. In the process, you will learn to write larger, more vaguely specified programs than in introductory CS classes, and to use and navigate online documentation for new languages and libraries. A class on data structures (i.e. CS 223) is a prerequisite for CS 376.

Coursework will include three or four individual programming assignments and a large group project (a variety of projects will be available for you group to pick from, but we encourage you to propose your own) involving a digital humanities web application; and active class participation. You will also be expected to read online course notes, tutorials, and digital humanities articles prior to class. In return, class time will mostly be devoted to “active learning” where you will discuss readings and projects and work together on programming exercises and problem sets. Course staff will circulate to help. Some classes will also feature guest talks from humanities faculty on their research and potential projects. Graduate students enrolled in the course will also present their areas of research and a potential related project. Mid-semester, you will form groups of 3-4 students and select projects to work on; most of the second half of the semester will be devoted to working on these projects. Class attendance is required.

Meeting Times

  • Yale: TTh 1:00-2:15 for all students. Thu 2:30-3:20 section for CS 276 students only for additional programming instruction and practice.

You should consider taking this class if:

  • You are interested in learning more about the digital humanities
  • You are considering majoring in Computing and the Arts or Computer Science and want to “test the waters”
  • You are a humanities student interested in incorporating computing into your own work, or a computer scientist interested in digital humanities and cultural heritage applications
  • You are interested in web application development on group development projects, whether or not you are a CS major
  • You’ve completed the CS introductory sequence and would like to improve your programming skills and self-sufficiency
  • You want to have fun!


Please join the Piazza message board. Most announcements will be made via Piazza rather than on the website. They will never be made via Canvas.