Computational approaches to narrative

NYU ITP, Spring 2024. Instructor: Allison Parrish. Send me an e-mail.

Important links: Schedule, form for submitting homework.


Beginning with the release of Crowther and Woods’ “Colossal Cave Adventure” in 1977, the potential and unique affordances of computation as a means of storytelling have become more and more apparent. Combining approaches from literary theory, anthropology, computational creativity and game design, this class considers how narrative structure can be represented as data and enacted through computation, and invites students to implement practical prototypes of their own interactive and procedurally-generated narratives using a variety of technologies. Topics include (but are not limited to) hypertext fiction, “choose your own adventure”-style branching narratives, text adventures, visual novels, story generation from grammars and agent-based simulations. Students will complete a series of bite-size weekly assignments to present for in-class critique. Each session will also feature lectures, class discussion, and technical tutorials. Prerequisites: Introduction to Computational Media or equivalent programming experience.


Class schedule with readings, assignments, and due dates.

Ethos, methodology, structure, outcomes

This class concerns the concept of narrative and ways to represent and design narrative artifacts using computation. The class combines components of the seminar, the workshop, and the tech tutorial. During each session, we’ll examine topics in narrative structure (through reading discussions, discussions about artworks, and in-class lecture), and then learn how to use a computational tools to make something that engages with, expands upon and/or challenges the topics under discussion. We’ll also spend a good deal of time in class sharing work with one another for feedback and critique.

By the end of the last class session, students will be literate in a range of topics and debates in the study of narrative structure, and especially in how narrative relates to computation. Students will have made several prototype projects that exercise this literacy and a final project that shows their mastery of the material presented in class.


Tools and play

Students are expected to have access to a computer running a recent version of macOS or Windows. (Most, but not all, course material will be available for Linux as well.) All of the software we’ll be using for technical assignments is free or open source, but some of the works assigned for discussion are not free. (Students will need to purchase these works.)


Students will need to buy a copy of Subcutanean by Aaron A. Reed, which we’ll read over the course of the semester. Subcutanean is a computer-generated novel that is beautifully written and has a compelling story that is deeply entwined with its procedural nature. (Content warnings for “emotional manipulation, claustrophobia and getting lost, and an off-screen suicide attempt,” according to the official FAQ.)

The ebook version is fine, but a few things to note: (1) Order the “custom paperback” or the “custom ebook” (not the Amazon version)! These products are not fulfilled immediately, so please order your copy with plenty of time to spare. (2) Every copy of the novel is unique, which is part of what makes the novel relevant to the class, so don’t just borrow (or “borrow”) a copy.

If the cost of the book is prohibitive, let me know and we can make arrangements. Likewise, let me know if the content warning above makes the book seem inaccessible to you. We can find an alternative means for you to participate in the assignment.

Other reading

Most of the other assigned reading is available online for free, or readable online through the NYU library. When there are exceptions to this, the material will be distributed by alternative methods. We’ll discuss this in class.

Attendance, lateness, and in-class behavior policies

You are expected to attend all class sessions. Please be in touch with me promptly if you think you’ll be absent. Be on time to class. If you’re more than fifteen minutes late, or if you leave early (without my clearance), it will count as an unexcused absence.

I ask that everyone close their laptops and give full attention to their peers during student presentations (unless dictated otherwise for accessibility reasons on an individual basis). While I’m presenting, I expect you’ll be taking notes or following along on your laptop, which is fine.

On the use of large language models and automated code generation tools

If I asked you a question to your face, it would be rude to use an automated tool to produce a response. Same goes for your blog posts and assignments—they’re not there just for show; they’re a way for you to communicate with me (and the rest of the world).

This class is about computation; I’m teaching you the code so you know how it works, not just so you can do stuff with it. When we’re going over your code in class, I might ask you to explain how it works. As such I invite you to refer to Vaithilingam et al., whose study shows that LLM-based code generation tools do not “improve the task completion time or success rate,” but do lead to “difficulties in understanding, editing, and debugging” that “significantly hinder” programmers’ “task-solving effectiveness.”

Large language models do not produce facts, and anything fact-like that they seem to produce is cut off from the chain of provenance that lets us verify information and participate in discourse with others involved in the topic area. If a large language model “says” something, you always need to actually find out if it’s true.

Also: here in the roaring ’20s, we’ve been living with generative tools for some time, and the fact that something was produced from a generative model no longer automatically makes it interesting.

Assignments and projects

This class has six deliverables:

  • Five tech sketches
  • Final project

Note: I plan to make the spreadsheet of student projects accessible to everyone in the class. If you’re turning something in that you’d prefer not to share with everyone, let me know and we can make alternate arrangements.

Tech sketches

Five “sketch” assignments will be assigned. The goal of each “sketch” is to make a small prototype project with the tools and concepts discussed in class that week. The word “sketch” is used to emphasize that these projects will necessarily be preliminary and limited in scope.

Sketches must be turned in at the beginning of the session listed as the due date in the schedule. Work turned in after the deadline will not be accepted.

You must write a public blog post to document each sketch. This post should talk about your experiences with the tool in question, along with a description of what you hoped to accomplish and along with an evaluation of how well your implementation matched your ambitions. The post should also include any source code written in the course of creating the sketch and (depending on the assignment requirements) a “playable” version or representative example of the sketch’s output.

If you feel uncomfortable sharing your meditation documentation with the general public, please talk to me and we can make alternate arrangements.

Final project

The final project has no set requirements, other than to demonstrate emerging mastery of the concepts and techniques presented in class. But as a basic guideline, students are invited to further develop one of the tech sketches made previously in the class. Students must document their final project, using the same criteria given for the tech sketch assignments outlined above. We’ll set aside two class sessions for final project presentations and critique. (Plan for a 12-15 minute presentation.)

Grading policy

Evaluation rubric

Work will be evaluated according to the following criteria: compliance, gregariousness, and stubbornness.

  • An assignment is compliant if it meets the brief.
  • An assignment is gregarious if it makes connections between course content and the rest of the world; e.g. your own interests as an artist, designer, technologist, etc. and/or other fields of research and practice.
  • An assignment is stubborn if it provides evidence that its maker was opinionated about what they wanted to accomplish and did not let small setbacks (whether conceptual or technical) deter them from this end.

Each assignment will be assigned a score of 0, 1 or 2 in these categories, in accordance with the extent to which the assignment demonstrates the properties described.

  • 0: No evidence of quality
  • 1: Meets expectations
  • 2: Shows exceptional effort

Each category will be weighted equally when assigning a final score to each assignment.

Grade breakdown

Component Percentage
Attendance and participation 25%
Sketches 5 x 10% (50%)
Final project 25%

Here’s the breakdown of how grades correspond with percentages. Note that the completion of all components of the class is necessary to earn a passing grade.

Grade Percentage
A 90 to 100
B 80 to 89
C 70 to 79
D 60 to 69
F Below 60

For students taking the class as pass/fail (i.e., all ITP students), anything below a B (79% and below) will be graded as a fail.

Statements from Tisch School of the Arts

Statement of academic integrity

Plagiarism is presenting someone else’s work as though it were your own. More specifically, plagiarism is to present as your own: A sequence of words quoted without quotation marks from another writer or a paraphrased passage from another writer’s work or facts, ideas or images composed by someone else.

Statement of principle

The core of the educational experience at the Tisch School of the Arts is the creation of original academic and artistic work by students for the critical review of faculty members. It is therefore of the utmost importance that students at all times provide their instructors with an accurate sense of their current abilities and knowledge in order to receive appropriate constructive criticism and advice. Any attempt to evade that essential, transparent transaction between instructor and student through plagiarism or cheating is educationally self-defeating and a grave violation of Tisch School of the Arts community standards. For all the details on plagiarism, please refer to page 10 of the Tisch School of the Arts, Policies and Procedures Handbook.

Statement on accessibility

Please feel free to make suggestions to your instructor about ways in which this class could become more accessible to you. Academic accommodations are available for students with documented disabilities. Please contact the Moses Center for Students with Disabilities at 212-998-4980 for further information.

Statement on counseling and wellness

Your health and safety are a priority at NYU. If you experience any health or mental health issues during this course, we encourage you to utilize the support services of the 24/7 NYU Wellness Exchange 212-443-9999. Also, all students who may require an academic accommodation due to a qualified disability, physical or mental, please register with the Moses Center 212-998-4980. Please let your instructor know if you need help connecting to these resources.