These projects are intended as the meat-and-potatoes of the course. Think of them as you would weight lifting.
It is my intention that you will work on them to in order to gain proficiency with the core standards of the course. You are free to customize them, seek help on them, work together, or do whatever it takes to understand and complete them. They are not worth credit.
- Connect the dots. Create a connect-the-dot sheet that produces a picture once the dots are connected. Shoot for somewhere between 10-50 dots.
- Draw a picture of your family using rectangles, triangles, ellipses, and lines. Make it hilarious.
- Use the arc() function to make a pie chart out of data. Allow the user to type numbers in to change the size of the wedges.
- Change the color of the screen depending on where the mouse is. Draw to make every color available to the user.
- Stretchy lines that follow the mouse
- Create a ball that is aware of the sides of the screen and bounces.
- Create two-player Pong. I suggest making a class for the ball and a method called update().
- Create stretchy lines that bounce back appropriately when stretched.
- Create a yarn art project (like in the loops and arrays video) that can color in the randomly created polygons. Also, make the loops more efficient.
- Create a yarn art project where the points are animated and move around the screen with the lines still connected.
- Create a yarn art project where a mouse click can add a new dot that is connected to all of the others. This will require ArrayLists.
- Array Practice: Create an array of integers. Draw several geometric shapes and have their parameters set to a random value in the array each time the mouse is pressed.
- Create a flock of geometric shapes that chase the mouse. Create a timer to keep track of the time the mouse can stay away from the flock. Do not allow the mouse avatar to leave the window. The flock should be built out of many instances of the same object class.
- Adjust the tickle demo to have a timer and record high score.
- Create a maze where the walls of the maze cannot be touched. Create a separate class for the walls so that mazes can be randomly generated.
- Create an etch-a-sketch where four keyboard buttons simulate the four directions you can turn the knobs. The etch-a-sketch should be able to move in two directions at the same time (multi-key input)
- Create a gravity simulator where objects are more attracted to each other the closer they are together. Objects may be added where the mouse is clicked.
- Use the PImage class and the pixel functions to recreate a filter from Photoshop.
- Create a game that uses the multi-key input from the demo video. The game should have walls that the user should navigate through without touching. The user gets more points for expanding their circle to take up as much of the cavernous space as possible without touching the walls.
- Create a graph of some interesting data. I would suggest using GradeInflation.com, the US Bureau of Labor Statistics or the Census Bureau as sources.
- Modify this lensing example so that the circles close slowly so that the path of the mouse can be seen.
A series of math-realted programming tasks solved by millions of people all over the world. Users can get ranked and show off how many tasks they’ve solved. They get harder and harder the deeper you go.