CC import of Assignments

160 views
Skip to first unread message

David Lippman

unread,
Jun 1, 2012, 12:11:53 PM6/1/12
to canvas-l...@googlegroups.com
Hi,

I run an LTI 1.1 compliant tool that exports Common Cartridge files as a way to bring a large number of LTI links into the LMS.  My links return grades via LTI 1.1 outcomes, so I'd really like for Canvas to treat these LTI links as gradeable items.  As far as I can tell, in Canvas this means creating an Assignment item based on the LTI URL.

I exported a course from Canvas and attempted to replicate the assignment_settings.xml stuff used to indicate an assignment, but it appears that Canvas's import ignores those unless it thinks the entire import is a Canvas-specific import file.  So my question is:  Is there a way to get Canvas to create an assignment from a regular CC?  If not, what is required to trick Canvas into processing my CC like a Canvas-specific import?   I'd really prefer not to have to replicate the entirety of a Canvas export if possible, as that kind of defeats the purpose of CC.

Thanks,
David Lippman
IMathAS / MyOpenMath.com

Bracken Mosbacker

unread,
Jun 1, 2012, 12:35:34 PM6/1/12
to canvas-l...@googlegroups.com
Unfortunately CC has no concept of an assignment in 1.1, so when we import CC packages we don't create any assignments. 

When we export our courses the packages are compliant CC as well, so other systems are able to import them. As you saw, we throw a bunch of custom XML in a specific folder that other systems import will just ignore. You can "trick" Canvas to import your CC package as a canvas-flavored CC package by having these two files: "course_settings/syllabus.html" and "course_settings/course_settings.xml"  ( You can see the code for deciding that here: https://github.com/instructure/canvas-lms/blob/stable/lib/canvas/migration/package_identifier.rb )

You should then be able to mimic the assignment xml you mentioned to get LTI assignments. However, if you're using the Organization part of the manifest to set up a course flow, that will be ignored by canvas since it will instead try to use the custom meta-data for the course modules. If you're just creating assignments/tools though, this won't be too much of a concern.

I'm generally in our IRC channel, if you need help along the way you can hop on there and I can talk you through some of the problems you might have. (#canvas-lms on freenode)

I can think of a somewhat nice way we could treat this in CC 1.2. In 1.2 you can flag a resource as an assignment, and if that resource has a "dependency" on an LTI config resource then we could automatically set that up as an assignment that launches the dependent tool. The CC spec doesn't say that's what you're suppose to do, but that could be a nice convention we could try to get people to implement. (This would take a code change in Canvas, but I think it sounds like a great feature)

We could also do that for CC 1.1 (create an assignment if there is a tool dependency), but that makes me a bit uncomfortable since the 1.1 spec doesn't have an 'assignment' flag. So I'd prefer not to do that because it seems unexpected to me.

-bracken

David Lippman

unread,
Jun 1, 2012, 4:13:18 PM6/1/12
to canvas-l...@googlegroups.com
Thanks for the suggestions - I'll give it a try.

Ideally I would love it if I could include some sort of custom parameter in the LTI config XML indicating a points possible that would trigger the LMS to treat the LTI item as a gradeable item (the behavior of which varies from LMS to LMS, but in Canvas would mean treating it as an assignment). The idea came up in the IMS forums, but they were in a hurry to get the specs published, so it didn't get included. The idea was to include something like:
<blti:extensions>
  <lticm:property name="outcome">10</lticm:property>
</blti:extensions>

I might have to wait for LTI 1.2 before we can really make good on the "write once, use everyone" promise of LTI, at least in conjunction with CC.  It's amazing how different each LMS's implementation of LTI is, especially in handling CC imports.

David Lippman

Bracken Mosbacker

unread,
Jun 1, 2012, 5:18:19 PM6/1/12
to canvas-l...@googlegroups.com
That's a good idea to support, but it's a bit strange in cases where the LTI tool might be matching by domain name or one that's is meant to be used for multiple launches with different parameters. I found the thread you mentioned in the IMS forums and posted some thoughts.

Since there doesn't seem to be a consensus on a generic extension flag for everyone to use yet I wouldn't want to do an extension without a vendor specified. I'm definitely willing to add a canvas-specific flag on an LTI config to specify that an assignment should be created. 

My idea of having the dependency indicate an assignment should be created won't work though because the CC spec limits what types can depend on what. 

-bracken

David Lippman

unread,
Jun 1, 2012, 7:38:13 PM6/1/12
to canvas-l...@googlegroups.com
I'll add some thoughts on the IMS forum.  I've actually emailed a bit with Brian about my frustrations with the CC/LTI user experience on Canvas.

-David

David Lippman

unread,
Jun 1, 2012, 7:52:42 PM6/1/12
to canvas-l...@googlegroups.com
Well, I tried adding in the syllabus and course_settings, and it must have worked, because it went from processing as a IMSCC to failing with an error :)  Unfortunately I don't have a Canvas development server set up to diagnose the error properly, so I think I'll give up for now, and hope that we can find a way in the future (like using a custom parameter) to trigger assignment creation. 

-David

Bracken Mosbacker

unread,
Jun 1, 2012, 10:29:38 PM6/1/12
to canvas-l...@googlegroups.com
If you send it to me I can look into it and let you know how to tweak it to get it to work. (or point me to your course and I can check it out)

If there are any other issues with Canvas' CC handling feel free to bring them up either here or just by emailing me. We're definitely open to suggestions for improvement.

-bracken
Reply all
Reply to author
Forward
0 new messages