1 of 29

Let the student activity streams flow

Sakai CLE and Tincan.api

Alan Berg

Universeteit de Amsterdam

A.M.Berg@uva.nl

Aaron Zeckoski

Unicon, Inc.

azeckoski@unicon.net

2 of 29

Agenda

  • Introductions
  • What is Tincan API?
  • Risks and benefits�
  • Overview of the features in Sakai CLE
  • Implementation details
  • Where can you help
  • Questions and sometimes answers.�
  • Extra time: Lessons learned from PIWIK BasicLTI LA dashboard

3 of 29

University of Amsterdam

It has its origins in the Athenaeum Illustre (1632) and, with almost 30,000 students, over 5,000 employees and an annual budget of 600 million euros, is one of the largest general research universities in Europe.

Is a campus University, with buildings spread out over the whole of Amsterdam

4 of 29

 Unicon  + AZ

Reputation based 

Open source 

Higher education 

IT consulting services

   Not a product vendor

Trusted partner

Customized solutions

Project management

Community engagement

Project and team support

Open Source Support

Active community members

Engineering / Development

Deployment / Hosting

Aaron Zeckoski (AZ)

  • Software Architect
  • Core committer
  • CLE / Kernel team
  • Former CLE TCC Chair
  • Sakai since 2004
  • Inaugural Sakai Fellow
  • Charlotte NC US

5 of 29

What is the experience API

  • Gathers student activity in a secure repository
  • Standard protocol
  • REST like service for writing and querying
  • Can act as the glue for Learning Analytics Projects
  • Good introduction at: http://tincanapi.com/overview/

6 of 29

The basic architecture

Learning

Record Store

Mobile

Devices

Other

LMS A

LMS X

Dashboard

Application

7 of 29

Scalable dashboards using BasicLTI

Learning

Record Store

All Other enabled

Sakai CLE

Dashboard

Application

BasicLTI

  • Scalable
  • Lazy coupling
  • Has the potential to work across applications

8 of 29

Tincan API protocol

http://tincanapi.com/statements-101/

JSON :actor verb object context extensions etc.

{� "actor": {� "name": "Sally Glider",� "mbox": "mailto:sally@example.com"� },� "verb": {� "id": "http://adlnet.gov/expapi/verbs/experienced",� "display": {"en-US": "experienced"}� },� "object": {� "id": "http://example.com/activities/solo-hang-gliding",� "definition": {� "name": { "en-US": "Solo Hang Gliding" }� }� }�}

9 of 29

Risks and benefits

Benefits

  • Decouples activity streams from specific software
  • Standards approach
  • Scalable - But {the LRS market needs to mature}
  • Structured data - But {depends on what you send}
  • Works well with BasicLTI dashboards
  • Cross cutting concern that we can work on as a community
  • Clean data for research
  • Growing market enthusiasm

10 of 29

Risks and benefits

Risks

  • Security
  • Requires thinking about legal Privacy and ethics issues
  • Still early on in its maturity model
  • Requires an initial investment
  • Data in the cloud. Prefer a private cloud and federation.
  • Concerns about the scalability of the reference implementation.

11 of 29

Plug number one:

Unicon and Amsterdam working towards enabling tincan API

in Sakai CLE

Community, Community, Community

We will ask if anyone is interested in helping out later in this presentation.

12 of 29

Experience API

in Sakai CLE

13 of 29

Experience API in Sakai CLE

Goal

Create an API which can use a variety of learning record implementations (possibly multiple ones at a time) which will allow for future implementations and also can allow tools and other parts of Sakai to register LRS activities in a centralized way.

Provide an internal integration with the experience API (http://tincanapi.com/overview) which is suitable for inclusion in the Sakai and covers core functionality.

14 of 29

Experience API in Sakai CLE

Kernel API

Added a kernel API in current Sakai CLE trunk which allows tools or other parts of Sakai to call the API and register a learning statement (basically a learning event).

KNL-1024

org.sakaiproject.event.api.LearningResourceStoreService

void registerStatement(LRS_Statement statement, String origin);

15 of 29

Experience API in Sakai CLE

Base Service

  • The kernel contains a base service which will locate providers and delegate statement registrations to them.
  • The base service spins up a separate thread for each provider so registration of statements will not impact the thread where they are registered.
  • It handles filtering, logging, and basic validation of statements centrally so each provider does not have to also do this.

16 of 29

Sakai CLE Implementation Details

17 of 29

Sakai CLE Implementation details

TincanApi Provider

An implementation of the LearningResourceStoreProvider which has been tested against Rustici and ADL.net LRSs. Developed to be compatible with 1.0 (and somwhat 0.95) versions of the API.

Source code is available here:

https://source.sakaiproject.org/svn/msub/unicon.net/tincanapi-provider/trunk/

Installation instructions are in the README

18 of 29

Sakai CLE Implementation details

Flexibility

The provider mechanism allows many possible mechanisms for working with LRS statements. (Embedded LRS in Sakai, Local backup storage of statements, etc.)

The tincanapi provider can also be instantiated multiple times via Spring if LRS data should be sent to multiple tincanapi compatible LRSs.

The provider can handle Basic Auth and OAuth methods of authentication.

19 of 29

Sakai CLE Implementation details

Configuration

# URL to the tincan server�# Default: https://cloud.scorm.com/... (this is a test account)�lrs.tincanapi.url=https://url/to/your/tincan/server/api/path�# Timeout for requests to the tincan server (in ms)�# Default: 5000 (5 seconds)�#lrs.tincanapi.request.timeout=10000�## LRS Authentication�# This will use OAuth if configured OR Basic Auth if OAuth is not setup,�# the Auth config is required so if these are both blank then the provider will fail to startup�# Basic Auth header value: base64(username + ":" + password)�# Default: 50ZLHZXM0Q:crCPCRQCoqiQN9rkliIJlLiVzk0CjsuDc52mik29 (matches the default URL above)�lrs.tincanapi.basicAuthUserPass=UUUUUU:PPPPPP�# OAuth settings (no defaults)�# OAuth shared (consumer) key�#lrs.tincanapi.consumer.key=XXXXXX�# OAuth secret�#lrs.tincanapi.consumer.secret=YYYYY�# OAuth realm�#lrs.tincanapi.realm=ZZZZZ�

20 of 29

Live

DEMO

21 of 29

How do I get involved?

22 of 29

How do I get involved?

How can I try it?

  • Build Sakai Locally

svn co https://source.sakaiproject.org/svn/sakai/trunk/

cd trunk

mvn clean install -Ppack-demo

In pack/pack-demo is the demo package

  • Add Tincanapi Provider (see previous slides)
  • Install the reference LRS and register a user

https://github.com/adlnet/ADL_LRS

  • Configure via sakai/local.properties

lrs.tincanapi.basicAuthUserPass=id:pass

lrs.tincanapi.url=http://localhost:8000/xapi/statements

#log.config.count=1

#log.config.1=DEBUG.org.sakaiproject.lrs.expapi.TincanapiLearningResourceStoreProvider

23 of 29

How do I get involved?

How can I contribute?

  • Start using in your Learning Analytics Project
  • Add to the capabilities
  • Create a template dashboard that others can reuse
  • Give feedback in the tincan API community
  • Test, test, test
  • Donate resources to the community. Plenty of nice to have features waiting for you.
    • Better coverage
    • Better management
    • etc

24 of 29

Questions?

Contact Alan Berg <A.M.Berg@uva.nl>

25 of 29

More Information

If there is extra time...

26 of 29

Lessons learned from PIWIK BasicLTI LA dashboard.

  • Motivation - Look a typical LA project and see if Tincan API adds value
  • POC, sponsored by Surf.
  • Works, but parts are superseded by the emergence of tincan API
  • Enhance web analytics using the open source PIWIK project.
  • BasicLTI for an LMS agnostic dashboard
  • Simple real time recommendations.
  • Backs off to a web analytics report if needed.

27 of 29

Lessons learned from PIWIK BasicLTI LA dashboard.

28 of 29

Lessons learned from PIWIK BasicLTI LA dashboard.

29 of 29

Lessons Learned

  • Data is less clean than using Tincan API
  • No need to write extra enriching tracking code if LMS is enabled.
  • BasicLTI is great for dashboards. You are not stuck to one LMS.
  • Learning Record Store great for dashboards. The activity stream is not stuck in a silo.
  • PIWIK delivers great Web analytics, but learning analytics are not just web analytics
  • Analytics can be lightweight for recommendations but heavy weight for clustering problems.