Deliverable 13 - Fall 2023

Due Saturday, December 2, 2023 by 11:59PM


PREPARING YOUR HANDIN FOLDER...

FIRST: Create a folder or subdirectory in your 15-104 working area on your computer or in your Andrew private folder for handin-13. You will put all of your work inside this folder and then compress or zip it to create handin-13.zip to submit to Autolab.


Conceptual Questions

In this part of the deliverable, you will download this Word file that contains 4 questions about concepts taught in class. You may download it anywhere on your computer. You should fill in your answers in the spaces provided, and include your name, andrewID and section letter at the top of page 1.

Once you are finished with this part of the deliverable, print/save it as a PDF and store this PDF in your handin-13 folder with the name andrewID-13-concepts.pdf. For example, if your andrewID is acarnegie, then you would save the PDF under the name acarnegie-13-concepts.pdf.


Technical Assignment 13: Spiraling Squares (3 points)

Spiraling Squares drawn recursively

Make a subfolder in the handin-13 folder for this assignment named andrewID-13-assignment. Store your sketch.js and index.html files in this subfolder.

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

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 arguments 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.


Open-ended Project 13: Final Project Checkpoint (3 points)

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

The TA mentor will read the text file and run your current project on Sunday (Monday for those who submit late) and will contact you to set up a short appointment (as needed) to discuss your project, give you some advice and some help.

PROGRAM REQUIREMENTS: As a reminder, your program should illustrate correct understanding of the following concepts: loops (at least two non-trivial uses), reasonable use of an array, two non-trivial uses of conditionals (if), user interaction, a non-trivial transformation, at least one user-defined function (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.

ADDITIONAL FILE: In a text file named notes.txt of about 250-500 words, explain how to run your current version of the 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 your TA mentor can help you when they meet with you to discuss your work. 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.

SUBMISSION: Store the files needed to run the current working version of your program and the notes.txt file in the subfolder andrewID-13-project in the handin-13 folder.

FEEDBACK: Watch your email on the day after the submission for a message from your TA mentor who will meet with you briefly to help you with the challenges you are facing. (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 your instructor instead. We can help you get past the stress or anxiety and create something wonderful.


Handing in your work

Your handin folder handin-13 should have the two folders described above.

You will zip up the handin-13 folder and submit this to Autolab. Your overall folder organization should look something like this (indentation indicates subfolders):


  handin-13
    andrewID-13-assignment
      index.html
      sketch.js
    andrewID-13-concepts.pdf
    andrewID-13-project
      index.html
      sketch.js
      other files needed for your program
      notes.txt


Once you are ready to submit, zip (compress) the handin-13 folder (which will likely be named handin-13.zip) and hand in the ZIP FILE into the Deliverable 13 submission area on Autolab. Once you handin, check your handin history and click on the magnifying glass to look at what you submitted to make sure it looks right. IF YOU SUBMIT THE WRONG ZIP FILE, YOU RISK GETTTING A 0 ON THIS DELIVERABLE!

You may submit as many times as you’d like (in case you find inspiration and want to improve your work) up until the deadline. If you submit up to one day late, even if you submitted on time, you will be marked late. We only grade the final submission you upload to us via Autolab.