Students, like us, can be ambitious. It's our job as coaches to help them achieve their potential. If they have any ideas to improve a project they are working on - that isn't a challenge - it's best to save all that excitement for their showcase otherwise it can't be properly rewarded with our point system as the only way to get bonus points in a specific project is:

  1. Completing challenges
  2. Rewarding creativity with a creativity multiplier
  3. Avoiding breaking down components; the less they are broken down the more points are rewarded

Now if the student needs help achieving a specific goal with their project, whether it be their own or a challenge, and you don't know where to start, then they likely don't either. But, we're coaches! So, spend time with them trying the gather the requirements needed for their idea and then going over each requirement and breaking it down to see what knowledge or code is needed to accomplish it. If they're missing any gaps in their own knowledge or missing any coded components they need, use your coach account to search though the Hatch library for any projects that give them exactly what they're looking for, or build up to what they need to know.


For example, let's say the challenge is to allow the user to select colours by creating a menu where the user can select which colour they want to use for any purpose programmatically.


  1. First requirement is to create a menu
    • We need a way to draw the menu
    • We need a way to interact with the menu in different spots
    • First investigate if there are any projects that accomplish creating this. There should be no issues creating something on the screen, but interacting with the drawing to give us different functionality depending on where we click sounds challenging. However, when we think of it like this, it sounds like a button! There are multiple projects like this; you can just search 'button' in the Hatch Library. Most projects solve this problem by using the mouseClick event to register the click and using an if statement to check if the position of the mouse (mouseX, mouseY) is within a certain spot on the screen. We should do this first so we can spend more time with other students, we need to manage our time effectively as coaches helping multiple students. The search may not always be this easy (as we'll see in the next requirement), but there will always be a project that at least has the fundamentals of what is needed to accomplish the goal.

  2. Second requirement is to grab the colour
    • Once again, first investigate whether a project exists for this. We can extend our knowledge using the button example to hard code what we want to happen depending on where we click. In those if statements: if they click in a certain area then a global variable storing the colour would be set.
    • Once we have the colour value stored in a variable, we can do anything we want with it.


Here is a code snippet. In this example when they click either rectangle the text changes depending on which one they clicked. In this example we are storing a message ("green" or "red"), but that can be changed to anything else, like a colour value. Feel free to paste the code into a project and play with it to understand how it works:

var message = "";

var Square = function(colour, x, y) {
    this.length = 50;
    this.width = 50;
    this.draw = function() {
        fill(colour);
        rect(x, y, this.length, this.width);  
    };
    this.isClicked = function(msg){
        if(mouseX >= x && mouseX <= x + this.width &&
            mouseY >= y && mouseY <= y + this.length){
            message = msg;
        }  
    };
};

var rightSquare = new Square(color(255, 0, 0), 200, 200);
var leftSquare = new Square(color(0, 255, 0), 150, 200);

var draw = function() {
    background(255);
    rightSquare.draw();
    leftSquare.draw();
    
    fill(0);
    text(message, 50, 50);
};

var mouseClicked = function() {
    rightSquare.isClicked("red");
    leftSquare.isClicked("green");
};


During this process the student may also understand how large the scope their idea is; this is good! Now they have a goal to achieve and you just have to help them get there by doing what I laid out above - finding the project to help them fill their gaps of knowledge.