CSCI 448 - Mobile Application Development (Android)

Spring 2020 - Assignment 1 - This Is Jeopardy!

Quick Links: Canvas | CS @ Mines | Mines | Piazza

|   Home |  Syllabus |  Assignments |  Schedule |  Resources   |
This assignment is due by February 11, 2020 by 11:59pm.

For this assignment, you will take your completed Lab02B (feel free to start from Lab03 or Lab04 to have extra features!) and allow for multiple question types. Currently, we can only ask the user a True or False (Yes/No, A or B) question. It would be much better if we could prompt the user with more options or even better yet - have the user provide their own answer. You will need to make changes to the entire MVC stack to accomplish this task.

When you create this project, set the package to include <userName_A1> and name the app <userName>_A1 where userName is your name (for instance, mine would be jpaone_A1).

An example of the completed app is shown below:



Part I - Model: Create a Multiple Choice Question


First, add a way for your app to store Questions that have four answer choices and which is the correct answer. We are only concerned with the Model side of the MC Question at this point.


Part II - Model: Create a Fill-in-the-Blank Question


Next, add a way for your app to store Questions that have a free response (one word) answer and what the correct answer is. When we check the correct answer, we will not worry about the letter case. Again, we are only concerned with the Model.


Part III - Controller Updates View Appropriately


Now we'll start to see the changes. Create at least one of each type of question and store them in your question array. Pressing the "Next" button should display the new question every time. Additionally, add a "Previous" button to go to the prior question.

Previously, we created a new layout by modifying the View XML. This time, we need to have the Controller create the new View layout. It may be wise to have a layout component that contains the answer options and its contents are modified via the Controller.

When a user chooses an option or enters an answer (maybe you need a Submit button for the Fill-in-the-Blank questions???), be sure to validate their response and display the appropriate Toast.


Part IV - Keep Score


Finally, you will need to make changes to all of the MVC components. When a user answers a question right, keep track of their progress and increment their score. Display the user's current score somewhere in your layout.

While not required, you are encouraged to only give credit for a correct question once. That is if the user answers the same question correctly five times, then their score is only incremented one time.


Part XC - Extra Credit


There are three extensions you can do for extra credit:
  1. First, create a nice landscape layout for your app. This may be most applicable for your multiple choice question, but all your question types should have a different layout for each orientation.
  2. Second, enforce that a user can only score a question one time. This has two pieces to it. If they initially answer a question wrong, then they cannot choose the correct answer to receive the point. Furthermore, if they initially answer the question correctly, then they cannot answer again to receive additional points. The user only has one chance to answer the question. If you are using the Cheat Activity, then be sure to close all loopholes so once a user cheats they can never score the question.
  3. Third, if you added in the Cheat Activity then be sure to close all loopholes so once a user cheats they can never score the question. Additionally, give the user a limited number of cheats to use - 3. If they have cheated 3 times, then they can no longer go to the Cheat Activity. Be sure any loop holes with this value is closed as well.


Part V - Exit Interview


Be sure to include a README.txt file containing any comments, notes to run, etc. In addition, answer the following questions in your README.txt :
  1. How did you structure your classes to allow for multiple question types in your question array?
  2. Did your choice for Question #1 affect how you set up your ViewModel, View, and Controller?
  3. What difficulties did you have with the Controller passing information from the Model to the View?
  4. What was the role of the ViewModel?


Grading Rubric


Your submission will be graded according to the following rubric.

Percentage Requirement Description
20% Multiple Choice & Fill-in-the-Blank Question types properly created. Question array contains questions of all three types.
30% Pressing "Next" button displays the next question text and corresponding choices.
15% Providing correct answer is greeted with a "Correct!" Toast. Likewise, an incorrect answer is communicated to the user as well.
15% User's score is tracked and displayed on screen.
5% Exit Interview questions from Part V are answered and included in README.txt file.
5% Submission includes source code, Android Studio project, and README.txt.
10% Submission compiles and executes without error.
+2% Landscape layout included for all question types.
+4% User has one chance to answer each question for points.
+3% User has three cheats to use.


Submission


Please update your project so it produces an executable with the name userName_A1. When you are completed with the assignment zip together your full source code (the Android Studio project), and README.txt. Name the zip file, userName_A1.zip. Upload this file to Canvas under A1.

This assignment is due by February 11, 2020 by 11:59pm.

Last Updated: 01/16/20 16:17


Valid HTML 4.01 Strict Valid CSS! Level Triple-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0