Difference between revisions of "User Stories"

From WeBWorK_wiki
Jump to navigation Jump to search
(Created initial list of User Stories)
 
(→‎Instructors: added items about restricting TAs' access by section, fixing a student grade on a problem, and exporting detailed (problem-level) data on homework sets)
 
(47 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
This is a list of basic tasks desired by WeBWorK users (Students, instructors, administrators, etc.), as motivated by [http://en.wikipedia.org/wiki/User_story]. The intention is for this document to motivate back-end and API development.
 
This is a list of basic tasks desired by WeBWorK users (Students, instructors, administrators, etc.), as motivated by [http://en.wikipedia.org/wiki/User_story]. The intention is for this document to motivate back-end and API development.
  +
  +
Note that this is not intended to be a list of current functionality. It is a list of tasks that users desire to be able to do in the system.
   
 
Please feel free to add any missing tasks to this list.
 
Please feel free to add any missing tasks to this list.
Line 9: Line 11:
 
** Print my assignment
 
** Print my assignment
 
** View a problem
 
** View a problem
** Attempt a problem
+
** Attempt a problem (enter answers and get feedback)
 
** View my grades on the problems in a problem set
 
** View my grades on the problems in a problem set
 
** View my overall grades for all problem sets
 
** View my overall grades for all problem sets
  +
** View my performance compared to students in this class or this group from the current course or past classes
 
** Get a new version of a problem
 
** Get a new version of a problem
 
** View my past answers to a problem
 
** View my past answers to a problem
  +
** 'Save Progress' button for use with whiteboard or calculator resources
  +
** View assignments from different courses on same page
  +
** Sort assignments (e.g. by Course, by type, by completion or assigned date)
  +
** view completion status of each problem in an assignment while working on one of its problems
  +
** get context-sensitive help
  +
*** info about type of answer: numeric (real, rational), functional expression, equation
  +
*** info about necessary accuracy
  +
**** programed or spontaneuous popup
  +
**** decimal places vs significant figures
  +
**** absolute or relative tolerance
  +
**Get a new, blank version of an assignment for review for an exam
  +
***View list of acceptable units
  +
  +
* Hardcopy of homework sets
  +
** Print hardcopy of active homework set as a supplement to viewing the homework on line
  +
** Print hardcopy of a completed (past answer date) homework set for review
  +
*** Option to print with or without hints.
  +
*** Option to print with or without solutions.
  +
 
* User Management
 
* User Management
 
** Change my email address
 
** Change my email address
 
** Change my password
 
** Change my password
  +
 
* Communication
 
* Communication
 
** Email the instructor
 
** Email the instructor
  +
  +
* User Interface
  +
** Ability to customize the interface
  +
*** Ability to rearrange and resize components
  +
*** Ability to modify theme
   
 
=== Instructors ===
 
=== Instructors ===
  +
 
* User management
 
* User management
 
** Add a user (or a few users) manually
 
** Add a user (or a few users) manually
 
** Import users from a file
 
** Import users from a file
** Update a student's information (email, name, id number)
+
** Update a student's information (login, email, name, id number, password, etc.)
  +
*** Student status that includes "enrolled," but "disallow logins" (e.g., for old semesters). This might be a characteristic of a course rather than a student.
 
** Act as a student (see what an individual student sees)
 
** Act as a student (see what an individual student sees)
 
** Delete a student
 
** Delete a student
 
** List all students
 
** List all students
  +
** List all students in a given section / recitation
  +
** Assign problem sets to one or more users
  +
** View grades / progress for one or more users
  +
** View a student's past answers on a problem
  +
** Export list of users
  +
** Create a group of students by hand or through rules. Default group is one class.
  +
** Edit a characteristic or characteristics of many students (e.g., set student status to inactive/drop)
  +
** Have students generate ad hoc groups on the fly for working cooperatively on WeBWorK problems in class
  +
** Restrict TAs' access to students not in their recitation section(s)
  +
  +
* Communication
  +
** Email a student / group of students / all students
  +
** Provide a chat interface with other members of the class with problem threads.
  +
  +
* Problem Sets
  +
** Create a new problem set
  +
** Delete problem sets (choose problem sets and be presented with a window that lists problem sets to be deleted and has a "confirm delete" button)
  +
** Set the order in which the sets appear on the homework page. (and/or set the rules that determine this order)
  +
** Change the details of a problem set
  +
*** Set Name
  +
*** Open, due, answer dates
  +
*** Reduced credit enable/period
  +
*** Give an individual student, or group of students an extension of the due date.
  +
*** Re-open a closed homework set for all students and set a new global due date. Should this override all local due dates (i.e., homework extensions given to individuals)
  +
**** Suggested solution: When resetting a global due date a pop-up window warns if there are any individual overrides. The instructor has a chance to adjust these individual extensions or not as the situation warrants.
  +
*** Whether to show hints / solutions, and when(should this be decided by the problem (e.g. PG code) or should it be set by the environment (webwork2)? Some combination?
  +
*** Merge two or more assignments.
  +
*** Edit the set header file (there should be only one set header file for both html and tex)
  +
*** Other set-specific parameters
  +
** Specify different types of assignments, with separate grading and assignment rules:
  +
*** Normal Homework Assignment (assigned to everyone in a (class or group), scored as normal homework)
  +
*** Prep Assignment (assigned to specific groups, not part of normal homework)
  +
*** Follow-up Prep Assignment (opened upon completion of Prep Assignment)
  +
*** In-Class Problems (paired to in-class lecture, option for everyone to have the same seed. Different than normal homework.)
  +
*** In-Class Group / Peer Problems (specific problem assigned to specific group for during class.)
  +
*** Gateway Quiz problem set ''(how is this defined?)''
  +
**** Timed Test/Quiz problem sets
  +
**** Userset Versioning of Test/Quiz problem sets
  +
**** Test/Quiz problem sets composed of groups of problems (e.g., sections, with characteristics---e.g., problem order---that can be set by section, but the sections appearing in a specified order)
  +
**** Allow restriction of student access to scores and previously submitted work
  +
**** Hooks for Respondus and SoftwareSecure.com type workstation isolation software.
  +
*** In-Class Quiz or In-Class exam set (scores distinguished differently from normal homework assignments)
  +
*** Placement Testing Mechanism (e.g. student registration, reporting of scores and post-quiz message)
  +
**** Read test scores/results for tests that run over-time and aren't otherwise allowed to be submitted
  +
*** Master Type Sets (future problems or groups of problems determined by a ruleset that uses results on previous problems or groups of problems)---this should be able to play with testing and homework assignment types
  +
** Add problems / problem pools to a problem set
  +
** multi-stage scoring
  +
*** current: reduced-credit period is offset backwards from dueDate
  +
*** also: bonus-credit period is offset backwards from dueDate
  +
*** also: full-credit with due-date, extend with reduced-credit for specified duration
  +
*** full-scoring up to n tries before dueDate, then show ans/sol and reseed with reduced-credit before dueDate
  +
** Change settings for an individual problem within a problem set
  +
*** Number of Attempts
  +
*** Value
  +
*** When to show hints (if available)
  +
** Assign problem sets to one or more users (possibly based on user criteria such as section / recitation)
  +
** Show or hide problem set to students. (visible/hidden)
  +
** View grades / progress for one or more problem sets
  +
** Set a student's score on a certain problem (e.g., to make up for a bug in the problem)
  +
** Export detailed information (as is shown under "student progress") on one or more problem sets
  +
** Export grades for one or more problem sets
  +
** Set whether a problem / problem set should be reseeded after a certain number of attempts
  +
** Import / Export homework sets
  +
*** Export a problem set with all of its auxiliary files and transmit it to a colleague.
  +
** Regrade a problem within a problem set after modification
  +
** Set default values for settings to apply to all newly created homework sets
  +
** Assign problem sets to students in specified group
  +
** Turn on / off universal resources for students:
  +
*** R
  +
*** Sage
  +
*** whiteboard
  +
*** graphing calculator (especially with whiteboard)
  +
*** geometry software (geogebra, jsxgraph)
  +
*** simple calculator
  +
** Option to log unrecorded attempts submitted after due date has passed.
  +
** Assign the same random seed to all students for a particular problem or an entire homework set
  +
  +
* Hardcopy of problem sets
  +
** Print hardcopy for proof reading
  +
*** Option to include hints and/or solutions
  +
** Print hardcopy to distribute to a student or students
  +
*** Option to NOT show hints and/or solutions
  +
* Problem Pools
  +
** Create a problem pool
  +
** Add / remove problems from a problem pool
  +
  +
* Problems
  +
** Edit a problem
  +
** Create a new problem
  +
** Copy a problem
  +
** Upload/Download one or more problems
  +
** View available problems
  +
*** identify/exclude problems already used
  +
**** in this assignment
  +
**** in any assignment for this course
  +
**** for a recycled course: identify when used in past
  +
*** enable a virtual library of problems
  +
**** used by this instructor in previous years
  +
**** used by colleagues, now or in past
  +
** Search for problems
  +
*** By topic
  +
**** DBcourse, DBchapter, DBsection
  +
**** keyword(s)
  +
**** text--author (edition), chapter, section
  +
*** By type (multiple choice, numerical, symbolic)
  +
*** by component: has solution, uses MathObjects,
  +
*** By author or directory
  +
*** By institution
  +
*** enable instructor preferences for starting new search
  +
** Tag problems with relevant metadata
  +
** Tag problems with private metadata (like favorites (stars), or when last used, or other instructor-specific information)
  +
** View a problem with a given seed (view a new version of a problem)
  +
** Add a problem to a problem set
  +
** Package a problem with all of its auxiliary files so that it can be shipped to a colleague (probably as part of a problem set)
  +
** Report a bug in a problem
  +
** report a common confusion with a problem
  +
  +
* Course management
  +
** disable "Show Solution" for all students --- primarily for use in huge classes where fraternities have comprehensive solution files
  +
** Archive a copy of the course for safety backup or for use next semester.
  +
** reuse a course
  +
*** revise dates: open, close, show ans & sol
  +
*** revise dates, automatically following some rules + standard holidays factored in
  +
*** treat collection of problems used previously as a virtual library
  +
** Specify desired notation for
  +
*** Vectors
  +
**** Angle versus round brackets
  +
**** Arrow versus bar versus bold
  +
**** Step functions
  +
**** ijk notation versus coordinate form
  +
*** Complex numbers (i versus j)
  +
** Download scores in a format that can be easily imported into an LMS gradebook
  +
  +
* Analytics
  +
** Store student performance for non-webwork assessments (e.g. paper/pencil tests, quizzes, etc.)
  +
** Provide statistics and performance by students on assignments for specified group(s) and specified course(s)
  +
** Provide performance across courses
  +
  +
* User Interface
  +
** Ability to customize the interface
  +
*** Ability to rearrange and resize components
  +
*** Ability to modify theme
  +
  +
=== Administrators ===
  +
* Courses
  +
** Create a course
  +
** Change the name of a course
  +
** Make a course available/unavailable to students
  +
** Copy content (users, sets, problems) from one course to another
  +
** Back up a course / courses
  +
** Restore a course from backup
  +
** Add / Remove / Edit users within a course
  +
* Use WeBWorK function calls in external scripts
  +
* System (with aid from IT expert)
  +
** backup crucial data
  +
** monitor important logfiles
  +
** identify which tasks to handle via cron, which by-hand
  +
* Easily import student demographic data from institutional data feeds.
  +
* enable easily-understood date display ($studetDateDisplayFormat !!)
  +
  +
=== Authors ===
  +
* obtain data about common errors on a problem, perhaps gathered only from courses on an MAA site
  +
* digest of student queries/complaints/praise (a selection of Email Instructor items)
  +
  +
=== Developers ===
  +
* Add a feature to webwork. E.G. Add the achievement system or some other feature which interacts with webwork in a non trivial way and requires persistence in such a way that it doesn't break installations of people who aren't using the feature.
  +
  +
* Automated assignments for students taking placement tests
  +
* Sharing of problem pools
  +
* (Easy generation / inclusion of additional tables: meta-data about problem pools, how to define student groups, ... so that these can be shared across institutions and installations of WeBWorK)
  +
* Model courses
  +
* Master courses (e.g. institution standard course, assign assignments from master course to specific course)
  +
  +
=== extended comments ===
  +
* A course-level schedule object could allow flexibility for an Instructor's tool to provide flexible management of dates for assignments together with associated actions.
  +
** dates for a single assignment (some selection/extension of the following)
  +
*** visible to students
  +
*** open
  +
*** dueDate
  +
*** date to show answers
  +
*** date to show solutions
  +
*** date ending opportunity for bonus credit
  +
*** date ending opportunity for reduced credit
  +
** flexible management of dates
  +
*** specify which event (previous list) has explicit calendar date
  +
*** specify delta-times for all other events (allowing "infinity" to hide all solutions from all students)
  +
*** specify fractions for bonus or reduced credit
  +
*** to simplify reuse of a course, allow use of a meta-schedule specifying just dates for the controlling event (but also allow revision of that during the term)
  +
*** select alternatives for summarizing the configuration to students (e.g., show text about dueDate together with icons indicating alternative credit stuff)
  +
** interface should clarify hierarchy for configuring this complexity, perhaps extra tab in Course Configuration which modifies course.conf as a record within an archived course
  +
  +
[[Category:Developers]]

Latest revision as of 23:59, 21 November 2013

This is a list of basic tasks desired by WeBWorK users (Students, instructors, administrators, etc.), as motivated by [1]. The intention is for this document to motivate back-end and API development.

Note that this is not intended to be a list of current functionality. It is a list of tasks that users desire to be able to do in the system.

Please feel free to add any missing tasks to this list.

Students

  • Problem/Problem Sets
    • View the list of my problem sets
    • View the list of problems in a problem set
    • Print my assignment
    • View a problem
    • Attempt a problem (enter answers and get feedback)
    • View my grades on the problems in a problem set
    • View my overall grades for all problem sets
    • View my performance compared to students in this class or this group from the current course or past classes
    • Get a new version of a problem
    • View my past answers to a problem
    • 'Save Progress' button for use with whiteboard or calculator resources
    • View assignments from different courses on same page
    • Sort assignments (e.g. by Course, by type, by completion or assigned date)
    • view completion status of each problem in an assignment while working on one of its problems
    • get context-sensitive help
      • info about type of answer: numeric (real, rational), functional expression, equation
      • info about necessary accuracy
        • programed or spontaneuous popup
        • decimal places vs significant figures
        • absolute or relative tolerance
    • Get a new, blank version of an assignment for review for an exam
      • View list of acceptable units
  • Hardcopy of homework sets
    • Print hardcopy of active homework set as a supplement to viewing the homework on line
    • Print hardcopy of a completed (past answer date) homework set for review
      • Option to print with or without hints.
      • Option to print with or without solutions.
  • User Management
    • Change my email address
    • Change my password
  • Communication
    • Email the instructor
  • User Interface
    • Ability to customize the interface
      • Ability to rearrange and resize components
      • Ability to modify theme

Instructors

  • User management
    • Add a user (or a few users) manually
    • Import users from a file
    • Update a student's information (login, email, name, id number, password, etc.)
      • Student status that includes "enrolled," but "disallow logins" (e.g., for old semesters). This might be a characteristic of a course rather than a student.
    • Act as a student (see what an individual student sees)
    • Delete a student
    • List all students
    • List all students in a given section / recitation
    • Assign problem sets to one or more users
    • View grades / progress for one or more users
    • View a student's past answers on a problem
    • Export list of users
    • Create a group of students by hand or through rules. Default group is one class.
    • Edit a characteristic or characteristics of many students (e.g., set student status to inactive/drop)
    • Have students generate ad hoc groups on the fly for working cooperatively on WeBWorK problems in class
    • Restrict TAs' access to students not in their recitation section(s)
  • Communication
    • Email a student / group of students / all students
    • Provide a chat interface with other members of the class with problem threads.
  • Problem Sets
    • Create a new problem set
    • Delete problem sets (choose problem sets and be presented with a window that lists problem sets to be deleted and has a "confirm delete" button)
    • Set the order in which the sets appear on the homework page. (and/or set the rules that determine this order)
    • Change the details of a problem set
      • Set Name
      • Open, due, answer dates
      • Reduced credit enable/period
      • Give an individual student, or group of students an extension of the due date.
      • Re-open a closed homework set for all students and set a new global due date. Should this override all local due dates (i.e., homework extensions given to individuals)
        • Suggested solution: When resetting a global due date a pop-up window warns if there are any individual overrides. The instructor has a chance to adjust these individual extensions or not as the situation warrants.
      • Whether to show hints / solutions, and when(should this be decided by the problem (e.g. PG code) or should it be set by the environment (webwork2)? Some combination?
      • Merge two or more assignments.
      • Edit the set header file (there should be only one set header file for both html and tex)
      • Other set-specific parameters
    • Specify different types of assignments, with separate grading and assignment rules:
      • Normal Homework Assignment (assigned to everyone in a (class or group), scored as normal homework)
      • Prep Assignment (assigned to specific groups, not part of normal homework)
      • Follow-up Prep Assignment (opened upon completion of Prep Assignment)
      • In-Class Problems (paired to in-class lecture, option for everyone to have the same seed. Different than normal homework.)
      • In-Class Group / Peer Problems (specific problem assigned to specific group for during class.)
      • Gateway Quiz problem set (how is this defined?)
        • Timed Test/Quiz problem sets
        • Userset Versioning of Test/Quiz problem sets
        • Test/Quiz problem sets composed of groups of problems (e.g., sections, with characteristics---e.g., problem order---that can be set by section, but the sections appearing in a specified order)
        • Allow restriction of student access to scores and previously submitted work
        • Hooks for Respondus and SoftwareSecure.com type workstation isolation software.
      • In-Class Quiz or In-Class exam set (scores distinguished differently from normal homework assignments)
      • Placement Testing Mechanism (e.g. student registration, reporting of scores and post-quiz message)
        • Read test scores/results for tests that run over-time and aren't otherwise allowed to be submitted
      • Master Type Sets (future problems or groups of problems determined by a ruleset that uses results on previous problems or groups of problems)---this should be able to play with testing and homework assignment types
    • Add problems / problem pools to a problem set
    • multi-stage scoring
      • current: reduced-credit period is offset backwards from dueDate
      • also: bonus-credit period is offset backwards from dueDate
      • also: full-credit with due-date, extend with reduced-credit for specified duration
      • full-scoring up to n tries before dueDate, then show ans/sol and reseed with reduced-credit before dueDate
    • Change settings for an individual problem within a problem set
      • Number of Attempts
      • Value
      • When to show hints (if available)
    • Assign problem sets to one or more users (possibly based on user criteria such as section / recitation)
    • Show or hide problem set to students. (visible/hidden)
    • View grades / progress for one or more problem sets
    • Set a student's score on a certain problem (e.g., to make up for a bug in the problem)
    • Export detailed information (as is shown under "student progress") on one or more problem sets
    • Export grades for one or more problem sets
    • Set whether a problem / problem set should be reseeded after a certain number of attempts
    • Import / Export homework sets
      • Export a problem set with all of its auxiliary files and transmit it to a colleague.
    • Regrade a problem within a problem set after modification
    • Set default values for settings to apply to all newly created homework sets
    • Assign problem sets to students in specified group
    • Turn on / off universal resources for students:
      • R
      • Sage
      • whiteboard
      • graphing calculator (especially with whiteboard)
      • geometry software (geogebra, jsxgraph)
      • simple calculator
    • Option to log unrecorded attempts submitted after due date has passed.
    • Assign the same random seed to all students for a particular problem or an entire homework set
  • Hardcopy of problem sets
    • Print hardcopy for proof reading
      • Option to include hints and/or solutions
    • Print hardcopy to distribute to a student or students
      • Option to NOT show hints and/or solutions
  • Problem Pools
    • Create a problem pool
    • Add / remove problems from a problem pool
  • Problems
    • Edit a problem
    • Create a new problem
    • Copy a problem
    • Upload/Download one or more problems
    • View available problems
      • identify/exclude problems already used
        • in this assignment
        • in any assignment for this course
        • for a recycled course: identify when used in past
      • enable a virtual library of problems
        • used by this instructor in previous years
        • used by colleagues, now or in past
    • Search for problems
      • By topic
        • DBcourse, DBchapter, DBsection
        • keyword(s)
        • text--author (edition), chapter, section
      • By type (multiple choice, numerical, symbolic)
      • by component: has solution, uses MathObjects,
      • By author or directory
      • By institution
      • enable instructor preferences for starting new search
    • Tag problems with relevant metadata
    • Tag problems with private metadata (like favorites (stars), or when last used, or other instructor-specific information)
    • View a problem with a given seed (view a new version of a problem)
    • Add a problem to a problem set
    • Package a problem with all of its auxiliary files so that it can be shipped to a colleague (probably as part of a problem set)
    • Report a bug in a problem
    • report a common confusion with a problem
  • Course management
    • disable "Show Solution" for all students --- primarily for use in huge classes where fraternities have comprehensive solution files
    • Archive a copy of the course for safety backup or for use next semester.
    • reuse a course
      • revise dates: open, close, show ans & sol
      • revise dates, automatically following some rules + standard holidays factored in
      • treat collection of problems used previously as a virtual library
    • Specify desired notation for
      • Vectors
        • Angle versus round brackets
        • Arrow versus bar versus bold
        • Step functions
        • ijk notation versus coordinate form
      • Complex numbers (i versus j)
    • Download scores in a format that can be easily imported into an LMS gradebook
  • Analytics
    • Store student performance for non-webwork assessments (e.g. paper/pencil tests, quizzes, etc.)
    • Provide statistics and performance by students on assignments for specified group(s) and specified course(s)
    • Provide performance across courses
  • User Interface
    • Ability to customize the interface
      • Ability to rearrange and resize components
      • Ability to modify theme

Administrators

  • Courses
    • Create a course
    • Change the name of a course
    • Make a course available/unavailable to students
    • Copy content (users, sets, problems) from one course to another
    • Back up a course / courses
    • Restore a course from backup
    • Add / Remove / Edit users within a course
  • Use WeBWorK function calls in external scripts
  • System (with aid from IT expert)
    • backup crucial data
    • monitor important logfiles
    • identify which tasks to handle via cron, which by-hand
  • Easily import student demographic data from institutional data feeds.
  • enable easily-understood date display ($studetDateDisplayFormat !!)

Authors

  • obtain data about common errors on a problem, perhaps gathered only from courses on an MAA site
  • digest of student queries/complaints/praise (a selection of Email Instructor items)

Developers

  • Add a feature to webwork. E.G. Add the achievement system or some other feature which interacts with webwork in a non trivial way and requires persistence in such a way that it doesn't break installations of people who aren't using the feature.
  • Automated assignments for students taking placement tests
  • Sharing of problem pools
  • (Easy generation / inclusion of additional tables: meta-data about problem pools, how to define student groups, ... so that these can be shared across institutions and installations of WeBWorK)
  • Model courses
  • Master courses (e.g. institution standard course, assign assignments from master course to specific course)

extended comments

  • A course-level schedule object could allow flexibility for an Instructor's tool to provide flexible management of dates for assignments together with associated actions.
    • dates for a single assignment (some selection/extension of the following)
      • visible to students
      • open
      • dueDate
      • date to show answers
      • date to show solutions
      • date ending opportunity for bonus credit
      • date ending opportunity for reduced credit
    • flexible management of dates
      • specify which event (previous list) has explicit calendar date
      • specify delta-times for all other events (allowing "infinity" to hide all solutions from all students)
      • specify fractions for bonus or reduced credit
      • to simplify reuse of a course, allow use of a meta-schedule specifying just dates for the controlling event (but also allow revision of that during the term)
      • select alternatives for summarizing the configuration to students (e.g., show text about dueDate together with icons indicating alternative credit stuff)
    • interface should clarify hierarchy for configuring this complexity, perhaps extra tab in Course Configuration which modifies course.conf as a record within an archived course