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?