Week 14 (due Dec 9)

Final Project

For this final assignment, there is no Looking Outwards and no Technical Assignment. You will just finish your proposed project and submit it to Autolab. In addition to the project itself, you should write a short text file about your program for the grader that describes what inspired you, how to interact with the program and what you might like add to the program if you had more time. 

The final project is due by FRIDAY, December 9th before 11:59PM Eastern. NOTE THE UNUSUAL DUE DATE. (You can hand in late with a 1 point penalty per day through Sunday, December 11th, or use up to 2 grace days if you still have them.)

Autolab for Week 14 will open on Wednesday, December 7, after your final lab session.

For your Autolab handin, you should zip up the program code, any additional files we need to run the program (e.g. images, sound, data), and a text file that describes your program, what inspired you, and how to run the program. there is a 25MB limit. Let us know if this will cause you problems.

The final project will be graded on an 8-point scale. The main requirement is that you show your programming skills in a creative application. The final project should be demonstrate all major programming constructs that you learned this semester and be of a similar complexity (or greater) to the projects you worked on for the semester. We expect at least 100 lines of code (per person).

Your work should emphasize dynamic, computational interactive behavior, as opposed to fixed images or simple click-to-advance/”page turning” interactions. In other words, if you could implement your project with PowerPoint animations or simple HTML with links, then you are not really using p5.js effectively. You may need to create some static images and drawing and even some page-turning, but you should not count this as part of the 100-lines-plus-per-person expectation.

Remember that you will write a short text file of about 150-200 words about your program for the course staff that describes what inspired you, how to interact with the program and what you might like add to the program if you had more time.

Grading criteria

We will evaluate your project both on technical merit and creativity.

  • Technical Merit (6 points)
    • Uses at least one array in a non-trivial way to organize a collection of data of the same type for use in the program. 
    • Uses at least one user-defined object in a non-trivial way to organize data of different types together as a single related unit.
    • Uses several examples of conditional programming (if and if/else statements) to implement non-trivial logic so that your program follows different execution paths in your program to create reasonably different behavior.
    • Uses several non-trivial loops to repeat code rather than run through the same code typed over and over again. At least one of these loops should not be a counting loop (i.e. a loop that repeats a certain number of times but the loop does not use the loop variable otherwise).
    • Uses at least one non-trivial user defined function to take some complexity from the program and move it to a separate location, with a function call to run the function when needed. The function should have at least one parameter.
    • Uses transformations in some non-trivial manner (translations and/or rotations). Three dimensional drawing does qualify here since it uses transformations to place objects in the 3D world.
  • Creativity and Effort (2 points)
    • Your program will be evaluated on the level of complexity and the overall impact of the results on the observer. Fairly trivial programs that mirror the simplicity of the short examples done in class will not receive credit for creativity. Most students will get at least 1 point here if they meet their proposal goals and have a program that is running well.

Possible Deductions

Once the program is scored, the following deductions may be applied:

  • If your program does not run without a trivial correction by the TAs, you will receive up to 4 points maximum for the assignment, depending on what you hand in, no higher.
  • If your code style is disorganized or hard to read (lack of or faulty indentation, no comments, etc.), you may receive up to a 1 point deduction from the final score.
  • If you do not submit a short text file that describes your project in your zip file to Autolab , you may receive up to a point deduction from the final score.