7400: iPPL (Fall 2024)

Zine Assignment

Instructions

A “zine” (short for magazine) is a short, self-published, often hand-drawn/hand-lettered booklet on some topic, usually reproduced by photocopying. For this project format, you will produce a zine on an approved topic in programming languages (see the list on the project page).

Your zine should explain your chosen topic using a combination of visual and written material in a spirit of curiosity and playfulness. Your target audience should be someone who knows some computer science, but not necessarily programming languages – for instance, an undergraduate CS major who hasn’t taken a PL class.

This assignment must be done individually. Keep in mind that making a good zine will require many hours of work. Chris’s estimate is that it will take at least 15 hours, potentially much longer. Knowing that, if you still want to make a zine, read on.

Format

Your zine should consist of at least two pages of standard US letter-size 8.5” x 11” paper, printed on one side, and folded in quarters to form a small booklet. This will result in 8 "panels": a front cover, a back cover, an inside front cover, an inside back cover, and 4 internal pages.

You may add additional internal pages if you need more space, but keep in mind that longer is not necessarily better: challenge yourself to keep the explanations brief!

Keep in mind that discrepancies in printing and paper thickness might mean some details at the margins get lost in printing and folding: you might want to draw a margin around each panel to keep blank. Be sure to test assembling your zine before printing multiple copies!

Printing on Northeastern campus is available through Papercut.

If anyone has more information or printing advice, please tell Chris so they can update this section :)

Pocket Computers

This project is meant to allow some creative decision making on your part. However, if you're lost as to how to begin, here is a sample outline for explaining a programming language core calculus as a "pocket computer"---a model of computation that someone could "run" with paper and pencil just by reading the zine.
  1. Panel 1: Cover
  2. Panel 2 (inside cover): What's your topic and the main idea of how it works?
  3. Panel 3: Example program and execution
  4. Panel 4: Explain the rules for executing programs
  5. Panel 5: Example program and execution
  6. Panel 6: Example program with one cool, surprising consequence
  7. Panel 7: (more space for examples and explanation as needed)
  8. Panel 8 (back cover): Credits and resources for learning more

Grading

Submitted zines will be graded as follows:

60% of the grade is based on content: did you choose a topic appropriate to the course? Do you explain your topic correctly and unambiguously? Do you present both examples and general principles, and clearly connect the two?

30% of the grade is based on presentation: Is the zine legible, both in terms of written text and images? Is your zine comprehensible to a general CS audience? Does it spark joy/curiosity/excitement about the topic? Does it work well as a physical booklet, i.e. do the pages stay bound together and is it easy to leaf through? Note: you will not be graded on your drawing skills, as long as it is clear what the drawings are meant to represent!

10% of the grade is based on references/citations/sources: do you appropriately cite all of the sources you used and assign credit for all of the content? Does your zine have pointers to useful resources where readers can learn more? At least one page of your zine should be devoted to a list of references/citations/sources.

Submission

Your zine is due by 11:59:59pm on the project deadline. You should submit your zine both physically and electronically.

To submit the physical zine, bring it to class on the day you present your project. Bring enough copies for the class, and make sure the instructor has a copy in their hand! This year (2024), there are eight students enrolled and a handful of occasional visitors, so we recommend bringing 12 copies.

To submit in electronic format, submit a single PDF on Gradescope that is laid out to print in the format you used for the physical copies.

Resources

Here are some examples of zines about computing topics that you can look at for inspiration.
  • Devine Lu Linvega's "multiset rewriting pocket computer": https://wiki.xxiivv.com/site/pocket_rewriting
  • Kate Compton's zine on Tracery, her language for generating text with context free grammars: https://www.galaxykate.com/pdfs/galaxykate-zine-tracery.pdf
  • All of Julia Evans’s programming zines are online at https://wizardzines.com. The ones with black and white covers (scroll down the page) are free.
  • The EPiQC project has published several free zines about quantum computing: https://www.epiqc.cs.uchicago.edu/zines
  • Vintage computing memorabilia like https://archive.org/details/My_Computer_Likes_Me_When_I_Speak_in_BASIC_Albrecht might serve as an inspiration.
  • Zines don’t have to be hand-drawn. For example, here’s a short zine (from the UCSC Computery Zine Fest in February) about making text adventure games: https://drive.google.com/file/d/1cUSCrp56JLnEX6xBFu4RjprNrwrW81AB/view
This is just the beginning – you’ll find a lot more out there if you look.

Acknowledgments

This assignment is adapted from Lindsey Kuper's zine assignment for her Distributed Systems course at UC Santa Cruz, which in term was inspired by Cynthia Taylor’s zine assignments for her operating systems courses at Oberlin College and UIC.