Week 14 (due Dec 5)

The Week 14 Deliverable is due by 11:59pm EST on Saturday, December 5th. Create a handin-14 folder that contains two subfolders for the two deliverables for this week.

No Looking Outwards this week

  1. Assignment 14-A: Recursive Drawing [Autolab only]
  2. Project 14: (Project Checkpoint) [Autolab only]
  3. Handin Instructions

1. Assignment 14-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 14: Project Checkpoint

For this project submission, you will submit your current working version of your project as of the end of this week. You will also submit a text file that describes how to run your program, what features still need to be implemented and what challenges you are facing. As you get to a point where your program is working with some important features, you should make a copy and store it elsewhere. This way, if you really mess up the next version, you can go back to the previous version.

The teaching assistants will read the text file and run your current project immediately after the due date (Monday for those who submit late) and will contact you to set up a short appointment either for Sunday or Monday to discuss your project, give you some advice and some help. This will be your only chance to get a one-on-one with a teaching assistant to help fix errors or give you some direction.

AS A REMINDER: 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.

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 named notes.txt of about 250-500 words, explain how to run your program, what features are yet to be implemented and what challenges you are facing. Try to be as detailed as you can (without writing a novel) so our teaching assistants can help you when they meet with you to discuss your work.
  2. Include the files needed to run your program. Ideally, we should be able to run your program by loading the index.html file into a browser. Let us know if we need to be running a local server if you use sound or local images.
  3. List the collaborator for your project if you have one. If you have a partner, your text file and code must indicate what parts of the project you have done and what parts your partner has done.
  4. Include your text file and your code/images/sounds in a folder in the handin-14 folder and submit these to Autolab for Deliverable Week 14 (see section 3 below).

FEEDBACK: Watch your email on the day after the submission for a message from a teaching assistant who may meet with you briefly (as needed) to help you with the challenges you are facing, depending on how far you’ve gone in the project. (For projects with minimal code or non-working code, we will be able to help you only so much, so please try to work incrementally, so that you have something working every so often, and back these up in case you need to go back to them.

PLAGIARISM WARNING REMINDER: 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.

3. Handin

  • Zip (compress) your handin-14 folder, which should contain folders containing your assignment and project (so far) and upload your zip file to Autolab.
  • Your project folder should have all of the files we need to run your program along with a text file (notes.txt) that explains how to run the program, what you still need to do and what challenges you face.

Your zip file handin on Autolab must be submitted by Saturday, December 5th by 11:59PM EDT to be considered on time. There is no WordPress post for this week.