SlideShare a Scribd company logo
Rich & Andrew
12:10 – 12:50pm
Today's Special:
Item snapshots and
dynamic content
Rich Shupe
Head Chef
Business Development Engineer
rich.shupe@learnosity.com
Andrew Morrison
Sous Chef
Software Engineer - Internal Applications
andrew.morrison@learnosity.com
Presenters
Today’s Special - Coming up...
A menu of assessment
and analytical features,
including multiple
itembanks, item pools,
dynamic content, and a
few nuances of those
flavours...
● Dynamic Content (Aperitif)
● Itembanks (Entree)
● Jobs Service (Salad)
● Item pools (Plat Principal)
● Original v. Edited Content
(Dessert)
● Q & A (Coffee)
Dynamic Content
● Dynamic content is a form of
smart content that allows
many variations of the same
question ingredients.
● This feature must be enabled
within the Author API
initialization settings
(config > item_edit > item)
or by a Learnosity chef, if you
use the Learnosity author site.
//config > item_edit > item object
...
"item_edit": {
"item": {
"dynamic_content": true,
...
}
}
...
Dynamic Content
Data may be
added
manually, or
pasted from a
CSV recipe.
You can use
spreadsheet
apps, as well,
to generate
content for
you.
Dynamic Content
The data will
then be
automatically
transformed
into a table
(with up to
1000 place
settings) and
used to cook
questions with
table variables.
Dynamic Content
● Data is entered, much like
response boxes, from the
enabled rich and creamy text
editor.
● Data can appear in stimuli,
distractors, validation values,
and so on, and supports both
numeric and text entries.
Dynamic Content
Once enabled, data can be added at the item level, and used by any
question in that item.
Demos
Dynamic Content
Authoring demo
Multiple Itembank Sources
Consumer Consumer
Itembank
Itembank
Itembank
The Items API can access one or more itembanks owned by the
same consumer, or may be granted access to other itembanks.
Multiple Itembank Sources
/*--------------------------------------------------
| Common Items API usage
|-------------------------------------------------*/
"items": [ "Item1", "Item2"]
/*--------------------------------------------------
| Advanced Items API usage #1 – alternate item bank
|-------------------------------------------------*/
"organisation_id": 999,
"items": [ "Item1", "Item2"]
/*--------------------------------------------------
| Advanced Items API usage #2 – multiple item banks
|-------------------------------------------------*/
"items": [
{
"id": "Item1",
"reference": "Item1"
},
{
"id": "Item1",
"reference": "Item1",
"organisation_id":999
}
]
● A typical items array contains
string references.
● To specify an alternate item
bank activity-wide, simply add
an organisation_id.*
● To use multiple itembanks,
add the organisation_id at
the item level.*
* Consumer must have permission
Eyes on the Prize
What common base is often behind many of the world's
best sauces, gravies, and stews?
- Rich, “Cooking
Questions”
A good roux.
Long Running Jobs:
After you’ve called up Data API with your ingredients list
and placed your order, it then falls to the Jobs services to
cook everything up according to a recipe… these cooks can
be particularly finicky, and will stop cooking if the
ingredients are bad…
- Andrew, “Rambling
Recipes”
Long Running Jobs
Data API Jobs
Queues
Jobs
Data
Jobs
Storage
Get Jobs
Set Jobs
Services
(Recipes)
Asynchronous Data API
(Includes: Item pools)
Porter
(Easy-bake)
Adaptive Simulations
(Complicated Recipe)
Client
RequestRequest Get
Jobs
Data API
Jobs
Data
Client
Get
Jobs
Get Jobs
Some other restaurant...
Demo:
Polling the Jobs Service
Programming demo
// This is an example response from a GET request to Data API /jobs
{
"meta": {
"status": true,
"timestamp": 1493159479,
"next": 3534,
"records": 1
},
"data": [
{
"reference": "SOME_UUID",
"type": "itempool",
"status": "completed",
"results": {},
"dt_created": "2017-05-04 12:10:41",
"dt_completed": "2017-05-04 12:10:41",
}
]
}
Long Running Jobs:
Flavor Profile
Reference (Job Reference)
This will be assigned when a job gets
created, used for id purposes only
“ORDER UP!”
Type (Job Type)
Assigned; tells the asynchronous
services what process to run - the recipe
Status
Where is the job process up to:
Queued, running, completed / halted
“Is it cooked yet?”
Results
Anything of note about the job
e.g. why it was halted
Simple, abstract notes...
Long Running Jobs
The Take Away
● Uses /jobs endpoints for Data API
● Cannot create a job entry directly
● Cooking process: queued -> running -> completed / halted
● Halted jobs put content / process errors in the results object
○ Accessible by polling the job
● Data API validates bad job attributes instantly
Item pools:
If your Itembank content is like a sandwich, then there’s
no analogy I can use for Item pools that will make any
sense…
Item pools are a copy of digital content
- Andrew, “Rambling
Recipes”
● Cannot be edited or modified with authoring tools
What IS an Item pool?
● A snapshot of defined itembank content
Item pools
● Content used for the initial snapshot and any updates must
always come from an Itembank
Itembank
(What’s cookin’)
Item: CAKE
● Semolina
● Olive Oil
● Stevia
● Tofu Blend
Item: CAKE
● Flour
● Butter
● Sugar
Item pool #1
(Classic Cake)
Item: CAKE
● Flour
● Butter
● Sugar
● Egg
Item pool #2
(Non-sellout Cake)
Item: CAKE
● Flour
● Butter
● Sugar
● Egg
Item pools
When to use them?
● When you need to
preserve your menu
● When you want to
organise your dishes as
collections...
Item pools
Try to avoid...
● Recreating your feast
over and over again...
Demo:
Introducing Item pools
Programming demo
Eyes on the Prize
How many tablespoons are in 1/4 cup?
- Rich, “Cooking
Questions”
Four.
A consumer has access to its own and potentially other itembanks
Multiple Itembank Sources
Consumer Consumer
Itembank
It may also use item pools in the same way...
Item pool Item pool
Itembank
Multiple Itembank Sources
Using Item Pools
/*--------------------------------------------------
| Common Items API usage
|-------------------------------------------------*/
"items": [ "Item1", "Item2"],
"item_pool_id": "january snapshot"
/*--------------------------------------------------
| Advanced Items API usage #1 – alternate item bank
|-------------------------------------------------*/
"organisation_id": 999,
"items": [ "Item1", "Item2"],
"item_pool_id": "january snapshot"
/*--------------------------------------------------
| Advanced Items API usage #2 – multiple item banks
|-------------------------------------------------*/
"items": [
{
"id": "Item1",
"reference": "Item1"
},
{
"id": "Item1",
"reference": "Item1",
"Organisation_id":999,
"item_pool_id": "january_snapshot"
}
]
● To pull content from item
pools, simply add an
item_pool_id for an item
pool that contains the relevant
item(s).
● Single and multiple itembanks
are supported.
Before and After:
Sometimes you need to
edit a question right away
—which is fine for new
assessments.
But what do you do for
context when students
have already seen the
original version?
Original versus Edited Question Forms
Imagine this scenario:
● You have an error in a question, but it is already been
reported by students in a live assessment.
● You discover that the correction will materially alter the
context of the question so, you both want to correct the
question for new students, and preserve the original state for
reports, review modes, and tests that must be resumed.
● Introducing: render_with_captured_question
Original versus Edited Question Forms
● Saving all question data every time a student saves/submits would
be unnecessarily slow. We minimize this by passively capturing the
questions after authentication.
● Thereafter, only deltas (changes) to the responses data are saved,
reducing bandwidth and speeding up saves/submits.
● render_with_captured_question allows you to choose when
to show the original question form—as seen by the student—and
when to show the current version from the itembank.
Original versus Edited Question Forms
● When student sees
activity for the first
time, (state:initial),
use default values
(itembank form).
● When resuming/
reviewing (and for
session detail
reports) use feature
to show question
form already seen
by student.
//first time seeing assessment, current itembank content used
{
'user_id' : 'demo_student',
'session_id' : '0df55215-90de-407a-b077-7017924556d3',
'items' : ['Tut002_Item 1', 'Tut002_Item2'],
'rendering_type': 'assess',
'type' : 'submit_practice',
'activity_id' : 'demo_activity',
'name' : 'The Color Wheel',
'state' : 'initial'
};
//(excerpt)
//in resume or review mode, show form originally seen by student
...
'state' : 'initial',
'config' : {
'questions_api_init_options' : {
'render_with_captured_question': true
}
}
};
Demo:
render_with_captured_question
Programming demo
Eyes on the Prize
While boning a poularde demi désossée, who famously
said, “Now I've done it. I’ve cut the dickens out of my
finger!”
Dan Aykroyd (as Julia Child, SNL 1978)
Rich & Andrew
Any questions?

More Related Content

PPTX
Educate 2017: Customizing Authoring: How our APIs let you create powerful sol...
PPTX
Educate 2017 Hello World - reach new markets with localized and personalized...
PPTX
Educate 2017: Customizing Assessments: Why extending the APIs is easier than ...
PPTX
Educate 2017: Mining for Gold: Using advanced analytics to get more value fro...
PPTX
Powerful Generic Patterns With Django
PDF
The Django Book, Chapter 16: django.contrib
PPTX
Jquery Complete Presentation along with Javascript Basics
PPTX
SharePoint Cincy 2012 - jQuery essentials
Educate 2017: Customizing Authoring: How our APIs let you create powerful sol...
Educate 2017 Hello World - reach new markets with localized and personalized...
Educate 2017: Customizing Assessments: Why extending the APIs is easier than ...
Educate 2017: Mining for Gold: Using advanced analytics to get more value fro...
Powerful Generic Patterns With Django
The Django Book, Chapter 16: django.contrib
Jquery Complete Presentation along with Javascript Basics
SharePoint Cincy 2012 - jQuery essentials

What's hot (20)

ODP
Nagios Conference 2014 - Troy Lea - JavaScript and jQuery - Nagios XI Tips, T...
PPTX
Getting the Most Out of jQuery Widgets
PPTX
SharePoint and jQuery Essentials
PDF
Gae Meets Django
PPTX
Testing C# and ASP.net using Ruby
PDF
Django workshop : let's make a blog
PPTX
jQuery Presentation
PPTX
jQuery for web development
PPTX
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
PDF
jQuery for beginners
PPT
PDF
Learn css3
PDF
Angularjs
PDF
Javascript MVC & Backbone Tips & Tricks
PDF
jQuery Loves Developers - Oredev 2009
PDF
Django Bogotá. CBV
PDF
RequireJS & Handlebars
PDF
Django Templates
PDF
Ch9 .Best Practices for Class-Based Views
PDF
Efficient Rails Test-Driven Development - Week 6
Nagios Conference 2014 - Troy Lea - JavaScript and jQuery - Nagios XI Tips, T...
Getting the Most Out of jQuery Widgets
SharePoint and jQuery Essentials
Gae Meets Django
Testing C# and ASP.net using Ruby
Django workshop : let's make a blog
jQuery Presentation
jQuery for web development
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
jQuery for beginners
Learn css3
Angularjs
Javascript MVC & Backbone Tips & Tricks
jQuery Loves Developers - Oredev 2009
Django Bogotá. CBV
RequireJS & Handlebars
Django Templates
Ch9 .Best Practices for Class-Based Views
Efficient Rails Test-Driven Development - Week 6
Ad

Similar to Educate 2017: Today’s Special: Item versioning and dynamic content (20)

PPTX
Using Queryable State for Fun and Profit
PPTX
Xomia_20220602.pptx
PPTX
Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of ...
PDF
What can Bioinformaticians learn from YouTube?
PPTX
Integrating Your Site With Internet Explorer 8
PPTX
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
PPTX
Rolling Your Own Rank Tracking Solution (Tech SEO Connect 2024)
PDF
Webinar #29 - OpenBOM Basics: A Single Source Of Truth
PDF
Better Search With Structured Knowledge
PDF
Ten practical ways to improve front-end performance
PPTX
Continuous Quality
PPTX
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
PDF
Trunk based development
PDF
Introduction to React & Redux
PPTX
Chef Actions: Delightful near real-time activity tracking!
PDF
Designing Evolvable Web Apis With Aspnet 1st Edition Glenn Block
PPTX
IEEE p1589 'ARLEM' virtual meeting, September 9, 2015
PDF
Functional Web Development
PDF
ESWC SS 2013 - Monday Tutorial Aidan Hogan: Intro to Semantic Web
PDF
A Multimodal Learning Analytics view of HTML5 APIs: technical benefits and pr...
Using Queryable State for Fun and Profit
Xomia_20220602.pptx
Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of ...
What can Bioinformaticians learn from YouTube?
Integrating Your Site With Internet Explorer 8
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Rolling Your Own Rank Tracking Solution (Tech SEO Connect 2024)
Webinar #29 - OpenBOM Basics: A Single Source Of Truth
Better Search With Structured Knowledge
Ten practical ways to improve front-end performance
Continuous Quality
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Trunk based development
Introduction to React & Redux
Chef Actions: Delightful near real-time activity tracking!
Designing Evolvable Web Apis With Aspnet 1st Edition Glenn Block
IEEE p1589 'ARLEM' virtual meeting, September 9, 2015
Functional Web Development
ESWC SS 2013 - Monday Tutorial Aidan Hogan: Intro to Semantic Web
A Multimodal Learning Analytics view of HTML5 APIs: technical benefits and pr...
Ad

More from Learnosity (18)

PPTX
Learnosity & CenterPoint on Accessibility: The Challenge of Inclusion
PPTX
Product Spotlight Webinar: Your Guide to Analytics and Reporting
PPTX
UNIwise Presentation @ Educate 2017
PPTX
Educate 2017: Q & A Session
PPTX
Educate 2017: Enhancing edtech - why together is better
PPTX
Educate 2017: In their own words - Learnosity client success stories
PPTX
Learnosity @ ASU+GSV 2017
PPTX
Educate 2017: Inclusivity Means Opportunity: Why accessibility is a priority
PPTX
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
PPTX
Educate 2017: Quick 'n Lazy: How we keep things speedy while staying out of y...
PPTX
Educate 2017: Evolving APIs & audio with the changing web
PPTX
Educate 2017: Neverending Story: Exploring Learnosity's ongoing product evolu...
PPTX
Educate 2017 (Learnosity Developer Conference) Opening Keynote
PPTX
Company Presentation for ASU GSV 2016
PPTX
The API-ification of Education
PPTX
CloudBound K12 Presentation 2016
PDF
Creating Technology Enhanced Items: An Assessment Authoring Workshop
PDF
Atp 2016 autograding of open ended math questions
Learnosity & CenterPoint on Accessibility: The Challenge of Inclusion
Product Spotlight Webinar: Your Guide to Analytics and Reporting
UNIwise Presentation @ Educate 2017
Educate 2017: Q & A Session
Educate 2017: Enhancing edtech - why together is better
Educate 2017: In their own words - Learnosity client success stories
Learnosity @ ASU+GSV 2017
Educate 2017: Inclusivity Means Opportunity: Why accessibility is a priority
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
Educate 2017: Quick 'n Lazy: How we keep things speedy while staying out of y...
Educate 2017: Evolving APIs & audio with the changing web
Educate 2017: Neverending Story: Exploring Learnosity's ongoing product evolu...
Educate 2017 (Learnosity Developer Conference) Opening Keynote
Company Presentation for ASU GSV 2016
The API-ification of Education
CloudBound K12 Presentation 2016
Creating Technology Enhanced Items: An Assessment Authoring Workshop
Atp 2016 autograding of open ended math questions

Recently uploaded (20)

PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PPTX
Lesson notes of climatology university.
PDF
advance database management system book.pdf
PDF
Weekly quiz Compilation Jan -July 25.pdf
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PPTX
Unit 4 Skeletal System.ppt.pptxopresentatiom
PDF
SOIL: Factor, Horizon, Process, Classification, Degradation, Conservation
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
PPTX
UNIT III MENTAL HEALTH NURSING ASSESSMENT
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
LNK 2025 (2).pdf MWEHEHEHEHEHEHEHEHEHEHE
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
PPTX
CHAPTER IV. MAN AND BIOSPHERE AND ITS TOTALITY.pptx
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
Lesson notes of climatology university.
advance database management system book.pdf
Weekly quiz Compilation Jan -July 25.pdf
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Complications of Minimal Access Surgery at WLH
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
202450812 BayCHI UCSC-SV 20250812 v17.pptx
Unit 4 Skeletal System.ppt.pptxopresentatiom
SOIL: Factor, Horizon, Process, Classification, Degradation, Conservation
Orientation - ARALprogram of Deped to the Parents.pptx
UNIT III MENTAL HEALTH NURSING ASSESSMENT
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
Practical Manual AGRO-233 Principles and Practices of Natural Farming
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
LNK 2025 (2).pdf MWEHEHEHEHEHEHEHEHEHEHE
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
CHAPTER IV. MAN AND BIOSPHERE AND ITS TOTALITY.pptx
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx

Educate 2017: Today’s Special: Item versioning and dynamic content

  • 1. Rich & Andrew 12:10 – 12:50pm Today's Special: Item snapshots and dynamic content
  • 2. Rich Shupe Head Chef Business Development Engineer rich.shupe@learnosity.com Andrew Morrison Sous Chef Software Engineer - Internal Applications andrew.morrison@learnosity.com Presenters
  • 3. Today’s Special - Coming up... A menu of assessment and analytical features, including multiple itembanks, item pools, dynamic content, and a few nuances of those flavours... ● Dynamic Content (Aperitif) ● Itembanks (Entree) ● Jobs Service (Salad) ● Item pools (Plat Principal) ● Original v. Edited Content (Dessert) ● Q & A (Coffee)
  • 4. Dynamic Content ● Dynamic content is a form of smart content that allows many variations of the same question ingredients. ● This feature must be enabled within the Author API initialization settings (config > item_edit > item) or by a Learnosity chef, if you use the Learnosity author site. //config > item_edit > item object ... "item_edit": { "item": { "dynamic_content": true, ... } } ...
  • 5. Dynamic Content Data may be added manually, or pasted from a CSV recipe. You can use spreadsheet apps, as well, to generate content for you.
  • 6. Dynamic Content The data will then be automatically transformed into a table (with up to 1000 place settings) and used to cook questions with table variables.
  • 7. Dynamic Content ● Data is entered, much like response boxes, from the enabled rich and creamy text editor. ● Data can appear in stimuli, distractors, validation values, and so on, and supports both numeric and text entries.
  • 8. Dynamic Content Once enabled, data can be added at the item level, and used by any question in that item.
  • 10. Multiple Itembank Sources Consumer Consumer Itembank Itembank Itembank The Items API can access one or more itembanks owned by the same consumer, or may be granted access to other itembanks.
  • 11. Multiple Itembank Sources /*-------------------------------------------------- | Common Items API usage |-------------------------------------------------*/ "items": [ "Item1", "Item2"] /*-------------------------------------------------- | Advanced Items API usage #1 – alternate item bank |-------------------------------------------------*/ "organisation_id": 999, "items": [ "Item1", "Item2"] /*-------------------------------------------------- | Advanced Items API usage #2 – multiple item banks |-------------------------------------------------*/ "items": [ { "id": "Item1", "reference": "Item1" }, { "id": "Item1", "reference": "Item1", "organisation_id":999 } ] ● A typical items array contains string references. ● To specify an alternate item bank activity-wide, simply add an organisation_id.* ● To use multiple itembanks, add the organisation_id at the item level.* * Consumer must have permission
  • 12. Eyes on the Prize What common base is often behind many of the world's best sauces, gravies, and stews? - Rich, “Cooking Questions” A good roux.
  • 13. Long Running Jobs: After you’ve called up Data API with your ingredients list and placed your order, it then falls to the Jobs services to cook everything up according to a recipe… these cooks can be particularly finicky, and will stop cooking if the ingredients are bad… - Andrew, “Rambling Recipes”
  • 14. Long Running Jobs Data API Jobs Queues Jobs Data Jobs Storage Get Jobs Set Jobs Services (Recipes) Asynchronous Data API (Includes: Item pools) Porter (Easy-bake) Adaptive Simulations (Complicated Recipe) Client RequestRequest Get Jobs Data API Jobs Data Client Get Jobs Get Jobs Some other restaurant...
  • 15. Demo: Polling the Jobs Service Programming demo
  • 16. // This is an example response from a GET request to Data API /jobs { "meta": { "status": true, "timestamp": 1493159479, "next": 3534, "records": 1 }, "data": [ { "reference": "SOME_UUID", "type": "itempool", "status": "completed", "results": {}, "dt_created": "2017-05-04 12:10:41", "dt_completed": "2017-05-04 12:10:41", } ] } Long Running Jobs: Flavor Profile Reference (Job Reference) This will be assigned when a job gets created, used for id purposes only “ORDER UP!” Type (Job Type) Assigned; tells the asynchronous services what process to run - the recipe Status Where is the job process up to: Queued, running, completed / halted “Is it cooked yet?” Results Anything of note about the job e.g. why it was halted Simple, abstract notes...
  • 17. Long Running Jobs The Take Away ● Uses /jobs endpoints for Data API ● Cannot create a job entry directly ● Cooking process: queued -> running -> completed / halted ● Halted jobs put content / process errors in the results object ○ Accessible by polling the job ● Data API validates bad job attributes instantly
  • 18. Item pools: If your Itembank content is like a sandwich, then there’s no analogy I can use for Item pools that will make any sense… Item pools are a copy of digital content - Andrew, “Rambling Recipes”
  • 19. ● Cannot be edited or modified with authoring tools What IS an Item pool? ● A snapshot of defined itembank content Item pools ● Content used for the initial snapshot and any updates must always come from an Itembank
  • 20. Itembank (What’s cookin’) Item: CAKE ● Semolina ● Olive Oil ● Stevia ● Tofu Blend Item: CAKE ● Flour ● Butter ● Sugar Item pool #1 (Classic Cake) Item: CAKE ● Flour ● Butter ● Sugar ● Egg Item pool #2 (Non-sellout Cake) Item: CAKE ● Flour ● Butter ● Sugar ● Egg
  • 21. Item pools When to use them? ● When you need to preserve your menu ● When you want to organise your dishes as collections...
  • 22. Item pools Try to avoid... ● Recreating your feast over and over again...
  • 24. Eyes on the Prize How many tablespoons are in 1/4 cup? - Rich, “Cooking Questions” Four.
  • 25. A consumer has access to its own and potentially other itembanks Multiple Itembank Sources Consumer Consumer Itembank It may also use item pools in the same way... Item pool Item pool Itembank
  • 26. Multiple Itembank Sources Using Item Pools /*-------------------------------------------------- | Common Items API usage |-------------------------------------------------*/ "items": [ "Item1", "Item2"], "item_pool_id": "january snapshot" /*-------------------------------------------------- | Advanced Items API usage #1 – alternate item bank |-------------------------------------------------*/ "organisation_id": 999, "items": [ "Item1", "Item2"], "item_pool_id": "january snapshot" /*-------------------------------------------------- | Advanced Items API usage #2 – multiple item banks |-------------------------------------------------*/ "items": [ { "id": "Item1", "reference": "Item1" }, { "id": "Item1", "reference": "Item1", "Organisation_id":999, "item_pool_id": "january_snapshot" } ] ● To pull content from item pools, simply add an item_pool_id for an item pool that contains the relevant item(s). ● Single and multiple itembanks are supported.
  • 27. Before and After: Sometimes you need to edit a question right away —which is fine for new assessments. But what do you do for context when students have already seen the original version?
  • 28. Original versus Edited Question Forms Imagine this scenario: ● You have an error in a question, but it is already been reported by students in a live assessment. ● You discover that the correction will materially alter the context of the question so, you both want to correct the question for new students, and preserve the original state for reports, review modes, and tests that must be resumed. ● Introducing: render_with_captured_question
  • 29. Original versus Edited Question Forms ● Saving all question data every time a student saves/submits would be unnecessarily slow. We minimize this by passively capturing the questions after authentication. ● Thereafter, only deltas (changes) to the responses data are saved, reducing bandwidth and speeding up saves/submits. ● render_with_captured_question allows you to choose when to show the original question form—as seen by the student—and when to show the current version from the itembank.
  • 30. Original versus Edited Question Forms ● When student sees activity for the first time, (state:initial), use default values (itembank form). ● When resuming/ reviewing (and for session detail reports) use feature to show question form already seen by student. //first time seeing assessment, current itembank content used { 'user_id' : 'demo_student', 'session_id' : '0df55215-90de-407a-b077-7017924556d3', 'items' : ['Tut002_Item 1', 'Tut002_Item2'], 'rendering_type': 'assess', 'type' : 'submit_practice', 'activity_id' : 'demo_activity', 'name' : 'The Color Wheel', 'state' : 'initial' }; //(excerpt) //in resume or review mode, show form originally seen by student ... 'state' : 'initial', 'config' : { 'questions_api_init_options' : { 'render_with_captured_question': true } } };
  • 32. Eyes on the Prize While boning a poularde demi désossée, who famously said, “Now I've done it. I’ve cut the dickens out of my finger!” Dan Aykroyd (as Julia Child, SNL 1978)
  • 33. Rich & Andrew Any questions?

Editor's Notes

  • #2: Demoer to cover content Nuance drawn out with banter