Trivia App_v2

advertisement
Trivia App
Due: Friday, June 22, 2012 by midnight
Goal: Create a trivia app that presents 25 random multiple choice questions from 11 different
categories. This database pulls the 25 random questions from a TinyWebDB and stores users high scores
to the database.
Learning Objectives
Creativity
LO 1: use of computing tools and techniques to create artifacts.
Abstraction
LO 5: Describe the combination of abstractions used to represent data.
LO 7: Develop an abstraction.
LO 8: Use multiple levels of abstraction in computation.
Algorithms
LO 15: Develop an algorithm.
LO 16: Express an algorithm in a language.
LO 17: Appropriately connect problems and potential algorithmic solutions.
LO 18: Evaluate algorithms analytically and empirically.
Programming
LO 19: Explain how programs implement algorithms.
LO 20: Use abstraction to manage complexity in programs.
LO 21: Evaluate a program for correctness.
LO 22: Develop a correct program.
Computational Features of the App
Uses Randomization to pick the Topic and the Question
o Note: Do not assume a fixed number of questions in each category
Uses the the TinyWebDB you created to pull questions and categories to test your app
Uses the Class Web Database to to test your app if you are having difficulty with your Web
Database
o TinyWebDB - http://everyday-computing123.appspot.com/
Updates the High Scores achieved in your app to the on the Class Web database
o TinyWebDB - http://everyday-computing123.appspot.com/
Uses the Timer feature
Uses conditionals
Uses iteration
Uses Lists or List of list to organize the trivia categories, questions, and answers
Local verse remote storage for real time game play
Minimal Features of your App
-
Creativity – Please add visual and auditory appeal to your app in addition to the questions so
that it doesn’t look drab
Present your user with information about
o how much time they have left to answer a question
o A running tally of the score and the number of questions they’ve completed correctly or
incorrectly. Present to the user where they fit in the high scores already contributed to
the database.
Collaborative Features of the App
-
Each person contributes 16 total questions to the Database
o Each person is required to contribute 10 questions to their assigned category
o Each person is required to contribute 5 questions to their secondary category
o Each person is required to contribute 1 question to the computing category
Trivia Game Play
-
25 Multiple Choice Questions (Options: A-D)
Standard Points 4pts for correct answers
30 seconds to answer each question before it disappears and lists the new question
Trivia App Categories
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Animals
Movie Quotes
Music
Sports
GT Traditions and other GT Facts
Science
History
Food
TV Sows
Wildcard (Miscellaneous)
Computing
Features of the Database
-
You can design your own database format given the constraints of TinyWebDB
TinyWebDB allows you to store lists and lists of list.
Please ensure that your database stores the list of questions, possible answers, correct Answer
Suggested format for Storing and Organizing the Data for your Trivia App:
Top-Level Database - TinyWebDB
Tag
CategoryIDs
Value
List[0=animal, 1 = movies… //This identifies the
tags by which wach of the Category Question Lists
are stored
AnimalQuestionList[lists]
MovieQuotesQuestionLists[List]
MusicQuestionLists[List]
.
.
.
0
1
2
3
4
5
6
7
8
9
10
11
ComputingQuestionList[List]
QuestionList[List} Format // This is the Question List Format for Each Category
Index
//indicates the
Question #
0
1
2
3
N
Value
//Indicated the
individual
Questions
information in list
form
[Category Name]
Question#1List [List]
Question#2List [List]
Question#3List [List]
.
.
.
Question#nList [List]
Individual Question in list format// This is the format for storing information about the question,
possible answers, and the correct answer
Index
0
1
2
3
4
5
6
Contents at this Index location
Correct Answer
Question Text
Answer A Text
Answer B Text
Answer C Text
Answer D Text
Correct Answer
Preparation and Resources:
Completion of this assignment assumes that you have completed the
-
Make a Quiz and Take a Quiz Tutorials
Quiz App
Random Number Generation App Inventor Activity
http://turing.cs.trincoll.edu/~ram/cpsc110/tutorials/coinflip/coinflip2.html
Assignment Submission:
-
Please update your portfolio to include all the information detailed in the Grading Rubric Below.
Please submit a direct link to the website page where your assignment is located on T-Square
for grading.
Please upload source code as a zip file from AppInventor to T-Square or your web portfolio.
Grading
Points
50 pts
10 pts
20pts
Task
Create a working App that meets the above specified assignment criteria
Describe the features of your App and Add three Screen Shots of your App Interface
and package and upload your app code to your Google Website so that people can see
what your app looks like and download and play it. Explain how your App works and
refer to the screenshots of your code and other representations to support your
explanation.
Explanation of the process you used to design your App being specific about the
creative and functional aspects of your design process. (Please include flowchart or
structural diagrams, sketches, and pseudo code in the description of your App Design).
In particular reflect on the following:
Making decisions about how to represent and store data for your App and
the algorithms they require to implement them (tradeoffs vs advantages)
o Discussion of the level of flexibility you have when you store
information in different ways lists of list verses a single list
o Discussion about local verse remote storage. The issue with this
app is going to be that it is picking the questions in real-time. You
might need to set up a buffer.
limitations of the databases offered by the technology we have available
Points Earned
10pts
10pts
Total
Describe Key Computing Concepts used in the development of this App
Code Reuse
Psuedo Code
Algorithm
Abstraction
Flow chart
Have at least 4 people play your app and give you feedback on the interface, question
difficulty, and overall experience with your app. Submit written summaries of their
feedback and how you could use this information to make your app better.
Download