This is the archived website of SI 413 from the Fall 2012 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Piet was invented by David Morgan-Mar some time in the last ten years. It is another two-dimensional programming language, like befunge. But unlike every other language I know about the program is a picture. Yes, this is a graphical programming language where you draw a picture and the properties of the pixels in that picture determine the behavior of the language. Awesome, right? Check out the links below for some programs that are beautiful to look at.

Useful Links

How I will run your code

The programs you submit should be in a single file called proj.ppm, for either part of the project. I will test your code in the same environment as the lab machines in MI 302, using the command

npiet proj.ppm

Helpful tip: You can use any graphics editor such as GIMP to edit your images. To convert from any other format (png, gif, ...) into the ppm format that npiet wants, you can use the super-helpful command line utility convert, like

convert hello.png hello.ppm
That's all there is to it!

Phase 1 Requirements

For this language, you only need to implement modification A. See the Phase 1 page for details on what this means.

Phase 2

See the Phase 2 Page for the list of suggested problems. Of the ones listed, I recommend the following as being most well-suited for piet:

  1. Compiler (compile to piet from some very simple language - see me)
  2. Vending Machine
  3. Frequency count (count how many times each letter occurs, maybe)
  4. ??? (you choose!)