Assessment Task 3 – Who Wants to Be A Millionaire AppMarketing Research and Data Analysis
Overview
You will use AppInventor to implement a multi-screen app based on a given project specification. This app will use a range of components taught up to and including Week 11 of the course. You will also submit a brief report containing pseudocode and a description of how your solution utilises various concepts learned in class.
Timelines and Expectations
Percentage value of task: 30% (of final course mark)
Due date: 4pm, Thursday 18th May, 2023 (Week 11)
Minimum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment.
K1. Understand constructs typical of many programming languages such as: variables, expressions, assignment, sequence, selection, iteration, procedures, parameters, return values.
A1. Design, develop, test and debug mobile apps from a given textual program specification.
S1. Analyse the input, processing and output needs of small programming problems.
S2. Design code sequences to realise algorithms in a programming language.
S3. Design basic user interfaces and develop storyboards to convey designed interaction sequences.
S5. Develop test cases to ensure correct behaviour.
Assessment Details
This assignment contains two parts: an app and a brief report.
- App Details
Your assignment is to develop an Android application, using MIT AppInventor, which is a general knowledge quiz game based on the television show “Who Wants To Be A Millionaire”. The app should utilise programming concepts covered in class from Weeks 2 – 10, including persistence of data using files and databases, the dictionary data structure, web and networking functionality, and sorting algorithms.
The application should contain several screens to fulfill the requirements described below. You are free to design the interfaces of your app as you like, but your solution should also meet the requirements in a logical way.
Specifically, the logic requirements that must be supported in the app are as follows:
- When the application is first opened, there should be a screen that provides users with a way to select the game difficulty (“easy”, “medium”, “hard”, or “assorted”) and start a new game and view high scores.
- There should be a separate screen in which the questions are displayed, opened from the first screen. When the question screen opens, it should load questions of the selected difficulty, following the following logic:
- If the device is currently connected to the network, questions should be loaded from the Open Trivia Database API, as described in the API section of this document.
- If the device is not connected to the network, questions should be loaded from the provided text files, which contain static question data retrieved from the Open Trivia Database API.
- A single question should be displayed at a time, including its category, question text, and four possible answers (including the correct answer and three incorrect answers in a random order). The user should be able to select one of these answers, at which point the following should occur:
- If the selected answer is the correct answer, the user’s score is incremented to the next highest money level (the current score should also be visible on the trivia screen). The user should then be prompted as to whether they wish to continue the game or end it. If they choose to continue, a new question is displayed and the process repeats.
- If the selected answer is incorrect, the user should be made aware that they selected the wrong answer, and the correct answer should be shown. The user’s score should reduce to the closest guaranteed level achieved, or zero. The app should then navigate to another screen where the user can save their score to a database, passing the achieved score with it.
- Money levels should increment based on the following scale. Any level highlighted in yellow is a guaranteed level, meaning that once a user has achieved this score, their final score for the round will not drop below this level even with an incorrect answer.