Create Task Individual Response Sheet Outline - Student Study Guide
Rubric Row 1 - Creating Programs: Purpose (Video)
Task 1: 2a
Learning Objectives 5.1.1 or 5.1.2 + 5.4.1
“The video demonstrates the running of at least one feature of the program that illustrates the program’s intended purpose as described in the written response or the video narration.”
Goal of Row - For Evaluators to understand the program.
Notes:
Place Answer Within
My program is WarmFuzzy. Its purpose is to allow parents the ability to track their child's behavior throughout the day and give a running percentage of good choices to poor choices throughout the day. It functions in that the good boy scores (thumbs up) are tallied, the bad boy scores (thumbs down) are tallied, and the overall score is derived from computing the percentage of good boy scores over bad boy scores.
Submission Key
Does your video contain
Rubric Row 2 - Creating Programs: Opportunities & Difficulties
Task 2b
Learning Objectives 5.1.1 or 5.1.2
“The response describes, at least two points in the development process, how the difficulties and/or opportunities encountered were resolved and incorporated as part of an incremental and iterative development process.
AND
The response must identify at least one point in the development process that was completed independently.”
Goal of Row - To understand your development process
Notes:
Place Answer Within
When I first started this app I found a difficulty which concerned trying to get the scores to remain even after the app was closed. This was an important feature of the app because it was intended to show the boy's overall behavior throughout an entire day/week/etc. and the app could not remain open all of that time just waiting for data to be entered.
To resolve this first I tried to use TinyDB as that is intended to keep the data on the device itself, which was all that was really necessary for this app to function. Unfortunately, I had a lot of trouble trying to get the TinyDB coding to function correctly as there were fewer options available for setters and getters under the TinyDB drawer.
Finally, I resolved it by using TinyWebDB instead. For some reason, the coding for TinyWebDB was easier to manipulate with the appropriate setters and getters and the app was able to retain data beyond shut down.
Later in the development process I discovered a problem making the Overall Score for the day/week/etc. function mathematically. The initial issue was that when there was no Bad Boy Score entered yet, the Overall Score could not be computed as it was always the Good Boy Score (1+) divided by the Bad Boy Score (0) and an error resulted. I ended up having to add an If/Then/Else block to allow for the Overall Score to be 100 if the Bad Boy Score was 0 (or less).
Next I encountered an opportunity to improve the Overall Score display using mathematics. I remembered a bit of how to code the hit rate from the earlier apps created, so I was able to get that work after some time; but I wanted the score to come back as a percentage, so I had to then figure out through trial and error how to manipulate the code to give the result as a 0-100 score. I did this by multiplying the hit rate result by 100 in the code.
Now I can use the app and retain the scores even after it is turned off, plus the overall score shows as a percentage, which makes it easier for the boy to see how well he's behaving for the day/week/etc.
Submission Key
Does your answer contain
Rubric Row 3 - Creating Programs: Apply Algorithms
Task 2c
Learning Objectives 4.1.1, 4.1.2, 5.2.1, 5.5.1
“The selected algorithm integrates two or more algorithms and integrates mathematical and/or logical concepts, selection (conditional statements), iteration (loops) to create a new algorithm (logic).
AND
The response identified the algorithm’s purpose in the program and accurately describes how at least two of the algorithms function independently as well as in combination to create a new algorithm to achieve the program’s purpose.”
Goal of Row: To assess how well you used Conditional Statements, Iteration, Math, logic, etc.
Notes:
Place Answer Within
My first feature uses conditional formatting/selection in order to determine the values for each entity in the app. The TinyWebDB.GotValue block first identifies the condition (a value is called), then it calls for response when the condition is met (that the value is to come from the WebDB). It also has a secondary logical, mathematical, and conditional statements/selection layer that allows for error correction if the value is not a number, in which case it will change the value to 0.
My second feature uses mathematics and conditional statements/selection in order to store the values for each entity with each use of the app. The StoreDBValues procedure calls for the app to save the current scores for each entity to TinyWebDB so that it will be available on the current and future uses until the scores are reset. The procedure then uses conditional statements/selection and mathematics in order to ensure that the overall score is given in the form of a percentage and that if the bad boy count is 0, the user will not receive an error message because it is trying to divide by 0. Instead, in this case, the app will change the overall score to 100 if there is no bad boy score.
Together the TinyWebDB.GotValue and StoreDBValues along with the UpdateScore procedures work to ensure that the user values are recorded, stored, and updated within the app each time the user opens the app.
Submission Key
Does your answer contain
Rubric Row 4 - Creating Programs: Apply Algorithms
Task 2d
Learning Objectives 2.2.1, 5.3.1
“The selected algorithm integrates mathematical and/or logical concepts and serves to manage complexity of the program.
AND
The response indicates that an abstraction was developed and accurately explains the abstraction, its function and how it helps to manage complexity of the program.”
Goal of Row - To demonstrate how well you used Variables, Procedures, File Management to manage the complexity and ease of support of your app. To demonstrate your understanding of abstraction.
Notes:
Place Answer Within
My first feature uses file management to ensure that the scores are recorded, stored, and updated with each use of the app through the procedures of tinyWebDB.GotValue, StoreDBValues, and UpdateScores.
It also uses the mathematical concepts within StoreDBValues to keep the overall score as a percentage and ensure that there is no error due to a 0 bad boy score. This created an algorithm within an algorithm due to the conditional statement to change the overall score to 100 when the bad boy score is 0 or less.
The StoreDBValues and UpdateScore procedures were abstractions that helped reduce the coding to allow for the scores to be stored and updated with each change to the scoring on the app, using the variables of each score entity (good boy score, bad boy score, and overall score).
Additionally, I created a reset feature allowing the user to rest the day/week/etc. scoring from the TinyWebDB by clicking on the reset button, calling the procedure to update the overall scores of the variables to 0.
--------------------------------------------------