NYU ITP, Spring 2025. 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.
You should expect to spend, on average, six to eight hours per week on work for this class (excluding time spent in the classroom).
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.
Students are expected to have access to a computer running a recent version of a desktop operating system (macOS, Windows, Linux). 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.
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.
You are expected to attend all class sessions. If you’re going to be absent, please give me as much notice as possible (via e-mail), preferably before the beginning of class on the day of your absence. If you’re not feeling well (and especially if you have an illness resulting from an easily transmissable pathogen, such as COVID-19, influenza, or even a cold), please stay home and rest! You’re doing a favor to yourself and your community.
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.
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).
Using large language models while trying to learn how to program is like bringing your chauffeur to Driver’s Ed.
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. For the purposes of this class, it is a violation of the academic integrity policy to use LLM-generated code in your assignments and projects without citation. Any use of code from tools like ChatGPT must be accompanied by the following information: (1) the name of the tool that you used; (2) the prompt(s) that you used to produce the code (if applicable); (3) a thorough review of the generated code in which you explain what the code is doing, and identify any concepts or functionality contained in the code that we have not discussed in class.
Consider that 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 at hand. 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.
This class has six deliverables:
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.
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 document each sketch. The preferable form of this documentation is a public blog post, but other formats (e.g., a Google doc) are also acceptable if you have privacy concerns. In your documentation, discuss your experiences with the tool(s) involved in the sketch question, describe what you hoped to accomplish, and evaluate how well your implementation matched your ambitions. The documentation 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.
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.)
Work will be evaluated according to the following criteria: compliance, gregariousness, and stubbornness.
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.
Each category will be weighted equally when assigning a final score to each assignment.
Component | Percentage |
---|---|
Attendance and participation | 25% |
Sketches | 5 x 10% (50%) |
Final project | 25% |
Examples of modes of participation: asking questions, going to office hours, sending and reading emails, class group discussion, arriving on time, going to class, taking notes, listening to peers, submitting responses to a form (anonymous or not), following instructions, active listening, etc.
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.
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.
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.
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.
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.