Design + Programming Languages + Shakespeare

The goal of this project is to create a tool that allows people to explore Shakespeare’s texts. Potential users of this tool include theatre professionals (such as actors, directors, and stage managers) and digital humanists (researchers who are interested in exploring the texts). 

To create the tool, we will need to develop new ideas for user-interaction and new compiler-based techniques for searching through structured text. The results will be applicable beyond Shakespeare’s texts.

If you are interested in design and / or the implementation of programming languages, this project is for you!

Name of research group, project, or lab
Why join this research group or lab?

The driving questions for the research lab are:

  • How does the design of a programming language enable or prevent people from programming?
  • What counts as a programming language? Who do we get to call a programmer?
  • Can we design programming languages that erode barriers between the "haves" and "have nots" in the digital world?

This research project in particular offers many entry points: design, art, literature, or programming-language implementation. The goal is to use programming-language techniques to build something that does not feel like a programming language to its users.

You will work closely with Prof. Wiedermann on the aspects of the project that interests you. There is also the opportunity to work with theatre professionals and digital humanists. The ultimate goal is to provide a prototype of a usuable tool and submit our work for publication.

Representative publication
Logistics Information:
Project categories
Computer Science
Humanities, Social Sciences, and the Arts
Human-centered Design
Human-Computer Interaction
Visual and Performing Arts
Student ranks applicable
Student qualifications

There are two categories of skills. This project is a good match for anyone with skills from one or both of these categories.

Category 1: Artistic skills

  • Visual arts (e.g., drawing, painting, graphic design)
  • An interest in computer science, user-interaction, human-centered design, or Shakespeare

Category 2: Programming skills + interest in implementing programming languages

  • Significant programming skills (e.g., a rising junior or senior in CS).
    • Experience implementing parts of a programming language is a plus (e.g., HMC CS 131).
    • Experience with web-programming (e.g., React) is a plus.
  • An interest in academic research in CS
  • An interest in implementing (parts of) programming languages and compilers
Time commitment
Summer - Full Time
Paid Research
Number of openings
Techniques learned

There are three categories of experience that this project offers. In this project you experience the things in at least one of these categories.

Category 1: Design

  • Human-centered design
  • Designing the look and feel of a web application (and possibly a mobile application).

Category 2: Web programming

  • Implementing a web-app, using React.

Category 3: Programming-languages research

  • Research into existing techniques for synthesizing queries of structured data.
  • Designing and implementing new techniques to synthesize queries of structured data, tailored to Shakespeare's texts.
  • (Possibly) Preparing / submitting / publishing a paper that describes our research.


Contact Information:
Mentor name
Ben Wiedermann
Mentor email
Name of project director or principal investigator
Ben Wiedermann
Email address of project director or principal investigator
1 sp. | 20 appl.
Hours per week
Summer - Full Time
Project categories
Visual and Performing Arts (+4)
Computer ScienceHumanities, Social Sciences, and the ArtsHuman-centered DesignHuman-Computer InteractionVisual and Performing Arts