✨ Metaphors for LLMs ✨
Due: Wed Apr 1 (no joke!) by 11pm
Overview
Metaphors are a tool for conveying the essence of a thing in terms of the features of another. For example:
- “Time is Money”: This provides us a particular way to think about time: as a finite, precious, spendable resource that can be wasted, saved, or invested.
- “A black hole is a cosmic drain”: This asks us to imagine a black hole as a place where matter spirals in and then disappears.
The key thing about metaphors is that they are not exactly true. Something about the original is lost. (For instance, you can store money in a bank, where it can grow; neither is true of time.) But they help us relate things that are new to us, especially ones that are abstract, in terms of things that are familiar, and usually concrete. That is, they are intended to be learning aids. In class, for instance, we've used the metaphor that a coding agent is a “flaky compiler”.
Assignment Tasks
Task 1: Propose two different metaphors for coding agents:
- One is for first-year Brown students with no prior programming experience who are interested in learning to code with agents.
- The second is for a non-programmer in their 70s or 80s (such as someone's grandparents), who have various life experience but not programming experience. Their life experience gives you a different set of contexts to draw on. You can propose a generic metaphor, or one designed for people with a particular kind of (realistic) life experience.
The goal of this exercise is for you to think about what you see as the salient features of coding agents, and to map them onto something else. The learning here lies in you selecting the salient features, so you should do this assignment on your own, without AI assistance. We expect it might take a while to come up with a first metaphor; then you might get a few more; and then it will take a while to sort through them and think them through. Don't outsource this to AI — this is where your learning happens! If you feel you have multiple good ones and really can't pick, feel free to submit multiple.
Your work should go into a file named METAPHORS.md that you'll put in the repo for this assignment. Please label them as “For First-Year Students” and “For Elder Non-Programmers”.
We're putting these in repos because, as you might guess, in the next assignment you will peer review each other's metaphors.
Criteria
A good metaphor (a) captures salient features of coding agents, (b) leveraging features of something the audience understands, while (c) limiting the questions and incorrect concepts that get invoked. Your peers will assess all three of these criteria.