SlideShare a Scribd company logo
1 of 40
Download to read offline
FHO Fachhochschule Ostschweiz
Unleashing Interaction
XAPI and Moodle
SAMOO Meeting Luzern
12. Feb. 2016
@phish108 @htwblc
XAPI and Moodle
§  XAPI Plug-in
§  Exposes Moodle Logs as XAPI Streams
(Read only LRS)
§  PowerTLA Drop-In
§  Full XAPI LRS with Document Support
§  Configurable User Identification
§  Authorization Layer for Tools and Users
§  Client-side API
my baby!
Why do I want XAPI?
§  Document student activities (E-Portfolios)
§  More flexible assessment
§  Gamification
§  Personalised OER
§  Tool integration
LMS plugins are too complicated
for building cool solutions
ActivityActivityity Activity Ac
Activity Streams and Statements
Context
Actor
Verb
Object
Result
TimeAuthority
UUID
The Basic XAPI Process
Senses
learner activity
Makes VLEs
respond
Sensor Networks
Senses
learner activity
Access a resource
Take a test
Post on a forum
Update a Wiki page
Upload an assignment
LMS Sensors
click
scroll
comment
align
Senses
learner activity
GPS
Light conditions
Display orientationNoise levels
Temperature
Tactile (shake, turn)
More Sensors
NFC
Unlock a resource
Example Actuators
Makes VLEs
respond
Evaluate test scores
Provide an assignment
Update Portfolio
Message updates
Provide feedback
XAPI allows us to implement crazy
complex learning environments
VLEDigital Library
Mobile App VLE
LRS
LRS
ensor
twork
Mobile App
LRS
ensor
twork
Mobile App
LRS
Local
Sensor
Network
Mobile App
LRS
Local
Sensor
Network
VLE
LRS
VLE
LRS
VLE
LRS
Sensors
Output
Actuators
Mobler Cards App LMS E-Portfolio
System
LRS LRS LRS
nsor
twork
E-Portfolio
System
LRS
E-Portfolio
System
LRS
SCORM
Mobile App
LRS
Local
Sensor
Network
Simulation
LRS
Local
Sensor
Network
VLE
LRS
VLE
LRS
E-Portfolio
System
LRS
HR-
Mangement
System
LRS
SCORM
PLE V
LRS
LR
V
LR
CMI /
LRS
CMI /
LRS
Content
Interaction Script
Proxy Content
DRM
Just a few settings I toyed with
simple is best ...
XAPI & Interactive Content
Educational Resource
LRS
ActuatorSensor
XAPI & Interactive Content
You have to code interactive resources
HTML and JavaScript are mandatory
Moodle Theme
Client XAPI
Moodle UI API
Educational
Resource
Resource Logic
(JavaScript)
Moodle Server
Moodle
Logging
API
XAPI LRS
Moodle
Services
Moodle Auth
API
Educational Design and
Privacy Issues with Moodle
Moodle does not offer a privilege system that
supports student collaboration
§  Logs are tool- and teacher-centric
§  Each activity can have separate privilege sets
§  Privileges are not object orientated
§  Privileges are agnostic towards social relations
Hence, PowerTLA has no collaboration support
A Word on
SCORM-style CMI
AICC CMI (Computer Managed Instruction)
New CMI-5 defines XAPI extensions and runtime
requirements
§  Not always smartly, but it’s mainly for aviation people …
New CMI-5 concerns no longer client APIs
Let’s have a closer look at the
PowerTLA Client XAPI
PowerTLA Client XAPI
§  Event-based API discovery
§  Abstracts and exposes XAPI Logic
§  Context management
§  Documents
§  Provides meaningful default values
§  Actors (default: yourself)
§  Objects (default: the page you’re on)
§  Long-running and nested activities
PowerTLA Client XAPI
Interfaces (WIP)
lrs.setActor(actorObject)	
lrs.unsetActor()	
	
//	Context	Management	
lrs.startContext(contextObject)	
lrs.endContext(contextObject)	
lrs.clearContext()	
contextObject	=	lrs.getContext()	
	
//	Activity	Management	
actionUUID	=	lrs.startAction(verb,	[objectURL])	
actionUUID	=	lrs.recordAction(verb,		
																														[objectURL],		
																														[result])	
	
lrs.finishAction(actionUUID,	[result])	
	
activityStream					=	lrs.getStream()	
activityStatement		=	lrs.lastAction()	
	
//	State	Documents	
lrs.setStateDoc(actionUUID,	activityStateData)		
activityStateData	=	lrs.getStateDoc(actionUUID)	
lrs.ready(function())	
	
lrs.enableAutoFinish()	
lrs.disableAutoFinish()	
	
//	LRS	Communication	
lrs.fetchMyActions(filter,	function(stream))	
lrs.fetchUserActions(filter,	function(stream))	
lrs.fetchActions(filter,	function(stream))	
	
lrs.fetchState(function(stateDoc),		
															objectId,	actionUUID,	actorObject)	
	
lrs.push()	
lrs.pushStream()	
lrs.pushState()	
	
//	Client	Persistency	
lrs.store()	
lrs.load()		
lrs.flush()
PowerTLA turns the good old
Page-Module into Activities
The
magic
happens
here
Simple Interaction Tracking
<p	class="clickTarget	btn-large	btn-primary	span4"	type="button">Click	here</p>	
	
<script	type="text/javascript"	src="/tla/js/rsd.js"></script>	
<script	type="text/javascript"	src="/tla/js/lrs.js"></script>	
	
<script	type="text/javascript">	
var	verbClick	=	'http://xapi.ch/verb/gui/click';	
	
lrs	&&	lrs.ready(function()	{	
					//	init	sensor	
				$(".clickTarget").click(sensorFunction);	
});	
	
function	sensorFunction()	{	
				lrs.recordAction(verbClick);	
				lrs.push();	
}	
</script>	
Load the
PowerTLA
API
Resource
Logic
Normal
HTML
Simple Interaction Tracking
<p	class="clickTarget	btn-large	btn-primary	span4"	type="button">Click	here</p>	
	
<script	type="text/javascript"	src="/tla/js/rsd.js"></script>	
<script	type="text/javascript"	src="/tla/js/lrs.js"></script>	
	
<script	type="text/javascript">	
var	verbClick	=	'http://xapi.ch/verb/gui/click';	
	
lrs	&&	lrs.ready(function()	{	
					//	init	sensor	
				$(".clickTarget").click(sensorFunction);	
});	
	
function	sensorFunction()	{	
				lrs.recordAction(verbClick);	
				lrs.push();	
}	
</script>	
Verify that
PowerTLA
is available
Init the
Interaction
Sensor
Record the
Interaction
Tell
Moodle
Our XAPI
Verb
Reusing Past Interactions
var	verbClick	=	'http://xapi.ch/verb/gui/click';	
	
lrs	&&	lrs.ready(function()	{	
					lrs.fetchMyActions({verb:	verbCLick,	object:	document.location.href},	
																							actuatorFunction);	
				$(".clickTarget").click(sensorFunction);	
});	
	
function	actuatorFunction()	{	
				$("#myActionCount").text(lrs.getStream().length);	
}	
	
function	sensorFunction()	{	
				lrs.recordAction(verbClick);	
				actuatorFunction();	
				lrs.push();	
}	
	
Fetch the personal
activities from Moodle
Filter only our
XAPI verb
Filter only the
current page
Look at the
activities
Update the
actuator
Our XAPI Click Counter
Actuator
updated with
every visit
Click
Sensor
The Activity Stream
[{"id":"3909970f-0b50-401f-9e12-0511435b8721","timestamp":"2016-02-12T09
:30:54.869Z","actor":{"objectType":"Agent","openid":"https://mdl-
tst.htwchur.ch/tla/restservice/identity/profile.php/user/
YTxpSdh"},"verb":{"id":"http://xapi.ch/verb/gui/click"},"object":
{"id":"https://mdl-tst.htwchur.ch/mod/page/view.php?
id=51"},"stored":"2016-02-12T10:30:55+0100"},{"id":"ba0f8385-a642-499f-
ab4b-3a8e4707412d","timestamp":"2016-02-12T10:48:34.900Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/
restservice/identity/profile.php/user/YTxpSdh"},"verb":{"id":"http://
xapi.ch/verb/gui/click"},"object":{"id":"https://mdl-tst.htwchur.ch/mod/
page/view.php?id=51"},"stored":"2016-02-12T11:48:35+0100"},
{"id":"d17760fc-db1b-4ce6-900c-387f6a3bb24f“,	
"timestamp":"2016-02-12T13:52:52.711Z",	"actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/
restservice/identity/profile.php/user/YTxpSdh"},"verb":{"id":"http://
xapi.ch/verb/gui/click"},"object":{"id":"https://mdl-tst.htwchur.ch/mod/
page/view.php?id=51"},"stored":"2016-02-12T14:52:51+0100"}]	
Let‘s look at this
statement
The Statement more Readable
{
"timestamp" : "2016-02-12T09:30:54.869Z",
"object" : {
"id" : "https://mdl-tst.htwchur.ch/mod/page/view.php?id=51"
},
"id" : "3909970f-0b50-401f-9e12-0511435b8721",
"actor" : {
"openid" : "https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/YTxpSdh",
"objectType" : "Agent"
},
"stored" : "2016-02-12T10:30:55+0100",
"verb" : {
"id" : "http://xapi.ch/verb/gui/click"
}
},
The page we
looked at
PowerTLA controlled
Student-ID
Our XAPI verb
All this has been generated by this JavaScript
			lrs.recordAction(verbClick);	
Student
Time
Moodle
Time
Use Activities from other
Resources
var	verbClick	=	'http://xapi.ch/verb/gui/click';	
	
lrs	&&	lrs.ready(function()	{	
					lrs.fetchMyActions({verb:	verCLick,	object:	document.location.href},	
																							actuatorFunction);	
});	
function	actuatorFunction()	{	
				var	activityStream	=	lrs.getStream();	
				$("#myActionCount").text(activityStream.length);	
					//	we	can	now	analyse	the	individual	objects	in	the	activityStream	...	
}	
Remove the
object filter to
get all clicks
The Result are Cross
Activity Analytics
The Activity Stream
[...,	
				{	"id"	:	"3a09a0d3-471d-4d82-8213-842c37996697",	
						"actor"	:	{	
							"objectType"	:	"Agent",	
							"openid"	:	"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/YTxpSdh"	
						},	
						"verb"	:	{"id"	:	"http://xapi.ch/verb/gui/click"},	
						"object"	:	{"id"	:	"https://mdl-tst.htwchur.ch/mod/page/view.php?id=50"},	
						"stored"	:	"2016-02-11T21:43:21+0100",	
						"timestamp"	:	"2016-02-11T20:43:21.694Z"},	
				{	"id"	:	"3909970f-0b50-401f-9e12-0511435b8721",	
						"actor"	:	{	
							"objectType"	:	"Agent",	
							"openid"	:	"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/YTxpSdh"	
						},	
						"verb"	:	{"id"	:	"http://xapi.ch/verb/gui/click"},	
						"timestamp"	:	"2016-02-12T09:30:54.869Z",	
						"stored"	:	"2016-02-12T10:30:55+0100",	
						"object"	:	{"id"	:	"https://mdl-tst.htwchur.ch/mod/page/view.php?id=51"}},	...]	
Click on Page 50
Click on Page 51
Complex Interactions
– Nested Activities
mainUUID	=	lrs.startAction(mainActionVerb);	
lrs.startContext({"statement":	mainUUID});	
	
lrs.recordAction(nestedActionVerb);	
	
lrs.recordAction(nestedActionVerb);	
	
lrs.recordAction(nestedActionVerb);	
	
lrs.endContext({"statement":	mainUUID});	
lrs.finishAction(mainUUID);	
	
lrs.push();	
Automaticaly link all
following actions to
the main activity
Wrap things up and
gather the results
Complex Interactions In Practice
Brainstorming+Categorisation Activity
The activity is just1 interactive Moodle page
Complex Interactions In Practice
Step 1: Brainstorming
Students enter
their ideas
Students mark
when they are
ready to proceed
Complex Interactions In Practice
Step 2: Categorisation
Student ideas are
expanded with
predefined terms
Students drag&drop
the ideas into
predefined categories
Students mark
when they are
finshed
Complex Interactions In Practice
Step 3: Feedback
Immediate
Feedback and
Results
Provided Ideas
Categorisation
Accuracy
Complex Interactions In Practice
Step 4: Flow-control
(when visiting the page again)
Students can
perform the activity
only once
Students &
teachers can look
at the results
The Activity Stream
[{"id":"e3118f32-3753-4700-bb6a-4e1b5f939e13","timestamp":"2016-02-13T02:08:05.844Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/creative/ideacontribute"},"object":{"id":"https://
mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
b6d2-88883b291d66"},"result":{"extensions":{"http://mobinaut.io/xapi/result/input":"ETH	LET"}}},
{"id":"c905bac8-89d9-470d-94e7-44ad88744e76","timestamp":"2016-02-13T02:08:10.059Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/creative/ideacontribute"},"object":{"id":"https://
mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
b6d2-88883b291d66"},"result":{"extensions":{"http://mobinaut.io/xapi/result/input":"Moodle	Café"}}},
{"id":"cc5f752f-7e5c-4360-91f9-d28fd1d3df43","timestamp":"2016-02-13T02:08:14.750Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/reflective/ideaassociate"},"object":
{"id":"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
b6d2-88883b291d66"},"result":{"extensions":{"http://mobinaut.io/xapi/result/associate":
["block1","SAMOO"]}}},{"id":"3457f69f-fcf1-4bd0-b0fb-
a72923b6bbd5","timestamp":"2016-02-13T02:08:16.157Z","actor":{"objectType":"Agent","openid":"https://
mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-FDKeRx"},"verb":{"id":"http://
mobinaut.org/xapi/verb/reflective/ideaassociate"},"object":{"id":"https://mdl-tst.htwchur.ch/mod/page/
view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-b6d2-88883b291d66"},"result":{"extensions":
{"http://mobinaut.io/xapi/result/associate":["block2","Moodle	Moots"]}}},{"id":"35010d0b-a5fd-4154-
bebb-c77d79f0f448","timestamp":"2016-02-13T02:08:17.245Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/reflective/ideaassociate"},"object":
{"id":"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
b6d2-88883b291d66"},"result":{"extensions":{"http://mobinaut.io/xapi/result/associate":["block3","HTW	
BLC"]}}},{"id":"147037b6-8b0d-492e-a21a-80ff5378c774","timestamp":"2016-02-13T02:08:18.446Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/reflective/ideaassociate"},"object":
{"id":"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
b6d2-88883b291d66"},"result":{"extensions":{"http://mobinaut.io/xapi/result/associate":
["block2","Blackboard"]}}},{"id":"ec488973-
a632-4347-85a5-1a0b6aa21f96","timestamp":"2016-02-13T02:08:19.805Z","actor":
{"objectType":"Agent","openid":"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-
FDKeRx"},"verb":{"id":"http://mobinaut.org/xapi/verb/reflective/ideaassociate"},"object":
{"id":"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"},"context":{"statement":"b68b9c22-de8b-4b4c-
11 activities
recorded in
the example
Nested Activities from Step 1
{	
						"id"	:	"e3118f32-3753-4700-bb6a-4e1b5f939e13",	
						"object"	:	{	
									"id"	:	"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"	
						},	
						"result"	:	{	
									"extensions"	:	{	
												"http://mobinaut.io/xapi/result/input"	:	"ETH	LET"	
									}	
						},	
						"actor"	:	{	
									"openid"	:	"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-FDKeRx",	
									"objectType"	:	"Agent"	
						},	
						"verb"	:	{	
									"id"	:	"http://mobinaut.org/xapi/verb/creative/ideacontribute"	
						},	
						"timestamp"	:	"2016-02-13T02:08:05.844Z",	
						"context"	:	{	
									"statement"	:	"b68b9c22-de8b-4b4c-b6d2-88883b291d66"	
						}	
			}	
Student
Input Result
Link the framing
activity via its ID
The kind of
activity
lrs.startContext()		
creates the context for
all following activities
Passed to
lrs.recordAction()
Nested Activities from Step 2
{	
						"id"	:	"147037b6-8b0d-492e-a21a-80ff5378c774",	
						"object"	:	{	
									"id"	:	"https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"	
						},	
						"result"	:	{	
									"extensions"	:	{	
												"http://mobinaut.io/xapi/result/associate"	:	["block2“,"Blackboard“]	
									}	
						},	
						"verb"	:	{	
									"id"	:	"http://mobinaut.org/xapi/verb/reflective/ideaassociate"	
						},	
						"actor"	:	{	
									"openid"	:	"https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-FDKeRx",	
									"objectType"	:	"Agent"	
						},	
						"context"	:	{	
									"statement"	:	"b68b9c22-de8b-4b4c-b6d2-88883b291d66"	
						},	
						"timestamp"	:	"2016-02-13T02:08:18.446Z"	
			}	
Categorisation Result
Link the framing
activity via its ID
The kind of
activity
The Framing Activity
{
"result" : {
"duration" : "PT0H0M21S"
},
"actor" : {
"openid" : "https://mdl-tst.htwchur.ch/tla/restservice/identity/profile.php/user/-FDKeRx",
"objectType" : "Agent"
},
"object" : {
"id" : "https://mdl-tst.htwchur.ch/mod/page/view.php?id=53"
},
"id" : "b68b9c22-de8b-4b4c-b6d2-88883b291d66",
"verb" : {
"id" : "http://mobinaut.org/xapi/verb/creative/brainstormassign+state"
},
"timestamp" : "2016-02-13T02:08:05.842Z"
}	
The ID for the result
document
The verb tells us that
there is a state
document
lrs.startAction()	&
lrs.finishAction()
automatically produce the
activity‘s duration
The Activty State Document
{	
			"correcterms":3,	
			"ownterms":["ETH	LET","Moodle	Café"],	
			"association":{	
							"block1":[{"value":"SAMOO","match":1},	
																	{"value":"Moodle	Partners","match":0}],	
							"block2":[{"value":"Moodle	Moots","match":0},	
																	{"value":"Blackboard","match":1},	
																	{"value":"Moodle	Café","match":0}],	
							"block3":[{"value":"HTW	BLC","match":0},	
																	{"value":"ETH	LET","match":0},	
																	{"value":"Moodle	User	Association","match":1}]	
			}	
}	
Assessment
Result
Brainstorming
Result
Correct
Categorisation
Wrong
Categorisation
The state document storeswhat the activity needs
Conclusions
§  XAPI allows us to create lightweight activities
for Moodle
§  The PowerTLA Client XAPI simplifies the
activity tracking for interactive resources
§  The most complex part is the interaction design
not the experience tracking
FHO Fachhochschule Ostschweiz
Christian Glahn
Blended Learning Center
@phish108 @htwblc
http://www.htwchur.ch	http://xapi.ch	
https://github.com/phish108/PowerTLA

More Related Content

Similar to Unleashing Interaction - XAPI and Moodle

xAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
xAPI Vocabulary - Improving Semantic Interoperability of Controlled VocabulariesxAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
xAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
Advanced Distributed Learning (ADL) Initiative
 
2004 01 10 Chef Sa V01
2004 01 10 Chef Sa V012004 01 10 Chef Sa V01
2004 01 10 Chef Sa V01
jiali zhang
 
The LEAP2A approach to portfolio interoperability
The LEAP2A approach to portfolio interoperabilityThe LEAP2A approach to portfolio interoperability
The LEAP2A approach to portfolio interoperability
Simon Grant
 
Apps thatworkandflow
Apps thatworkandflowApps thatworkandflow
Apps thatworkandflow
Koen Handekyn
 

Similar to Unleashing Interaction - XAPI and Moodle (20)

Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3
 
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
 
xAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
xAPI Vocabulary - Improving Semantic Interoperability of Controlled VocabulariesxAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
xAPI Vocabulary - Improving Semantic Interoperability of Controlled Vocabularies
 
Why apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics FrameworksWhy apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics Frameworks
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
 
How xAPI is going to bring "electricity" to learning !
How xAPI is going to bring "electricity" to learning !How xAPI is going to bring "electricity" to learning !
How xAPI is going to bring "electricity" to learning !
 
2004 01 10 Chef Sa V01
2004 01 10 Chef Sa V012004 01 10 Chef Sa V01
2004 01 10 Chef Sa V01
 
EPUB 3 and xAPI
EPUB 3 and xAPIEPUB 3 and xAPI
EPUB 3 and xAPI
 
xAPI 101 - webinar slides
xAPI 101 - webinar slides  xAPI 101 - webinar slides
xAPI 101 - webinar slides
 
The LEAP2A approach to portfolio interoperability
The LEAP2A approach to portfolio interoperabilityThe LEAP2A approach to portfolio interoperability
The LEAP2A approach to portfolio interoperability
 
Function as a Service
Function as a ServiceFunction as a Service
Function as a Service
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric Apps
 
Apps thatworkandflow
Apps thatworkandflowApps thatworkandflow
Apps thatworkandflow
 
Jug Poitou Charentes - Apache, OSGi and Karaf
Jug Poitou Charentes -  Apache, OSGi and KarafJug Poitou Charentes -  Apache, OSGi and Karaf
Jug Poitou Charentes - Apache, OSGi and Karaf
 
ATD ICE 2018 Building the xAPI Ecosystem Houck & Torrance
ATD ICE 2018 Building the xAPI Ecosystem Houck & TorranceATD ICE 2018 Building the xAPI Ecosystem Houck & Torrance
ATD ICE 2018 Building the xAPI Ecosystem Houck & Torrance
 
Hadoop Frameworks Panel__HadoopSummit2010
Hadoop Frameworks Panel__HadoopSummit2010Hadoop Frameworks Panel__HadoopSummit2010
Hadoop Frameworks Panel__HadoopSummit2010
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
RavenDB overview
RavenDB overviewRavenDB overview
RavenDB overview
 

More from Christian Glahn

More from Christian Glahn (20)

Personalisierung, Learning Design und Automatisierung mit Moodle
Personalisierung, Learning Design und Automatisierung mit MoodlePersonalisierung, Learning Design und Automatisierung mit Moodle
Personalisierung, Learning Design und Automatisierung mit Moodle
 
Digitale Lehre jenseits von Zoom und Moodle
Digitale Lehre jenseits von Zoom und MoodleDigitale Lehre jenseits von Zoom und Moodle
Digitale Lehre jenseits von Zoom und Moodle
 
Dialog und Prüfen im Flipped Classroom mit grossen Gruppen
Dialog und Prüfen im Flipped Classroom mit grossen GruppenDialog und Prüfen im Flipped Classroom mit grossen Gruppen
Dialog und Prüfen im Flipped Classroom mit grossen Gruppen
 
Adaptive Learning Experiences across Devices: Leveraging Multi-Modal Learnin...
Adaptive Learning Experiences across Devices: Leveraging Multi-Modal Learnin...Adaptive Learning Experiences across Devices: Leveraging Multi-Modal Learnin...
Adaptive Learning Experiences across Devices: Leveraging Multi-Modal Learnin...
 
Future Skills - Targetting curriculum innovation
Future Skills - Targetting curriculum innovationFuture Skills - Targetting curriculum innovation
Future Skills - Targetting curriculum innovation
 
Flexibel in neuen Kontexten lernen
Flexibel in neuen Kontexten lernenFlexibel in neuen Kontexten lernen
Flexibel in neuen Kontexten lernen
 
Mobiles Lernen gestalten
Mobiles Lernen gestaltenMobiles Lernen gestalten
Mobiles Lernen gestalten
 
The Multiple Apps and Devices of Swiss Freshmen University Students
The Multiple Apps and Devices of Swiss Freshmen University StudentsThe Multiple Apps and Devices of Swiss Freshmen University Students
The Multiple Apps and Devices of Swiss Freshmen University Students
 
Getting Ready for the EC-TEL Doctoral Consortium
Getting Ready for the EC-TEL Doctoral ConsortiumGetting Ready for the EC-TEL Doctoral Consortium
Getting Ready for the EC-TEL Doctoral Consortium
 
Design Thinking for Technology Enhanced Learning
Design Thinking for Technology Enhanced LearningDesign Thinking for Technology Enhanced Learning
Design Thinking for Technology Enhanced Learning
 
Designing Mobile Inquiry-based Learning Activities: Learners' Agency and Tech...
Designing Mobile Inquiry-based Learning Activities: Learners' Agency and Tech...Designing Mobile Inquiry-based Learning Activities: Learners' Agency and Tech...
Designing Mobile Inquiry-based Learning Activities: Learners' Agency and Tech...
 
Design Thinking for Learning Analytics
Design Thinking for Learning AnalyticsDesign Thinking for Learning Analytics
Design Thinking for Learning Analytics
 
Learning Design for Teachers in a Hurry
Learning Design for Teachers in a HurryLearning Design for Teachers in a Hurry
Learning Design for Teachers in a Hurry
 
Integrating Native Mobile Apps into Institutional Ed-Tech Ecosystems
Integrating Native Mobile Apps into Institutional Ed-Tech EcosystemsIntegrating Native Mobile Apps into Institutional Ed-Tech Ecosystems
Integrating Native Mobile Apps into Institutional Ed-Tech Ecosystems
 
How short can you make learning?
How short can you make learning?How short can you make learning?
How short can you make learning?
 
Getting Ready for the ECTEL Doctoral Consortium, Part 2
Getting Ready for the ECTEL Doctoral Consortium, Part 2Getting Ready for the ECTEL Doctoral Consortium, Part 2
Getting Ready for the ECTEL Doctoral Consortium, Part 2
 
Getting Ready for the ECTEL Doctoral Consortium, Part 1
Getting Ready for the ECTEL Doctoral Consortium, Part 1Getting Ready for the ECTEL Doctoral Consortium, Part 1
Getting Ready for the ECTEL Doctoral Consortium, Part 1
 
10th eduhub days, 18 years Swiss Virtual Campus - looking back and looking fo...
10th eduhub days, 18 years Swiss Virtual Campus - looking back and looking fo...10th eduhub days, 18 years Swiss Virtual Campus - looking back and looking fo...
10th eduhub days, 18 years Swiss Virtual Campus - looking back and looking fo...
 
Augmented Learning for the Digital Campus
Augmented Learning for the Digital CampusAugmented Learning for the Digital Campus
Augmented Learning for the Digital Campus
 
Blended Learning Konkret
Blended Learning KonkretBlended Learning Konkret
Blended Learning Konkret
 

Recently uploaded

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

Unleashing Interaction - XAPI and Moodle