AIRR Brain Dump

Overview

Engrade Integration

Acceptance Criteria

  • Integrate Engrade Assessments into existing products
  • Engrade has established UIs
  • Engrade exposes everything via RESTful web services
  • MHE owns Engrade, so they will accommodate our every whim
  • We can have a single experience across all apps

How hard can that be?

Engrade UI Components

Customers

  • Everyday Math 4
  • Reading Wonders (Replacing Cognero)
  • Open Court Reading
  • Music

Teacher-Facing Tests & Quizzes

  • Test creation and question pool management
  • Class assignments
  • Schedule tests
  • Per-test submission results
  • Access to preset test banks and question banks

How Many UIs?

Teacher-Facing Gradebook

  • Grid view
  • All students in the class
  • All assignments for the year
  • All scores for every student and every assignment
  • Drill downs for test details and standards coverage

How Many UIs?

Student-Facing Test & Quizzes

  • Grid view
  • All students in the class
  • All assignments for the year
  • All scores for every student and every assignment
  • Drill downs for test details and standards coverage

How Many UIs?

Customer Requirements

  • Wanted the Engrade UIs to launch in same window
  • Wanted to customize the look & feel
  • Some customers do not want to expose Gradebook

How Can We Embed?

  • Engrade is not componentized
  • (Some) customers would not accept a popup experience
  • Not too many options...

iFrame

  • Bad user experience
  • "seamless" attribute is the worst supported specification
  • Third-party cookie problems

Seamless iFrame

  • Eliminate scrollbars - iFrame resizes according to content size
  • CSS Injection (L&F and hiding functionality)
  • Keep alive callbacks
  • Needs to work across domains (iframe restrictions)

CSS Injection

  • Engrade had to add ids and classes to items we need to hide
  • Parent page includes CSS
mhe-engrade iframe .content h2 {
    color: #4444cc;
}

Third Party Cookies

  • https://goo.gl/O9Vjhi

Project

  • svn://srcrep.cdiapps.com/ConnectED/trunk/mhe-engrade
  • Exposed to developers via sharedwebassets-mhe
  • Documentation - http://srcrep.cdiapps.com/sites/mhe-engrade/

Data Sync

Push

Data Sync

Data

Engrade Coordination

  • Engrade UIs are powered by Engrade data
  • Engrade knows absolutely nothing about ConnectED
  • It is not data sync, it is data push
  • Proactive Push or Reactive Push?

Data Push Highlights

  • The push begins with a class (docs)
  • Class ->  School -> District (no subdistricts)
  • Class -> Teacher -> Students
  • Calling User

Data Push Lowlights

  • One call to sync a class can result in more than 50 individual HTTP requests to Engrade
  • ConnectED does not have good support to track whether push is needed
  • Push typically takes more than 10 seconds
  • Engrade has different constraints on data that are opaque to us
  • Many edge cases for failure
  • No collaboration

Authentication

Engrade SSO

  • ConnectED shim generates Engrade SSO endpoints
GET /connected/shim.do?uri=/engrade/sso/classes/M7XC4N7NOYHM297GMJXDOXL4BQ 

{
    "student_quizzes": "https://www.engradesandbox.com/user/sso-login.php
        ?uid=10000000005981833
        ×tamp=1433514066
        &nonce=413
        &token=MCwCmg
        &next=class%2Fquizzes/index-stu.php
            ?hideframe=1
            &stuid=C8YZR9Z99ZWSO82S6427D3NKBQ
            &clid=5000007032229",

    "gradebook": ...,

    "teacher_quizzes": ...
}

Custom UI

Customer Request

  • Engrade UIs are too complicated or aesthetically dissimilar from desired interfaces

Engrade Public API Access

  • Engrade APIs return data specific to the authenticated user
  • Engrade does not have the ability to authenticate on behalf of a user (aka user spoofing, runas, etc.)
  • Our only option at this time is to authenticate as the user using an Engrade password we store in cleartext in our database

Better Solution (maybe)

  • user-login
    • apikey
    • usr - username
    • pwd - password
    • remember - (Optional) remember password? (1 = Yes, 0 = No)
    • runas - username to associate with session

Reporting

Acceptance Criteria

  • Reading Wonders wants to provide data-driven recommendations to students
  • Teachers want to see students grouped by their proficiency
  • View student's response at the question level
  • iPad friendly
  • Later: support for other applications

How is Proficiency Measured?

  • Difficult to quantify proficiency vs. performance
  • Proficiency is science, performance is 3rd grade math
  • Proficiency has meaning, performance has none

MHE: The Learning Science Company

  • Educational Data Mining, Learning Science, Learning Analytics, Item Response Theory, Bayesian Knowledge Trace, Performance Factors Analysis
  • Dr. Ryan Baker is consulting with MHE
  • Internal whitepaper: https://goo.gl/l8IvZR
  • Who has a higher proficiency?

Alice

Bob

☒ ☒ ☒ ☒ ☒ ☒ ☑ ☑ ☑ ☑ 

☑ ☑ ☒ ☑ ☑ ☒ ☑ ☒ ☑ ☒ ☒

t →

Data Sources

In Priority Order

  • Engrade Assessments
  • Teacher Observations (Rubric)
  • Interactive Activities (Games, PBL)

In Delivery Order

  • Engrade Assessments
  • Interactive Activities (Games, PBL)
  • Teacher Observations (Rubric)

Architecture

Architecture

https://goo.gl/paCjmY

viz-report

  • AngularJS Component
  • Designed to be embedded into any application
  • Currently AngularJS 1.3
  • Using ui-router
  • svn://srcrep.cdiapps.com/ConnectED/trunk/viz-app

viz-report-service

  • Not started - AIRR effort
  • REST endpoints specific to needs of viz-report

report-service

  • Not started - LEAP/AIRR effort
  • General queries of LEAP data
  • PII information hydration

Reporting UI

Explorable

  • The entire UI experience is designed to be touchable
  • Instant feedback to users
  • Visual transitions and data animations
  • Using D3 and Angular
  • Meant to be a showcase to demonstrate what Columbus is capable of implementing

Documentation

  • CA Submission (compromised navigation, no working components, performance data)
    • http://goo.gl/HRSC7l
  • Full UX documentation 
    • https://goo.gl/Gfrad6
  • Screen Mockups
    • https://goo.gl/519nKc

Pseudo LTI

Reporting Data Needs

  • Reporting component will have to make LTI-like callbacks to embedding application for some data
    • Class rostering data (student names -> id)
    • Mastery threshold settings
    • Recommendations by taxon
    • Lesson and resource preview
    • Configuration data (may be specified declaratively)
  • Nice to have: actually implement as an LTI Provider

Learning Events

Acceptance Criteria

  • Set of data structures to represent student interactions with the system
  • Require events necessary to support the needs of the viz-report component

Specifications

Required Events

  • activity started
  • activity ended
  • item graded
    • question on assessment
    • challenge in a game
    • observation on a rubric
  • https://goo.gl/loEI9z

Formalized Specification

  • Began with xAPI, switched to Caliper
  • https://goo.gl/0SwVZI
  • Analytics team is the owner of schemas
  • 95% complete (need to define how to store outcome results)

Data Generator

Generator Tool

  • Developed by Chris in Node.js
  • svn://srcrep.cdiapps.com/ConnectED/trunk/viz-tools/generator

  • Simulates a year's worth of Reading Wonders assessment events for a single student

  • Extreme data sets when specifying number of districts, schools and classes

  • Mastery heuristics

  • Needs more work to match final Caliper specification

PII

Acceptance Criteria

  • No personal identifying information will be included on a learning event

Identified PII

  • districtID
  • schoolID
  • classID
  • instructorID
  • studentID

Remaining Tasks

  • Affirm with Andy Bloom (CPO) that our externalized ids will provide sufficient obscurity to satisfy PII

Learning Event Factory

Learning Event System

https://goo.gl/B6UB7e

Environmental

  • MHE Github: https://goo.gl/okuPUy
  • New JVM (Java 8, Tomcat 6)
  • Limited memory
  • Spring Boot, Groovy, Spring Data
  • Couchbase

Q3 2015

  • Integration with Reading Wonders and VSM games
  • New microservice to return all standards associated with any asset
  • Assist RW in context generation
  • Performance testing
  • Final product delivered in Q3

SensorJS

Acceptance Criteria

  • Provide third-parties with a Javascript library to make it simple for them to report their result data
  • This result data will be converted to a viable learning event

SensorJS

  • Small JS utility that will generate learning event fragments and send them to ConnectED event factory
  • MHE GitHub
    • https://goo.gl/gluPrC
  • Demo
    • https://goo.gl/OLBSQa

California Submission

Acceptance Criteria

  • Provide a working UI for California reviewers to understand how data-driven instruction will be supported in the forthcoming Reading Wonders product

Mock UI

Q2 2015 Deliverable

  • Delivered a working version of the reporting UI
  • Embedded in Reading Wonders 2.0
  • Sample data provided by RW AD
  • http://goo.gl/HRSC7l

Mock Components

  • A separate project created to house all components
  • Designed for reuse, AngularJS components
  • svn://srcrep.cdiapps.com/ConnectED/trunk/viz-ui

  • Documentation

    • http://goo.gl/5xgWMw

Sample Data

  • AD used a Google Spreadsheet to collaboratively enter data
  • https://goo.gl/9tTdCm
  • Zayeem created an add-on to export data from spreadsheet into a JSON object plugged directly into the Mock UI

AIRR Brain Dump

By James Cook

AIRR Brain Dump

  • 1,185