Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
courses:cs335:spring2019:chemtutor:requirements:graph_exercises [2019/04/26 22:50] – wilsonj | courses:cs335:spring2019:chemtutor:requirements:graph_exercises [2019/05/01 02:11] (current) – [Behavior of the Application] wilsonj | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Team members | + | ====== Graph Exercises Requirements ====== |
+ | |||
+ | |||
+ | ===== Feature ===== | ||
+ | |||
+ | * Provide a welcome screen with “Graph Exercises” as title | ||
+ | * Display equation (linear or sin function) and four possible solutions in the form of graphs | ||
+ | * The graph exercises allow users to take quizzes on certain graphs (pick the corresponding graph) | ||
+ | * Graphs and possible solution | ||
+ | * To generate different graphs, the program must be able to edit variables | ||
+ | * For linear equations y = mx + b, m and b must be editable | ||
+ | * For sin functions y = A sin(b * theta + phi), A, b, and phi must be editable | ||
+ | * Program must be able to edit any number of variables, not just one or all | ||
+ | * After a session, results are returned to the user to show performance | ||
+ | |||
+ | ===== Prerequisites ===== | ||
+ | |||
+ | * User must have registered and created an account to do graph exercises | ||
+ | * User must be logged into system in order to do graph exercises | ||
+ | * Must have links on home page and other relevant locations on website directing users to the graph exercises | ||
+ | |||
+ | ===== What the User Sees ===== | ||
+ | |||
+ | * Once directed to the graph exercises, user is greeted by a welcome screen titled “Graphing Module Practice”; | ||
+ | * After entering a session, the user will see a page with an equation and four corresponding graphs | ||
+ | * That graphs each have a button to allow the user to select the one they believe to be correct | ||
+ | * After they select an answer they click the button titled “Next Question” to advance to the next graph exercise | ||
+ | * When a user completes a graph exercise session: | ||
+ | * A string that says how many questions our of how many attempts they got correct | ||
+ | * A percentage representation of this number (perhaps incorporating prior results once the data tracking functionality is finalized | ||
+ | * Try again link that takes the user back to the welcome screen for graph exercises | ||
+ | * The questions load in below, with the correct graph highlighted in green | ||
+ | * If they selected the incorrect answer, their selection highlighted red | ||
+ | * Text telling either telling them “Correct!” or “Incorrect” | ||
+ | |||
+ | ===== What the User Does ===== | ||
+ | |||
+ | * Register/ | ||
+ | * Click on a link guiding them to the graph exercises | ||
+ | * Click on “Begin Graphing Module” on graph exercises welcome screen | ||
+ | * Click on the graph which they believe to be correct based on the equation | ||
+ | * Click on the “Next Question” button to advance to the next question or the results page | ||
+ | * They can click “More Graph Exercises” when they complete the exercises, or return to the ChemTutor home page | ||
+ | |||
+ | ===== Behavior of the Application ===== | ||
+ | |||
+ | * Once a session is begun, the application will generate graphs based off of Python scripts | ||
+ | * When a user clicks on an answer and then clicks “Submit”, | ||
+ | * The application will then send feedback, which will be displayed on the page, showing whether the answer was correct or not | ||
+ | * When the user clicks on “Next Question”, | ||
+ | * After the final question when “Next Question” is clicked, a results page is generated | ||
+ | * Shows how many questions the user got correct and | ||
+ | * Displays a table comparing results to historical averages | ||
+ | * The page then gives the user the option to try again or return to the home page | ||
+ | * If the user selects to try another session, they are redirected to the “Graph Module Practice” page | ||
+ | |||
+ | ===== Example Use Cases ===== | ||
+ | |||
+ | * Users will use the graph exercise module to practice their skills identifying certain equations | ||
+ | * Users will enter a session and attempt to answer each question correctly | ||
+ | * The interface should provide a simple point and click environment to advance through the module | ||
+ | * Should create an easy to use environment and prevent complications for users | ||
+ | * After clicking through and answering questions, users can compare their results to past performance | ||
+ | |||
+ | ===== Priority ===== | ||
+ | |||
+ | * This feature quite high priority as it is one of the key elements of the ChemTutor program | ||
+ | * The program is designed to help students study and prepare for college-level Chemistry | ||
+ | * The graph exercises are one of only two true practice modules | ||
+ | * This feature also needs to be implemented relatively early so that other features may be built or modified with its design in mind | ||
- | **Requirements: | ||
- | * We will need to display a line graph of the equation y = mx + b | ||
- | * We will also need to display a sin function with the equation y = A sin(b * theta +phi) | ||
- | * The page should likely contain information or links to other areas of the site that explain the meanings of m and b for the line graph and the meanings of a, sin, b, theta, and phi for the sin function graph | ||
- | * The line graph will need to be editable for both m and b | ||
- | * The application should be able to alter one or both (m and b) to create new output for a line graph | ||
- | * This sin function should be editable for the variables a, b, and phi | ||
- | * The application should be able to alter any of the three variables to alter the graph of the function’s output | ||
- | * The page should then render the updated function for the user to see | ||
- | * In terms of the exercise functionality, | ||
- | * We will need a form with answer choices and a display of the graphs corresponding to each choice | ||
- | * We will need to be able to track which graph a user selects as the correct one | ||
- | * We should then be able to tell whether the selection was correct or not | ||
- | * We will have some sort of results page that displays end results for the user after completing the exercises | ||
- | * Must display results in an easily interpretable way (percentage, | ||
- | **Design:** | ||
- | * First, we will need to decide if we want graphing problems to extend the work done on the other practice modules. | ||
- | * Then, we will work on getting a static version of the page completed. | ||
- | * This will include an example question. | ||
- | * Will also need to use css to style the page. | ||
- | * Next, we will work on getting a dynamic version of the page working. | ||
- | * We will need to decide which of the two types of graph problems we will want to display. | ||
- | * Can be done at random or have some other algorithm for making the decision. | ||
- | * Then we will need to choose from question subtypes associated with that category (ie what happens when you change b vs. what happens when you change m?). | ||
- | * Retrieve the selected question from python script and then display graph from said question. | ||
- | * Need to know more about how these are generated before we can proceed. | ||
- | * Make a form that contains the other answer choices and also display the graphs associated with those choices. | ||
- | * Store user response in order to track their process through the module. | ||
- | * Display the users score at the end of the module. | ||
- | * Can include whatever information here that we wish | ||
- | * Which questions they got wrong | ||
- | * What they put vs what was the right answer | ||
- | * % correct | ||
- | * How this compares to their past test results. | ||
- | **Work Plan:** | ||
- | //SUBJECT TO CHANGE// | ||
- | * Surran - Work on creating static pages and CSS | ||
- | * Mize - Work on retrieving information from python and displaying data | ||
- | * JD - Work on creating forms to track progress. | ||