Introduction to Computer Science
CompSci 101 : Spring 2014

Algorithmic Art

Programming has long been used to create or supplement artistic works, from screen savers to exhibits in museums. Daily it is used by visual designers, artists, and architects to create their works. Software has engaged a new generation of visual artists to consider programming as an essential part of their creative practice.

Logo is a computer programming language designed to teach programming to children. It is a user-friendly, interpreted language, designed with a "low floor, high ceiling"; in other words, the designers of Logo intended for the language to allow novice programmers to get started quickly writing programs but also wanted the language to be powerful and extensive for more advanced users. In the last 40 years, Logo has also caused people to think differently about how to teach art, geometry, social science, and complex systems.

The basic commands to move and turn a "turtle" (originally a physical robot) are so much a part of programming history that they have been incorporated into almost every modern programming language, Python included. We will use this basic system to explore programming. Examples of using the turtle are given in the course textbook and you can use any of the Active Code boxes in the text book to complete this project if you do not yet have Eclipse installed.

Specification

Create a Python module, file, named art.py that uses Python's Turtle Graphics module to draw something "interesting". It could be something concrete like a car, house, train, animal, space ship, or self portrait. It could be more abstract like a pattern of geometric shapes, tilings, tessellations, or spirographs.

Experiment freely! Programs are imperfect and there is almost no program in the world that does anything interesting that is flawless. Of course, programmers work hard to make their programs as correct as possible but since every program is essentially a brand new creation that nobody has ever seen before it is almost inevitable that something, somewhere will be off a little bit. We call any imperfection in a program a bug. and it is the rare program that has no bugs. Every time your favorite software company releases an update it is either because they are adding new features or fixing old bugs (or both).

Whether or not a given bug is a problem is entirely dependent on context. For this project. you might view such behavior as a happy accident, that it looks better than what you intended to make, gives you an insight into how programs work, or adds to the meaning of your work. So please, use this exercise to experiment with programming.

Submission

Submit your README file and Python file as a PyDev project from within Eclipse or as two files from this web form to the assignment name 02_turtleart.