CS 257 Project 1: From the Ridiculous to the Sublime*

You may choose to do either Project A, Project B or Project C. Project A consists of three relatively straightforward small projects. Projects B and C are more challenging and open-ended, i.e., if you think you are a macho hacker (or want to be one) choose B or C.

Project A

Project B

Write a Scheme program which, given an s-expression, draws the corresponding box-and-pointer diagram (see p. 360 of Scheme and the Art of Programming). Boxes and pointers depicting s-expressions (or parts thereof) which are proper lists should be aligned on a single (horizontal) line. Sub-lists should be drawn on lower lines. Care should be taken so that different parts of the drawing don't overlap.

Project C

Write a Scheme program which will draw one of the four patterns from p. 103 of Abelson's Turtle Geometry. Hint: Find the smallest part of the pattern which is not mirror symmetric. Build up the rest of the pattern recursively using mirror copies. If you find a similiar arabesque pattern that you would like to use instead, bring it in and show it to me. The same goes for you dressed-in-black neo-Goths who want to experiment with Celtic interlace.

What You Should Hand In

When You Should Hand It In

The above should be handed in at the beginning of class on Fri. Oct. 9.

* This webpage is located at http://cs.unm.edu/~williams/cs257/project1.html