For this final assignment, there is no Looking Outwards and no Technical Assignment. You will just finish your proposed project, submit it to Autolab and post your project on WordPress. In addition to the project itself, you should write a short blog about your program for the observer 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 11th at 11:59PM Eastern. NOTE THE UNUSUAL DUE DATE. (You can hand in late with a 0.5 point penalty per day, or use up to 2 grace days if you still have them.)
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 blog that describes your program, what inspired you, and how to run the program.
For your WordPress posting, post your program and your blog, and be sure to label your project post with Categories FinalProject and your section, e.g. SectionA.
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 blog (submit as a text file in Autolab with your code and images/sounds, if needed, and on the WordPress site). You should write about 100-200 words about your program for the observer (and the 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.
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.
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 a maximum of 4 points for the assignment, depending on what you hand in.
- If you do not post your project to WordPress, you will receive a 1 point deduction from the final score. (If your program doesn’t work, you won’t receive a double penalty. You don’t have to post on WordPress if the project is not finished.)
- 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 (blog) that describes your project in your zip file to Autolab , you may receive up to a point deduction from the final score.