🔮 Unit 5 Final Project: Menu of Options

How can I showcase what I have learned in this course?

Overview && Teacher Feedback

This final project is special as this is most likely also the end-of-course project! (For speed racers, there are optional units 6 and 7 that exist - please reach out and we can explain.) For that reason, the goal of this course is not just for students to use functions, but for them to showcase everything they've learned so far this year. This is a wildly open-ended project with a lot of different options, and you should absolutely feel like you can suggest other options as well. Anything that interests students - this is their last time (in this course) to shine!


Students will be able to:
  • Showcase their understanding of function and abstraction based on Unit 5 lessons in a culminating final project.
  • Integrate programming skills from the duration of the year into a project of their choosing


You’ve reached the end of Unit 5, and it’s time to celebrate all of your learning! Unlike past units where we are interested in specific skills, here, we are looking for a culmination of all that you’ve learned, highlighting functions and abstractions to make sure you are creating efficient, readable programs and minimizing the amount in which you repeat yourself.
Because we have reached the end, rather than have one project we want everyone to work on, we are offering a menu of options. Choose the one that feels right for you and use that to drive your final project time!
Regardless of the option you choose, your project should include:
  • Functions for all major tasks, especially those that are repeated
  • At least one function that returns a value
  • As many prior skills as possible

Your Options:

OPTION 1 Remix a Past Project: You will take a past project, any past project, and remix it to include functions for major and repeated actions and algorithms. You should also incorporate any and all improvements to your project now that you have learned more.
OPTION 2 Create a Stamp Machine: Create a program that will have several functions for different designs and allow the user to stamp and/or draw with them.
OPTION 3 Create Pong: Recreate the vintage arcade game, Pong. If you’ve never played before, you can use this link to give it a try. Your game should include moving balls and paddles (ball should bounce on contact with the paddles) and a way to keep score.
OPTION 4 Make Something Totally New: Talk to your teacher about this one - you’ll need to write up a plan and prove that your new idea fits the criteria of this final project. But it’s possible!
Reflection Prompts:
  • Explain what you chose to create and how functions have improved your program
  • Explain one specific function - how does it work, and why was this an important function to write?
  • What improvements would you like to see for your project?

Culturally Responsive Best Practices

As this challenge is student-driven, it is up to the individual to decide the direction they would like to take it. You can guide students to greater depths of CR-SE thinking with the following suggested levels:
  1. 1.
    Centered around you, your lived experience, and your contributions
  2. 2.
    Expands your knowledge by adding concepts or themes that are culturally responsive
  3. 3.
    Transforms your project into something that allows for diverse perspectives
  4. 4.
    Makes your project into a powerful tool for social action


Because this project takes on a choose-your-own-adventure format, students should be encouraged to find ways to constantly improve their projects and iterate on top of what they have already made. Consider making this a part of their final rubric grade!