LTIHub

Note: LTIHub is now superseded by by CodeCheck Assignments, which works both with and without a learning management system.


You have a learning management system (Moodle, Canvas, Blackboard, whatever). You aren't just giving multiple-choice and fill-in-a-word quizzes, but you have quiz questions that involve writing programs, working with equations, drawing diagrams, whatever. Can you put those questions into a test bank and into quizzes like you can multiple-choice and fill-in-a-word questions? Sadly, not in your learning management system.

But aren't learning management systems extensible through third-party apps? Yes, they are, through the LTI standard, but there is a fatal flaw. Every external (LTI) activity is a separate assignment, with its own column in the gradebook. You want to give a quiz with five programming questions or twenty math problems? Sorry, that's five or twenty columns in the grade book.

That's the problem that LTIHub aims to solve. LTIHub lets you make a single assignment in your learning management system that aggregates multiple external questions. Your students don't know that—they just get one page with all the questions, and there is just one grade.

Two assignment types are supported:

Working with LTIHub

LTIHub is a “LTI Provider” and thus has two essential parameters:

In every learning management system that supports LTI, you can define an LTI assignment with the given launch URL and consumer key/shared secret. When you visit the assignment for the first time as an instructor, then LTIHub will realize that it doesn't know anything about it, and it will ask you to provide a list of URLs for the problems in the assignment. Once you have configured the assignment, it will be given an ID, and students can visit it and do their work.

It is a good idea for your students to have a basic understanding how the system works. You can point them to this link. The key point that you need to tell your students is to click on the “Record my score” button when they are done.

Setup Instructions

The exact setup details depend on the learning management system.

Moodle

  1. Turn editing on
  2. Add an activity or resource
  3. Select “External Tool” and click “Add”
  4. Provide an activity name (such as “Coding Practice #1”)
  5. Under “Launch/cartridge URL”, click on “Show more...”
  6. Fill in the “Secure tool URL”, “Consumer Key”, and “Shared Secret” fields
  7. Set any other assignment properties (points, due date, and so on) in the usual way
  8. Click on “Save and display”
  9. You get a text area labeled “Provide the problem URLs to be used for this assignment:”. Paste in URLs for CodeCheck or “Horstmann Interactivities”, such as

    https://codecheck.io/files/17091917124r0yck5moj6w8j7rckda27s98
      (your own CodeCheck problem)
    https://codecheck.io/files?repo=wiley&problem=ebook-bjeo-7-ch04-sec02_05-cc-2
      (a CodeCheck problem from Big Java/C++/Python)
    https://www.interactivities.ws/ebook-bjlo-1-ch09-sec1-rearrange-2.xhtml
      (an interactive problem from Big Java/C++/Python)
    

    Caution: These must be https URLs

    Click on “Save Assignment”, then “Next”.

    The assignment is now configured for students.

Canvas

Before adding an assignment, you need to add LTIHub as an “app”. Follow these steps:

  1. Select Settings, then Apps, then “View App Configurations”, then “+App”.
  2. Select “By URL” for the configuration type. Provide LTIHub as the name. Enter the consumer key and shared secret. For the Config URL, provide
    https://play.codecheck.ws/lti/config
  3. Confirm the dialog, and LTIHub is added as an app.

Once you have done this, you can define assignments. For each assignment, follow these steps:

  1. In the assignment group to which you want to add the assignment, click on “+Assignment”
  2. Give the assignment a name
  3. Set the number of points
  4. Set the Submission type to “External Tool”
  5. After “Enter or find an External Tool URL”, click on “Find”
  6. Pick the LTIHub app and click “Select”
  7. You get a text area labeled “Provide the problem URLs to be used for this assignment:”. Paste in URLs for CodeCheck or “Horstmann Interactivities”, such as

    https://codecheck.io/files/17091917124r0yck5moj6w8j7rckda27s98
      (your own CodeCheck problem)
    https://codecheck.io/files?repo=wiley&problem=ebook-bjeo-7-ch04-sec02_05-cc-2
      (a CodeCheck problem from Big Java/C++/Python)
    https://www.interactivities.ws/ebook-bjlo-1-ch09-sec1-rearrange-2.xhtml
      (an interactive problem from Big Java/C++/Python)
    

    Caution: These must be https URLs

  8. Click on “Next”

  9. You get the exact same dialog that you used to pick LTIHub. Click “Select” again.
  10. If you carefully look at the “Enter or find an External Tool URL” URl, you will find that it now has a ?id=XXX suffix.
  11. Complete setting up the assignment in the usual way.

Blackboard Ultra

  1. In your course, select + to add content, then Create, Teaching Tools with LTI connection.
  2. Configuration URL: https://play.codecheck.ws/lti/assignment
  3. If the app hasn't been installed globally, you must provide the consumer key and shared secret
  4. Check “Create gradebook entry for this item”
  5. Click Save. You will then be led to the screen for configuring the assignment.
  6. You get a text area labeled “Provide the problem URLs to be used for this assignment:”. Paste in URLs for CodeCheck or “Horstmann Interactivities”, such as

    https://codecheck.io/files/17091917124r0yck5moj6w8j7rckda27s98
      (your own CodeCheck problem)
    https://codecheck.io/files?repo=wiley&problem=ebook-bjeo-7-ch04-sec02_05-cc-2
      (a CodeCheck problem from Big Java/C++/Python)
    https://www.interactivities.ws/ebook-bjlo-1-ch09-sec1-rearrange-2.xhtml
      (an interactive problem from Big Java/C++/Python)
    

    Caution: These must be https URLs

    Click on “Save Assignment”, then “Next”.

    The assignment is now configured for students.

Adding the app as an administrator