# Week 12 (due Nov 20)

The Week 12 Deliverable is due by 11:59pm EDT on Saturday, November 20th:

No Looking Outwards this week

1. Assignment-12-A: Recursion [Autolab only]
2. Project-12: (Final Project Proposal) [Autolab only]

## 1. Assignment 12-A: Spiraling Squares

Write a short program that uses recursion to draw the picture above. Here are the requirements:

• The canvas is 500 X 500.
• Each square’s side is 10 pixels smaller than the one it covers. Each square is rotated 10 degrees from the one it covers.
• The first (largest) squares are of size 200 X 200.
• Each pair of squares drawn of the same size are touching corners at the center of the canvas.
• Each spiral has 20 squares. (There are 40 squares in total.)

You should write a recursive function drawSquares that draws two squares at a time, both of the same size, touching corners in the center. The function should have two parameters: the square size (side length) for the two squares and the angle for the squares (in degrees). It will draw two squares touching in the center. One of the squares will be drawn at the given angle, and the other will drawn at that angle + 180 degrees. and then it will call itself with updated parameters for the next two squares. Think about what base case you need to stop the recursion.

Your draw function will call the drawSquares function with an initial size of 200 for the squares and an angle of 0.

## 2. Project 12: Final Project Proposal

Using the programming skill you have gained throughout the semester, you are to create a project of your own design based on a major theme associated with climate change. The project will have these deadlines:

• Proposal: due this Saturday, November 20th by 11:59pm. (i.e. this assignment)
• Checkpoint: due Saturday, November 27th by 11:59pm.
• Final Project: due FRIDAY, December 3rd, by 11:59pm.

Imagine that your Final Project is something a little larger and a little more ambitious than what you normally would create for a weekly creative Project: you’ll have about two and a half weeks to create it. Your project should be a program that expresses an artistic interpretation of our theme that is designed to start a discussion. Although you are free to express your views through your (programmed) art, you should be aware that you will be posting this publicly. Please avoid obscenities, nudity, blasphemy, slander, etc.

As you think about what you want to do, draw sketches and take notes of ideas you have. You should generate 3-5 ideas that you can then whittle down to your desired project. Think about projects that you can reasonably do given the programming knowledge you have gained.  Don’t bite off a lot more than you can chew.  Your program should illustrate correct understanding of the following concepts: loops, arrays, conditionals (if), user interaction, transformations, functions (besides setup and draw), and use of at least one object definition of your own design. Work incrementally, test carefully and give yourself enough time.

COLLABORATION: Students may work independently or in teams of 2. For proposals with 2 students, the proposal MUST indicate the individual contributions of each student. Each student in a pair will submit the same proposal, but with the distinction made on who will be doing what part. Keep in mind that pairs will need to cover all programming topics (e.g. there will need to be two object definitions, one done by each student).

There is no blog post for this assignment. You will create the files you need and zip them into a zip file and submit to Autolab only.

1. In a text file of about 150-250 words, describe what you would like to create. Your project should involve the creation of custom software, toward some personally interesting end. Some possibilities for Final Projects include: an information visualization; an audiovisual performance instrument; an interactive game; an interactive camera-based installation; an animation; an interactive story, etc. You can use one of our projects or examples as a launching pad to create something more interesting and complex (since you have two and a half weeks).
2. Include one or more drawings or diagrams to illustrate your proposed project. This might be photograph(s) of a page from your sketchbook, a mock-up done in a drawing program, etc. You can include other pictures of ideas you considered but rejected. (In your text, write one sentence to indicate why you rejected the idea.)
3. List any proposed collaborators for the project. If you have a partner, your proposal must indicate what parts of the project you are responsible for and what parts your partner is responsible for. Your partner (if any) must be another student in 15-104 this semester.
4. Zip your text file and your pictures/drawings and submit these to Autolab for Deliverable Week 12.

FEEDBACK: We will try to provide feedback for you by Tuesday, November 23rd. We will consider your idea and its originality, the ability to do something interesting beyond what we’ve done in class, and the expected use of programming constructs (e.g. will the program likely have good use of loops, if statements, an array, an object, transformations, interaction, etc.).

PLAGIARISM WARNING: Your work must be an original idea and creation.  If you are inspired by some computational art, please cite this in your proposal. It is ok to be informed by an artist’s work, but it is not ok for this project to duplicate that work (or use it as your own). We will be checking resulting projects for similarity with work available online. Students who clearly plagiarize work will be charged with an academic integrity violation without warning and will fail this class. The work is also expected to be your own coding. Students who copy someone else’s code as their own or have someone code for them can be charged with an academic integrity violation without warning and will fail this class. If you are having trouble and feel the need to plagiarize, don’t do it… talk to us instead. We can help you get past the stress or anxiety and create something wonderful.