Instructions attached
Name(s)_______________________________________________ Period ______ Date ___________________
Hackathon Project Planning Guide
Project Description
For this project you will work with a partner. Together you will create an app that uses a dataset. There are two roles in
this project: designer and programmer. You are both responsible for the overall project, but you will focus on different
parts of the project at any given time. On the last day of the project, you will individually complete a written response
that will help you practice for the Create Performance Task.
You will submit
● Your final app
● This completed project-planning guide
● A written response
App Requirements
● At least three screens
○ All screens can be easily navigated to through the user interface
● A dataset used in a meaningful way towards the programs purpose
● At least one list is traversed using: map, reduce, or filter (indicate which in a comment) in a meaningful way
towards the program’s purpose
● Programming constructs: variable(s), function(s), conditional(s), list(s), loop(s)
● All functions include comments that explain their purpose and how they work
● All element IDs have meaningful names
● No errors in the code
Steps
●
●
●
●
●
Collaborate with your partner to pick a dataset
Decide on an app to build which traverses a list from the dataset
Create a paper prototype
Designer:
○ Create the screens
○ Support the programmer with pair programming as needed
Programmer:
○ Program the app
○ Support the designer as needed.
Investigate Phase
Step 1. Choose a Dataset: Open a project on Code Studio and look through the different datasets available. Choose
on that looks interesting to both you and your partner.
Dataset: _____________________________________________.
What column(s) of data will you use in your app?
●
●
●
Computer Science Principles
1
Step 2. Brainstorm an App: Consider the columns of data that you are using. How will your app traverse this data?
Circle one and explain below.
● Filter (most common option): use the list from one column to determine information that will be filtered from a
list created by another column
○ Example: dogHeight filters dogNames, so only the names of small dogs are added to the filtered list
● Map: Add or change each item in a list
○ Example: map a list of numbers pulled from a column using Math.round – now each number is rounded
● Reduce: Reduce the data in a list to a single number
○ Example: find the smallest number in a list
Your app will use (circle):
MAP
REDUCE
FILTER
Explain in more detail:
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
Design Phase
Step 3. Create a Paper Prototype: On the next page you should draw a prototype that shows how your app will
actually run. This means you should include all the buttons, text, and images that the user will be able to use and see.
Write notes or draw arrows showing how different user interface elements should work. For example, if clicking a
button takes me to another screen, I should draw an arrow from that button to the drawing of the screen.
Computer Science Principles
2
Computer Science Principles
3
Step 4. Prepare to Build Your App:
Before you begin to code, fill out the chart below. Add more rows (or use a scrap piece of paper) as needed.
Element IDs
Name
Type
Notes
nameOutput
label
Displays the name of the dog on the screen
Computer Science Principles
4
Variable(s)
Name
Type
What it’s storing
dogSize
list
A list of dog sizes pulled from the “Max Height” column
Conditional(s)
Boolean Expression (pseudocode is ok)
Notes
if dog size is greater than 15, append to a list
Inside a for loop that traverses the dogSize list
Loop(s)
For Loop (pseudocode is ok)
Notes
for(var i=0; i