Code.Org Quiz Outline
Below are some ideas I have for my code.org quiz. Additionally, there is also a little overview of how the quiz does meet some of the rubric for the Create Performance Task part of the AP exam.
- Ideas for the Topic of My Quiz (9/9)
- How I Want the Code to Function (9/9)
- Final Product (9/11)
- Relating My Quiz to the Create Performance Task Rubric
- Program Purpose and Function
- Data Abstraction
- Managing Complexity
- Procedural Abstraction
- Algorithm Implementation
- Testing
- Improvements
Ideas for the Topic of My Quiz (9/9)
- Something I could use as a study tool for another class (calc, chem, etc.)
- Quiz about random famous people
- Quiz about CSP vocab (sequence, data abstraction, liquid syntax, etc.)
How I Want the Code to Function (9/9)
- User will be prompted with a specific message depending on if they correctly or incorrectly answered a question
- User will not get another chance to answer a question right after getting it wrong
- The user will have their final score out of the number of questions after they have finished the quiz
I might even try to design a game rather than a quiz on Code.org. We’ll have to see!
Final Product (9/11)
I made my quiz about space and was able to show the user’s final score and if they answered a question correctly or incorrectly. While I was successful in programming the quiz, there were a few obstacles that I faced along the way. For example, since I added a lot of text to each of my screens, if I ever was trying to edit a specific label, it would be difficult for me to scroll through all of my labels before finding the desired one. I also had a difficult time organizing my code so that it was more readable, as I completely forgot about dividing my code into sections until after I finished the program. Overall, while I did have a few issues in desigining this program, I still managed to successfully produce a quiz that can help a user learn something new about space.
Relating My Quiz to the Create Performance Task Rubric
While my quiz does follow some of the requirements of the CPT, it doesn’t necessarily meet all of them. However, if I can refine this quiz, I can definitely make it so that it meets all requirements for the CPT. Below are some connections to each of the components of the Create Performance Task Rubric:
Program Purpose and Function
- Purpose: The purpose of the function is to test a user’s knowledge on specific facts about space and NASA. In addition, the quiz is also intended to teach the user something that they may not have known about before taking the quiz.
- Functionality: When the user clicks the start button to begin the quiz, they will be shown one question at a time, with a total of four questions in the entire quiz. Each question is a different type: clicking on an image to choose an answer, clicking on a radio button, typing something into a text box, and clicking on a button. If the user gets a question correct, they will have a screen popping up informing them that they answered correctly and will have a point added to their score (predefined as a variable equal to 0). If the user gets a question wrong, they will have a screen that says they chose the wrong answer and will have no points taken away from or added to their score. At the end, the user will have their final score displayed.
- Input/Output: For this quiz, the input is the answer the user clicks on/types in. The output is if they answered correctly or not, which is shown by the screen that displays after they have answered the question.
Data Abstraction
All of the points that a user earned from the quiz is stored in a variable called score, and while I did not include any lists, I definitely could refine my quiz more by incorporating dictionaries and lists.
Managing Complexity
One way that my quiz could manage complexity is to store all of the possible answers for each question into their own functions, and add iterations that classify an answer as right or wrong. This way, I won’t have to repeat the same lines of code over and over again.
Procedural Abstraction
I can make my code so that depending on what the user has inputted, a specific part of the code will be ran.
Algorithm Implementation
My quiz uses sequencing, selecting, and iterating in order to form an algorithm involving the quiz that someone else could use and incorporate into their own quiz or game.
Testing
- I tested this quiz multiple times, both in the process of creating the quiz and even after I fully programmed it. For the first call, I made it so that the user got a specific question wrong and got the other two correct, therefore displaying a final score of 2 out of 3. For the second call, I made it so that the user got two questions wrong and one correct, giving a final score of 1 out of 3.
Improvements
- Find a more efficient way of writing the code rather than having the same lines of code be repeated multiple times
- Add more segments to the code so that different inputs will result in a completely different part of the code being run
- Make a function that responds accordingly to a user’s input to a question. This way, there will not be any need to have to write the same lines of code for every incorrect or correct answer