CSCI 448 - Mobile Application Development

Spring 2016 - Assignment 1 - This Is Jeopardy!

|   Home |  Syllabus |  Assignments |  Schedule |  Resources   |
This assignment is due by January 25, 2016 by 2:59pm.

For this assignment, you will take your completed Lab01B (feel free to start from Lab01C 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 <userNamename_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 be 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 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 .tar.gz file (or .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 <userName>.html where <userName> is your user name. (For example, my submission would look like jpaone.html.) If you would prefer to use a different filename, please let Dr. Paone know so he can update the links from the student pages.


Grading Rubric


Your submission will be graded according to the following rubric.

PercentageRequirement 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.


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 Blackboard under A1.

This assignment is due by January 25, 2016 by 2: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