🗃 U5LA2 Mini Project: Build Your Own Challenge

How can I write and document functions or function challenges?


Let’s build on what you’ve learned to create something meaningful - your own function or function challenge that will return a value and be complete with documentation!
In this mini-project, you will have two options:
OPTION 1: Create A New Function that Returns a Value
You can create anything you want (imagining projects past, present, or future), but your function MUST return a value, and you must provide the following:
  • Code for your function with comments
  • Documentation of your code: Documentation means that you explain how to use the function, including the purpose of each input and the return, and give an example of how it would be used in a program. (This means showing code where you’ve used it!)
  • Written explanation of why you created this function and how it will be useful
  • Written explanation of how this function could be improved or added on to later
  • Present your work in any way you see fit - ask your teacher for ideas!
OPTION 2: Create a New Function Challenge
You will be creating a function challenge much like the ones you were solving on CodeWars. Your challenge must do/provide the following:
  • You must write a detailed challenge prompt that a programmer would be able to follow to solve your challenge
  • The challenge should require users to return a value and should include structures for control flow (conditionals, loops, etc)
  • You must provide a written solution to your challenge (with code comments), as well as three test cases and what each would return.
  • You must provide a list of prerequisite knowledge or skills needed to complete the challenge
  • Written explanation of how this challenge could be improved for an advanced version Present your work in any way you see fit - ask your teacher for ideas!


The real extension here comes in the content itself - are students writing things that are challenging enough for them? Encourage students to think iteratively about this to continue improving on their creations.
They can also extend themselves in how they present their work. Options for presentations include:
  • Creating a Google Doc or Slideshow
  • Creating a physical poster (or poster using Canva or similar)
  • Using prior HTML/CSS skills to make a website to house their information
  • Creating documentation on Github