Spec Refinements

March 6, 2024

Refinements in Libraries:

 

Collection View/Edit Pages in Libraries

  • Authors can create new components from the Collections pages and those components will automatically populate in the Collection

  • Authors can add existing components from the Collections pages and those components will automatically populate in the Collection

 

Metadata displays on components in Libraries

  • At a glance metadata

    • Thumbnail

    • Name/Title

    • Video duration

    • Tags

    • Problem type

      • Single select

      • Multiselect

      • Numeric input

      • Text input

      • Dropdown

      • Drag and drop

      • Image mapping

      • Polling

      • Chemical equation writer

      • Circuit builder

      • Conditional

      • Python Grader

      • Math expression input

      • MathJax

      • Latex

      • Wordcloud

      • ORA: Self assessment

      • ORA: Peer assessment

      • ORA: Staff graded assessment

    • Published/draft/unpublished changes

  • Drawer/modal metadata:

    • Which courses are using this content?

    • When was it last updated?

    • How many times has it been used?

 

Problem Bank refinements:

  • Eliminating the concept of “Problem Banks” as distinct collection types in Libraries. Instead, Collections will be the only way of creating subsets of content in a Library. All the original requirements for Collections still apply. 

 

Component Problem Block refinements:

  • Add system-generated tags for “problem type” to all problem blocks in a Library [is there a backend taxonomy for problem type tags?]

 

Published and Draft state refinements:

From within the Library:

  • Three states: published, draft, unpublished changes

  • State must appear clearly on content in Libraries

  • Library searches from within the Library include content with all three states - in other words, all Library content.

  • State must appear clearly on search results in Libraries. 

  • Option to refine search results by state - need approach to reduce confusion; possible solution to see published view from the unpublished state

  • Authors have two options to publish content:

    • At the component level

    • At the library level

From within courses:

  • Searching for content from a Library from within a course should only include published content.

[stories for deleting content]

-delete immediatley from libraries, but courses still operate with local copies

Library-Library import/export

  • Add individual components via copy/paste?

    • from course to library

    • from library to library

  • Import whole Library into another Library? [possibly out of scope for Sumac]

    • stories for what happens to duplicative namespaces, version history

    • merge feature - merges and updates links

 

Refinements in Courses:

 

Linking Libraries to courses:

  • Libraries can be linked to courses via two workflows/in two places:

    • From course settings

    • From the Unit Page via the “add existing content” flow

  • Authors can only use content from linked libraries in a course. [We may expand this later, but linking will be a gating factor to which library content is available in a course for the MVP.]

  • In the search results from the “add existing content” flow, search results indicate the content source, ie which Library it comes from

^Permissions stories - permission to link a library in the new RBAC schema

 

Randomized Content block refinements:

  • Name change from Randomized Content Block to Problem Bank

  • When course authors wish to randomize a pool of content, they select the Problem Bank block

  • Ways the content within a Problem Bank is determined:

    • Collections. Authors can choose a collection to use as the source of content.

      • 1. All the content in a collection via a bulk add

      • 2. Choose individual problems

      • 3. Use a query to get a subset of problems from the collection

    • Tag queries. Authors can search within a Library with tag queries in order to populate the Problem Bank block. “Give me Give me all the multiple-choice problems that are tagged with “accounting” AND “easy”.

  • [REMOVE] Option to randomize or not randomize the set

  • Extend randomization to be able to include any problem type. Don’t limit randomization to only one type of problem. “I just want to create a big bucket of problems of all different types that I can filter by tag, and then use that refined selection as the pool of content to randomize.”

 

Push notification refinements:

  • Authors have two options for syncing courses with Library updates:

    • Manually review and accept new updates

    • Course-level setting to auto-update every time changes are published in the Library

      • Version history but no alerts

 

Local editing of Library content in a course:

  • Default setting is that users cannot edit Library content in a course

  • Authors have the option to override this setting

  • Authors who do override the setting are given clear notifications when they make local changes to Library content

 

Notes - 3/13/24

Questions on Collections

  • What are the expectations of Collections size/number?

    • 1:1 v1 mapping use case is the initial

    • Small pools of randomized contents

    • Early adopters like WGU would want larger sets of content, not small randomized content pools.

    • If they have a set of questions, better to keep that as a bounded thing.

    • Feedback from Colin: Us prescribing the difference between a problem bank and a collection is overreach. Workflow for problem bank vs. collection seemed like a step too far.

  • Can we get rid of the option to “not randomize”?

    • So you can pick components one at a time (add from library → no problem bank involved)

      • Or bulk select or all select

    • To avoid the “collections as units” use case.

    • This is okay for MVP.

  • Problem Banks as distinct concepts in a Library, what makes them distinct from Collections:

    • Teaches a specific learning objective, probably tied to an exam

    • May have ordered relationships - ie, Bank A is a pre-req to Bank B

    • Settings that apply to all components, default values (could be overridden in a course)

    • a/b testing, data on effectiveness

    • What would these ^ look like as specs/requireemnts:

      • Title captures the learning objective

      • In the Problem bank block, there are limitations about the types of collections they can pull over - limited to “small” collections

      • requirement of a limited amount of content in a problem bank (100?) [can we get this data from coursegraph?]

  • Concept of learning objectives as a first class thing in Libraries

 

Decisions:

  • Will go with generalized collections as the only method for creating subsets in Libraries

 

Still open questions:

  • Are collections versioned? Logs?

  • What’s the user story for needing to track changes to collections?