Create Task
Create your own project for the College Board
PROJECT STRUCTURE
Your program has three major requirements. Think carefully about these as you choose your program and implement your code. In this section, we'll use the example of a Balloon Pop Game to demonstrate how we meet the Create Task requirements.
(1) Input and Output
Must have user input and interaction
Must have output based on input and program functionality
Example
A program where the user clicks on Balloons to pop them and score points
Input: Clicking on a specific x and y position is input from the mouse
Output: When the balloon is clicked on, it pops and the user gains points
(2) List
Must use a List (ArrayList) in a significant way
The list must be used to manage complexity in the program or make it more expandable and maintainable.
Example
In our balloon example, the we can store an ArrayList of Balloon objects. Each of these tracks data like x and y coordinates, as well as color of balloons. The update method moves each balloon based on its speed.
This manages complexity because we can use a loop to update all balloons at once, rather than needing seperate code for each individual balloon.
This also makes the code more expandable and easy to maintain because we can change the number of balloons easily without modifying the other elements of our code.
(3) The Special Method
You must have a procedure (method) that contains
A parameter
An algorithm that includes
Sequencing - Multiple steps taken in order
Selection - A conditional
Iteration - A loop
You should design your project around this method as its core effect.
Common good choices for this method are things like:
Balloons: Register a mouseover in a clicker game containing many targets
Detecting if a chicken collides by a car when it crosses a busy road
Example
void balloonPop(int x, int y) // parameter
{
for(int i = 0; i < balloons.size(); i++) // iteration
{
Balloon b = balloons.get(i);
if(dist(x, y, b.x, b.y) < b.radius) // selection
{
balloons.remove(i); // sequencing
score++;
}
}
}
DIGITAL PORTFOLIO
Your Submission To Digital Portfolio
Final program code
1 minute video that shows your program running and its functionality
Code segments for your personal project reference
These responses will be used on the exam to write two essay responses.
All of these will be uploaded to the digital portfolo
Draft vs. Final
You'll be asked to submit a draft to Mr. M by a fixed date for points
Once he approves your Draft, you can finalize your submission.
DIGITAL PORTFOLIO
Collegeboard Guide
CODE
Upload a PDF of your Code
In Processing, go to File --> Print
Your Printer should be set to "Microsoft Print To PDF"
It will pop up an option to save a new file as a PDF
Give it a name and save it in a location
Open it up to test then upload to digital portfolio
VIDEO
Upload a Video of your Code
Must show user input and output
Must show at least one aspect of the functionality of your program.
No voiceover or distinguishing information about yourself
Format
Must be .mp4, .wmv, .avi, or .mov format.
No more than 1 minute in length
No more than 30 MB in file size
Recommended recording software is Screencastify
If you're comfortable, use anything you like!
PERSONAL PROJECT REFERENCE
NO COMMENTS IN YOUR PERSONAL PROJECT REFERENCE
This will result in a zero on your written response section
Snip Tool
Use the snip tool to get sections of your code as a screenshot
Hotkey is WINDOWS + SHIFT + S
Once the image is on your clipboard, paste it into an image editor like Paint or Photopea
Recommended: If you have a larger segment of code, use the image editor program to add a red circle around the specific section that is being requested by the prompt.
1.1 - Procedure Implementation
This program code segment must be a student-developed procedure that:
Defines the procedure's name and return type (if necessary)
Contains and uses one or more parameters that have an effect on the functionality of the procedure
Implements an algorithm that includes sequencing, selection and iteration
This is where you'll use the special method we designed earlier in our project.
Example
void balloonPop(int x, int y)
{
for(int i = 0; i < balloons.size(); i++)
{
Balloon b = balloons.get(i);
if(dist(x, y, b.x, b.y) < b.radius)
{
balloons.remove(i);
score++;
}
}
}
1.2 - Calling The Procedure
This program code segment must show where your student-developed procedure is being called in your program.
Find where this method is being called in your program.
Example
void mousePressed()
{
balloonPop(mouseX, mouseY);
}
2.1 - Storing Elements in List
This program code segment must show how data have been stored in the list.
This isn't about where you declare and initialize your list. Rather, Look for where you're using the add method to store elements in the list.
Example
void spawnBalloons()
{
if(time % 60 == 0)
{
balloons.add(new Balloon());
}
}
2.2 - Using Elements In The List
The fourth program code segment must show the data in the same list being used, such as creating new data from the existing data or accessing multiple elements in the list, as part of fulfilling the program's purpose.
Look for sections of your code where you loop through the data. Some common examples would be: when you display each element of your list, when you check for collisions with each element, etc.
It is possible for this to be the same segment as 1.1 for some projects, but if you have different examples to use, I'd recommend uploading two seperate snippets.
Example
void draw()
{
for(int i = 0; i < balloons.size; i++)
{
ballons.render();
}
}