CSCI 448 - Mobile Application Development (Android)

Spring 2017 - Assignment 1 - This Is Jeopardy!

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

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

For this assignment, you will take your completed Lab01B (feel free to start from Lab02A or Lab02B 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 domain to include <userName_A1> and name the app <userName>_A1 where userName is your name (for instance, mine would be jpaone_A1).


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 array. Pressing the "Next" button should display the new question every time.

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. While this example has a few topics we have not discussed yet, the last section of this Android Developers Tutorial could be useful in adding a view to layout through the Controller.

When a user chooses an option or enters an answer (maybe you need a Submit button for the Fill-in-the-Blank quesitons???), 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 nice layout regardless of 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.
  3. Finally, to go ahead and make your game more rewarding for the user (since they can find out the answer), work ahead and complete the challenge at the end of Chapter 5. We will be covering Chapter 5 starting Wednesday, January 24.


Part V - Questions


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 multiple question types in your question array?
  2. Did your choice for Question #1 affect how you set up your Controller?
  3. What difficulties did you have with the Controller passing information from the Model to the View?


Part VI - Website!


In addition to finishing the app, create a webpage that showcases your work. There is a template available for your website. If you wish to use it, download this .zip file and extract it in your dropbox. It will create a www/ directory with the stylesheet from the course webpage, which you can use if you like. You'll be adding to it for each homework assignment, with a screenshot or screenshots of your work, a short description of the assignment, and the opportunity to talk about any neat implementation details if you so choose. The websites are a way for you to keep track of the projects you've made over the course of the semester, but you should also aim to make the descriptions accessible to people outside of the course as a way to share and showcase your coursework.

Inside the www/ directory, there is an images/ folder. Place any screenshots and other images into this folder.

If you're not familiar with HTML, don't worry; the template shouldn't do anything crazy - a <br> signifies a newline, the <img> tag places an image. There are plenty of tutorials available for HTML if you want to add tables, change font styles, or play with the formatting. There are some comments in the template file to help you out as well.

If you choose to use the template or your own template, be sure to name the webpage <alias>.html where <alias> is the name your chose during the initial survey. (For example, my submission would look like ElvishScout.html .) Look here for how to format your name. Ask Dr. Paone if you have a question.


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.
20% Pressing "Next" button displays the next question text and corresponding choices.
20% Providing correct answer is greeted with a "Correct!" Toast. Likewise, an incorrect answer is communicated to the user as well.
20% User's score is tracked and displayed on screen.
5% Questions from Part V are answered and included in README.txt file.
5% Submission includes source code, Android Studio project, and README.txt. Webpage named <userName>.html submitted and updated with screenshot from latest assignment.
5% Source Code is documented with appropriate Javadoc style comments.
5% Submission compiles and executes.
+2.5% Landscape layout included.
+2.5% User has one chance to score question.
+5% User can cheat but then receives zero points.


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 source code, Android Studio project, README.txt, and www/ folder. Name the zip file, userName_A1.zip. Upload this file to Canvas under A1.

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

Last Updated: 01/01/70 00:00


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