My Lifelong Learning Lab : High-Level Application Design Document

"What happens to assessment if everyone has a different desired outcome or a different role to play? Here we need to explore the option of engaging learners themselves, supported by personalized learning analytics -- as aspiring research scientists in the important subject of self-regulation and self-determination." J.Treviranus

What Is This Page?

This is a high-level application design document for the My Lifelong Learning Lab application, intended most specifically to provide guidance for developers working to implement it, but also of use to others working on the project and of interest to the general inclusive design community.

Since it exists on the wiki, this can be considered a living document on the state of thinking about the application design.

What Is My Lifelong Learning Lab?

My Lifelong Learning Lab (henceforth MyL3) is a web-based end-user computing application focused on supporting non-programmers in building, sharing and evolving inclusive applications based on the quantified self, open data and the general self-tracking ecosystem.

MyL3 could be used for general self-tracking purposes, but is specifically being built for applications in learning, to try and address learning differences, and to support self-reflection in learning. The term learner will frequently be used as a targeted synonym for a user of MyL3; learner is used expansively and does not refer only to students in traditional educational systems.

What Will Using MyL3 Be Like?

Four central activities inform the expected MyL3 experience, and, therefore, the required software components: Record, Reflect, Build, and Share.

Record

Learners are given tools to record what is significant to them through a wide variety of means, including but not limited to:

  • Free entry of text (example: journaling).
  • Entry from controlled vocabularies, including the ability to define their own controlled vocabularies (example: mood tracking).
  • Data derived from interactions with the system (example: preference changes) or from external systems.
  • Measurement and metrics, including the ability to define custom ones and components for tracking them (example: hours slept last night; kilometres/miles biked today; number of apples eaten today).

Reflect

Learners are given tools to reflect (at the time or later) on what they have recorded. This includes but is not limited to:

  • Annotations to existing entries, either free text or controlled.
  • Pre-built views to browse, search and summarize data, and the ability to build their own custom views.
  • The export of their data to other formats so it can be analyzed outside of MyL3.

Build

Learners are given tools to build their own tools for recording and reflection. This may include (but is not limited to):

  • Graphical interfaces for building custom components for the gathering and display of data.
  • Live-coding interfaces for users who may want greater understanding of the underlying code.
  • The ability to export their custom components and data for users who may want to develop on the system directly.

Share

Learners are given tools to share with other learners, both in terms of personal data and in terms of custom components they have built. This may include (but is not limited to):

  • Export and import functionality for both data and custom components.
  • The storage of both data and custom components as JSON, to allow them to be more easily persisted, examined and transformed.

Principles

For Learners

  • Learners will be able to use MyL3 to build their own vision of a self-reflection application, incorporating their desired mix of sources such as:
    • quantitative data
    • qualitative data
    • data incorporated from outside sources
  • Learners will be supported in bringing in outside data sources that may inform their tracking and self-reflection.
  • Learners have the right to control their own data.
  • Learners have the right to exchange their personal data with other learners.
  • Learners have the right to exchange their custom components and layouts with other learners.

For Developers

  • The fundamental goal of MyL3 is to construct a means by which learners can build their own applications to support the refinement and understanding of their own learning process, while more targeted products may be built using software components shared with MyL3 (see What Are Projects Related to MyL3? below).
  • Capacities of modularity and recomposition are especially important principles for MyL3; we are building for modularity and recomposition not only for a target audience of software developers, but for a target audience of non-programmer end users. We want to give learners the tools to choose what they track, how they track it, and how they represent, connect together and share that information.
  • MyL3 should put the power in the hands of learners individually and collectively, encourage self-reflection as well as personal data collection, and respect the uniqueness of learners. The goal is not to build a single application, but to provide a means by which learners can be assisted to bring into being their vision of an ideal application built on activities of data collection, self-reflection and collaboration.

Who Is Building It?

MyL3 is being developed by the IDRC and the Fluid community, and its underlying toolkit will be used to develop applications for the FLOE and APCP projects.

How Will It Be Built?

General Considerations for Building

User Testing and Feedback Loops

We are testing with a diverse set of learners, and incorporating their feedback into the design. Building towards a minimum viable product that will be sufficiently compelling for end user testing should be a first priority.

Power and Usability for Diverse Learners

MyL3 should strive to be friendly and welcoming to new learners (including those who do not think of themselves as learners, or as people capable of building software applications) while also having powerful capabilities for advanced use.

The focus on inclusion and diversity will require exploration of multimodal interface design and interface customization to user preference such as via UIO. The application should be fully accessible by keyboard, usable with a screen reader, and make use where possible of WAI-ARIA.

Persistence of Learner Applications and Learner Data

A application focused on learner data collection is of little use without persistent storage. In the case of MyL3, persistent storage is needed in two main areas:

  • Persistent storage of end-user design and development for their own unique vision of MyL3, including but not necessarily only:
    • Custom tracking components and corresponding data types.
    • Custom layouts of both pre-supplied and custom tracking components.
    • Custom adaptors to retrieve external data and populate a learner's instance of MyL3 with it.
  • Persistent storage of end-user data, such that it could be reconstructed in a variety of different views
    • Daily journaling.
    • Long-term examination.
    • Search views.
    • Custom user-defined queries and views.

The basic strategy will be the persistence of data as JSON, including the persistence of custom components as Infusion IoC trees that can be reconstructed and transformed as necessary. The persistence strategy therefore aligns closely with the overall application design, and with the strategy to allow a wide variety of end users to explore and exchange their custom artifacts (an example of "Harmonious Authorship from Different Representations" in action, as described in http://www.ppig.org/sites/default/files/2015-PPIG-26th-Basman.pdf)

Security and Privacy

We will take the necessary steps to support learner data security and privacy, whether in the code itself or in any deployed system.

MyL3 should not be deployed in production outside a browser-based context until we feel we have addressed potential security issues.

User Ownership of Data, Including the Right of Deletion

The system must support the secure and permanent deletion of user data, and not lay impedances in the path of this.

Specific Comments on Technology

Browser UI Layer

The browser UI layer will be built using the Fluid community's Infusion Javascript framework. It is anticipated that the gpii-binder and gpii-handlebars projects will be used to supply data binding and advanced templating functionality.

Web Tier

At first, MyL3 will exist as a client-side application to support speed of development and UX testing. The only web tier requirement should be a static means of serving the application's HTML, CSS and Javascript.

As development progresses, MyL3 will need to build out the web tier code to support persistent storage of data in a secure manner in the cloud using kettle or gpii-express.

Persistent Storage

At first, MyL3 will use browser-based storage facilitated by the PouchDB library.

As development progresses, code to persist user data and custom components to CouchDB instances in a secure manner will be added. This will also facilitate the sharing of application components and user data. PouchDB has interoperability features with CouchDB that will ease this goal.

What Are Projects Related to MyL3?

FLOE Self-Assessment Learning Toolkit

The FLOE Self-Assessment Learning Toolkit will be one exemplar application built from the MyL3 components with a focus on learner goal setting, reflection on learning style, and the integration of preference changes.

APCP Self-Assessment Dashboard

The APCP Self-Assessment Dashboard will be one exemplar application built from the MyL3 components, with a focus on allowing users of APCP-enabled systems to reflect on the experience on an ongoing basis.