Extend LMS With LTI Tools #USGRockEagle13

David Robinson, Georgia Gwinnett College

  • Mash up nifty tools with an Learning Management System.
  • It is a standard, so a defined protocol achieves application portability. The tool can work with any LMS the same.
  • Terms:
    • Tool Provider : the tool with its packaging.
    • Tool Consumer : the system using the tool, like D2L.
    • Context : the course or another other location with the consumer like the Org in D2L. IMS contexts need to be mapped to D2L contexts.
    • Link : is a link.
    • Roles : various systems call roles different things. The IMS roles need to be mapped to the D2L roles.
  • LTI Secret Sauce :
    • Tool admin provides link, key, and secret
    • D2L admin creates the External Learning Tool which includes the link, key, and secret.
    • Instructor adds the quick link to the tool for the course.
  • User clicks the link. Information sent to the tool provider such as user, context, role, key, and signature. User launched into the remote tool. A Single-Sign On, aka no login again.
  • Macmillan wants the admin to setup a link for every course. Impossible to sustain. McGraw-Hill one link and instructors setups the course by selecting a book.
  • Select where it will be deployed such as every Course Offering under a Course Template.
  • Open in New Window tends to work better than inside an iFrame.
  • Instructor role by default can create LTIs, even duplicates.

Import Errors

A couple issues I encountered yesterday loading XML files on Blackboard Vista 8.

siapi output says:

error invoking method in adapter, message is: cvc-complex-type.2.3: Element ‘extension’ cannot have character [children], because the type’s content type is element-only.

Means the wrong type between luminis and ims was used. I created a files.properties file which sets the import type based on the name of the file. For the luminis type, the persons records are in persons1.xml. For the ims type, the persons records are in ims_users1.xml.

webct.log says:

Message is : Authorization denied

User trying to import the file must be an institution administrator. I probably created the import user but did not enroll it as an admin. What I get for moving too fast.

The following were added 26-MAY-2010…
webct.log says:

error invoking method in adapter, message is: Deployable component is not enabled

This one is actually accurate. The Luminis Message Broker settings need to be changed so Enabled equals true. Probably the other settings are also back to defaults. This happens after most Service Pack upgrades.

webct.log says:

The learning context represented by the lc_id and lc_source parameters is not within or equal to the learning context represented by the glcid parameter. This may cause problems if the learning contexts in the XML do not specify a parent or cannot be imported directly under the instituion

The XML file only contained 1 person and 1 member record. So this must be about the sourcedid.source and sourcedid.id of that file. The student was enrolled in the section, so I guess maybe the error can be ignored?

Stalking Students

On the BLKBRD-L email list is a discussion about proving students are cheating. Any time the topic comes up, someone says a human in a room is the only way to be sure. Naturally, someone else responds with the latest and greatest technology to detect cheating.

In this case, Acxiom offers identity verification:

By matching a student’s directory information (name, address, phone) to our database, we match the student to our database. The student then must answer questions to verify their identity, which may include name, address and date of birth.

The institution never releases directory information so there are no Family Educational Rights and Privacy Act (FERPA) violations.

However, to complete the course work the student is forced to hand over the information to Acxiom, an unknown and potentially untrusted party. Why should students trust Acxiom when institutions cannot be trusted?

Due to the decentralized nature of IT departments, higher education leads all industries in numbers data breach events. Acxiom’s verification capabilities were designed so that student and instructor privacy is a critical feature of our solution. Institutions never receive the data Acxiom uses in this process. They are simply made aware of the pass/fail rates.

In other words, high education institutions cannot be trusted to handle this information. No reason was provided as to why Acxiom can be better trusted. Guess the people reading this would never check to see whether Acxiom has also had data breaches.

This Electronic Freedom Foundation response to Acxiom’s claims their method is more secure was interesting:

True facts about your life are, by definition, pre-compromised. If the bio question is about something already in the consumer file, arguably the best kind of question is about something that is highly unlikely to be in one’s consumer file and even useless commercially–like my pet’s name.

Answering these kinds of questions feels like more of violation of than a preservation of privacy.

TED Talk: Liz Coleman’s call to reinvent liberal arts education

About this talk from the TED site:

Bennington president Liz Coleman delivers a call-to-arms for radical reform in higher education. Bucking the trend to push students toward increasingly narrow areas of study, she proposes a truly cross-disciplinary education — one that dynamically combines all areas of study to address the great problems of our day.

She goes further than this blurb would indicate. She claims the drive towards professional degrees, aka “learning more and more about less and less”, results in a toxic brew dismantling Liberal Arts education. Losing this cross-disciplinary approach results in an inability to tackle the country’s and world’s problems which often require more than one discipline to understand them.

Focus on higher education as a means to a profession ignores these questions:

  • What kind of a world are we making?
  • What kind of a world should we be making?
  • What kind of a world can we be making?

Parents are sending their children to college to get a good job. Solving the world’s problems isn’t part of the American dream. Well… outside of academia.

The LMS is So Web 1.5

The claims Blackboard’s Learn 9 provides a Web 2.0 experience has bothered me for a while now. First, it was the drag-n-drop. While cool, that isn’t Web 2.0 in my opinion. A little more on track is the claim:

The all-new Web 2.0 experience in Release 9 makes it easy to meaningfully combine information from different sources. The Challenges Are Real, But So Are the Solutions

Integrating with a social network like Facebook is a start, but again, in my opinion, it still isn’t Web 2.0.

So, what is Web 2.0? I did some digging. I think the Tim O’Reilly approach meets my expectation best. He quotes Eric Schmidt’s “Don’t fight the Internet.” as well as provide his own more in depth.

Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform. Chief among those rules is this: Build applications that harness network effects to get better the more people use them. (This is what I’ve elsewhere called “harnessing collective intelligence.”) Web 2.0 Compact Definition: Trying Again

Users expect a site on the Internet to meet their needs or they eventually move on to a site which does. There are so many web sites out there providing equivalent features to those commonly found in an LMS. There is the danger of irrelevance. This is why every LMS company or group strives to continually add new features (aka innovating). The bar continually gets raised, so LMS software continually needs to meet this higher standard.

Tim additionally provides some other rules which you can see at the above link.

When an LMS reachs the point where the resources of the Internet helps people learn, then it will be a Web 2.0. As long as an expert or leader imparts knowledge on students, the LMS is still something different than Web 2.0. Sorry…. The irony? This is exactly what Michael Wesch and PLE advocates preach.

LC Oddities

IMS XML for Blackboard Vista 8:

Say Division1 exists. We want to create Group1 inside Division1. Ignore that Division1 already exists and write XML to create it again. Create Group1 with relationship tag info for Division1.

Starting with Group1 doesn’t work unless command-line overrides starting learning context to be Division instead of Group.

Luminis XML for Blackboard Vista 8:

Starting with Group1 fine because divisions are unsupported.

Don’t ever use Luminis XML as a model for IMS. Ever!

The Digital Switch

The Long Tail claims consumers, given more options, will reflect their widely varied interests. Physical stores cannot fill all of the demand, so bytes stored on disk are the fastest, cheapest method for getting stuff to consumers. We see a mostly example of this shift in the shift to digital music.

Vinyl records were the first physical music media form I used. Later, cassette tapes (1980s) and compact disc (1990s) achieved dominance. In 2001, I started the transition to digital music. There were some stumbles along the way because of technology changes and trusting vendors saying Digital Rights Management is good for consumers. At present, I only listen to digital music when using my own collection.

Digital video seems more complicated. Web sites streaming and on-demand television have the potential to fit the Long Tail model where consumers have access to insanely varied content when they want it. DVRs neither fix the when (just shift the airing to another time) or the insanely varied content. Movie rental distributors like Blockbuster and Netflix are moving toward distributing digital movies and TV shows in setups similar to on-demand. Nothing has even come close to winning.

Digital books may yet get some traction. Computers screens cause eye strain. Laptops don’t feel like a book. PDAs, Blackberrys, and other handhelds with small screens require a ton of scrolling. A recent solution to this is “epaper” which doesn’t constantly refresh. The Amazon Kindle, Barnes & Noble Nook, and Sony Reader are the biggest players. (The Long Tail is not available for the Kindle but is for the Reader. WTH?)

Remaining issues for me:

  1. Ownership is dying.
    • I really like the idea of playing music on my iPod or from CDs. I play DVDs on my computer because I can’t play my DVR stuff in a hotel. So streaming and on-demand only solutions bother me as long-term solutions. If it is easy for distributors to store it because it is just bytes, then it is easy for me to do so as well.
    • I have books from 20 years ago I can still read. Technology changes too much to depend on something I buy today working tomorrow. So maybe “renting” is a way better approach for digital media?
  2. The black markets for music and movies prove consumers want everything any time. Companies must embrace consumer demand and make it easier for consumers or suffer. I think companies changing to accommodate consumer demand is the only reason the music companies have survived. Litigation cannot solve it.
  3. Hardware investment gets expensive every few years.

My solution? Wait and see.

More IMS Import Headaches

I got this error while trying to run an XML IMS import using the WebCT / Blackboard CE/Vista siapi.sh script…

A unit of type Institution cannot have a unit of type Campus as a child.

Guess being on vacation last week spaced my neurons. Normally, I ignore Blackboard errors as meaningless. This time I listened to the error and sent myself off in the wrong direction trying to figure out what was wrong with the typevalue element of the XML was wrong. Typevalue defines the level of the context. So while my level was set to 30 in the XML, for some reason it must be ignoring it, right?

Wrong! The problem was really that the relationship.sourcedid.source was set to “DBA IMS IMPORT USG_COL” instead of “DBA SIAPI Import USG_COL”. So it was unable to find the parent object. So the error makes no sense to me now.

Can I have my two hours back?

Please verify the admin user and password

So, I got this error…

Unknown WebCT username or invalid password. Please verify the admin user and password in the IMS Settings.

I assumed the username and password were probably right. I had to find my error somewhere else.

The error turned out to be one missing character out of the 57 character long glcid. Totally my fault.

I wonder how long I would have spent dorking around with the password trying to get it work and thinking I must be typing something wrong.

Enrolling Administrators

One of the challenges of having 42 institutions is managing the administrators. (Actually we created some 12 spare institutions but why is another  post.) So my challenge was how to not drive myself insane trying to enroll the 6 same admin users to each institution. The best way in my opinion is to create the users in an IMS XML file for each institution and import the data. Creating the users was easy. Next was doing the enrollments.

Naturally, I turned to the Vista 8 Enterprise System Integration Guide on pages 66-67 and 95-96 where it describes which roles can be enrolled at which learning contexts. They go from the lowest most common enrollments at the section level up to the division level. Yeah, there was not anything for the institution level. It even had a comment before the table on pages 66-67:

NOTE: Roles not specified in the table can only be added through the Vista Enterprise administrative interface.

So, because the Institution Administrator is not listed, I could not enroll users to it through the import? It depressed me for about a week. A flash of inspiration had me check the Vista 3 documentation. Sure enough, on page 49 of the Vista 3 System Integration Guide, Institution Administrator is listed. (Admin roles at domain and server contexts, designer roles at instiution and domain contexts are also listed.)

The XML is easy enough to write. Normally, when writing this XML, I just need to refer to the SourcedId for objects I create, so I know their values. However, with this, I need to the know the SourcedId.Id for the institution.

Fortunately, we have collected the properties to a institution.properties and parse it to generate what to run at the command line. Rather than by hand copying the files into place one-by-one, I created a script to take a template, check this institution.properties and place the files in the correct place. In order to make each object unique, a portion of the SourcedId.Name was changed to the name of the destination folder.

Now I just need to add to the script a portion to change the SourcedId.Id for the Institution to the source_id value in the institution.properties. That is easy. Much easier than figuring out where to look in the documentation to find what is correct.