SlideShare a Scribd company logo
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

PDF
New Patterns for ADL Architectures and Learning Designs
PPTX
cmi5-xapi-camp
PPTX
xAPI Intro for Instructional Designers Learning While Working 2019
PPTX
DevLearn 801 xAPI: Where it's at & How to Get Started
PPTX
xAPI Ecosystem xAPI Party May 2019
PPT
The Impacts of the Tin Can API: How 8 Companies are Using the Tin Can API (xAPI)
PPTX
Intro to xAPI & Ecosystem - xAPI Party Dec 2018
PDF
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
New Patterns for ADL Architectures and Learning Designs
cmi5-xapi-camp
xAPI Intro for Instructional Designers Learning While Working 2019
DevLearn 801 xAPI: Where it's at & How to Get Started
xAPI Ecosystem xAPI Party May 2019
The Impacts of the Tin Can API: How 8 Companies are Using the Tin Can API (xAPI)
Intro to xAPI & Ecosystem - xAPI Party Dec 2018
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016

Similar to Unleashing Interaction - XAPI and Moodle (20)

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

More from Christian Glahn (20)

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

Recently uploaded (20)

PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Introduction to Artificial Intelligence
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Digital Strategies for Manufacturing Companies
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
history of c programming in notes for students .pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
Introduction to Artificial Intelligence
Navsoft: AI-Powered Business Solutions & Custom Software Development
Transform Your Business with a Software ERP System
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Digital Strategies for Manufacturing Companies
Odoo Companies in India – Driving Business Transformation.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Wondershare Filmora 15 Crack With Activation Key [2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
history of c programming in notes for students .pptx
PTS Company Brochure 2025 (1).pdf.......
How Creative Agencies Leverage Project Management Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
top salesforce developer skills in 2025.pdf

Unleashing Interaction - XAPI and Moodle