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.