Question: This is a Java program. Flashcard Application - Leitner System Objectives: Public Interface, Encapsulation, Unit Test, Class Implementation In this semester, we will implement a

This is a Java program.

This is a Java program. Flashcard Application - Leitner System Objectives: Public

Flashcard Application - Leitner System Objectives: Public Interface, Encapsulation, Unit Test, Class Implementation In this semester, we will implement a flashcard application http: //en.wikipedia.org/wiki/ Flashcard) based on the Leitner system (http: //en.wikipedia.org/wiki/Leitner_system) Flashcards are frequently used to study vocabulary, symbols, and programming constructs. A flashcard is a card bearing a challenge on the front side and a response on the back side. A challenge (or response) can be either text, an image, or sound. A user can create, modify, and delete flashcards. For each side of the flashcard, the user is able to either enter text or select an image or sound file from disk. In this implementation of the Leitner system, flashcards are organized in five boxes (numbered 1-5). Once a new card is created, it gets stored in Box 1. Studying with the Leitner system: The application randomly picks a card from one of the five boxes. Note, the likelihood of a card to be picked from a lower numbered box is exponentially higher than from a higher numbered box. For example, for a card in Box 1 it is twice as likely to be picked as a card in Box 2 (four times as likely as a card in Box 3, ..). If the user knows the answer, the flashcard moves to the next box (if there is one). If the user does not know the answer the flashcard goes back to Box 1. Once a card has been picked, the application randomly decides whether to show the front or the back of the card. Users have four choices: (a) to flip the card, (b) to indicate that they know the answer, (c) to indicate that they do not know the answer, (d) and to end the study session. Task: Read the problem description and identify candidates for classes. Assuming that among other classes you have identified FlashCard and Box as class candidates. Create a public interface for these two classes (including JavaDoc comments). For now, a flash card can only be text (no image or sound). Design unit tests for the two classes (using JUnit is optional). Implement the classes and use the unit tests to validate your implementation. If the problem description is unclear, use the Canvas forum to ask for clarification. Turn in a zip file named blazerid_hw2.zip. The file should contain an exported Eclipse project with the following items. All files needed to compile and run your solution. Your tests (test driver needs to be a separate file). A report that argues that your public interfaces meet the quality criteria discussed in class, describes your approach to testing, and explains any difficulties you had. If you would like to get a graded version on paper, add a note at the top of the report saying "paper copy requested. If you received help from somebody else in class, please give credit to them. Flashcard Application - Leitner System Objectives: Public Interface, Encapsulation, Unit Test, Class Implementation In this semester, we will implement a flashcard application http: //en.wikipedia.org/wiki/ Flashcard) based on the Leitner system (http: //en.wikipedia.org/wiki/Leitner_system) Flashcards are frequently used to study vocabulary, symbols, and programming constructs. A flashcard is a card bearing a challenge on the front side and a response on the back side. A challenge (or response) can be either text, an image, or sound. A user can create, modify, and delete flashcards. For each side of the flashcard, the user is able to either enter text or select an image or sound file from disk. In this implementation of the Leitner system, flashcards are organized in five boxes (numbered 1-5). Once a new card is created, it gets stored in Box 1. Studying with the Leitner system: The application randomly picks a card from one of the five boxes. Note, the likelihood of a card to be picked from a lower numbered box is exponentially higher than from a higher numbered box. For example, for a card in Box 1 it is twice as likely to be picked as a card in Box 2 (four times as likely as a card in Box 3, ..). If the user knows the answer, the flashcard moves to the next box (if there is one). If the user does not know the answer the flashcard goes back to Box 1. Once a card has been picked, the application randomly decides whether to show the front or the back of the card. Users have four choices: (a) to flip the card, (b) to indicate that they know the answer, (c) to indicate that they do not know the answer, (d) and to end the study session. Task: Read the problem description and identify candidates for classes. Assuming that among other classes you have identified FlashCard and Box as class candidates. Create a public interface for these two classes (including JavaDoc comments). For now, a flash card can only be text (no image or sound). Design unit tests for the two classes (using JUnit is optional). Implement the classes and use the unit tests to validate your implementation. If the problem description is unclear, use the Canvas forum to ask for clarification. Turn in a zip file named blazerid_hw2.zip. The file should contain an exported Eclipse project with the following items. All files needed to compile and run your solution. Your tests (test driver needs to be a separate file). A report that argues that your public interfaces meet the quality criteria discussed in class, describes your approach to testing, and explains any difficulties you had. If you would like to get a graded version on paper, add a note at the top of the report saying "paper copy requested. If you received help from somebody else in class, please give credit to them

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!