Learning Management System (LMS) and Jupyter

2,959 views
Skip to first unread message

Jonathan Keohane

unread,
Sep 1, 2015, 3:37:13 PM9/1/15
to Teaching with Jupyter Notebooks
I teach physics at Hampden-Sydney College, and I this is my second semester using iPython notebooks for my student homework.  I used Canopy, because it works on Windows and Mac has very good training on demand videos.    I have my students install Canopy, and download my assignment files, and upload their files.     I grade them one at a time by opening them on my computer.  

Like many other colleges, we are considering changing our Learning Management System, from Blackboard to something else.   The one we are most looking at is Canvas (http://www.instructure.com/), but we are open minded to which one we pick.

As I am on our committee, what I want to know is this.  Which LMS options are most likely to integrate themselves with Jupyter?

Has the Jupyter project been approached by any of these companies, such as Canvas, Blackboard, Moodle, or any others? 

MinRK

unread,
Sep 1, 2015, 3:48:54 PM9/1/15
to Jonathan Keohane, Teaching with Jupyter Notebooks
On Tue, Sep 1, 2015 at 9:37 PM, Jonathan Keohane <jkeo...@hsc.edu> wrote:
I teach physics at Hampden-Sydney College, and I this is my second semester using iPython notebooks for my student homework.  I used Canopy, because it works on Windows and Mac has very good training on demand videos.    I have my students install Canopy, and download my assignment files, and upload their files.     I grade them one at a time by opening them on my computer.  

Like many other colleges, we are considering changing our Learning Management System, from Blackboard to something else.   The one we are most looking at is Canvas (http://www.instructure.com/), but we are open minded to which one we pick.

As I am on our committee, what I want to know is this.  Which LMS options are most likely to integrate themselves with Jupyter?

I'm afraid that I'm not familiar enough with LMSs to know the answer to this one. But the properties of an LMS that are most likely to play well with Jupyter is probably having a REST API for interacting with the system, or some other programmatic way. If the only way to do things is clicking buttons on a web page, then there is very little that can be done.

Has the Jupyter project been approached by any of these companies, such as Canvas, Blackboard, Moodle, or any others? 

I don't believe any of these companies have interacted with Jupyter to my knowledge, but we would be happy to hear from them.

-MinRK

--
You received this message because you are subscribed to the Google Groups "Teaching with Jupyter Notebooks" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jupyter-educat...@googlegroups.com.
To post to this group, send email to jupyter-...@googlegroups.com.
Visit this group at http://groups.google.com/group/jupyter-education.
To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter-education/be122355-e197-4599-989b-0cefaeeccb84%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jess Hamrick

unread,
Sep 1, 2015, 3:49:28 PM9/1/15
to Jonathan Keohane, Teaching with Jupyter Notebooks
Hi Jonathan,

As far as I know, we haven’t had discussions with any LMS companies (at least I haven’t).

In terms of integration with nbgrader specifically, I’m at Berkeley, and Berkeley uses Canvas, which means there is a slightly higher chance that there will be Canvas integration at some point. I do want to add to nbgrader the ability to specify a custom “grade exporter” or something that will actually communicate with the LMS and export grades to it, which (assuming the different LMS options all have REST apis, which I know Canvas does) should hopefully make it relatively easy for different people to write plugins for the different systems.

Cheers,
Jess


Donna Kidwell

unread,
Sep 2, 2015, 3:44:42 AM9/2/15
to Teaching with Jupyter Notebooks
Hello -

We're looking at Jupyter as part of a technology platform for a large project sharing engineering materials across 20 universities in Norway and East Africa.  We anticipate need integration with Moodle, Canvas, and at least best practices in systems like Sakai.  Most of the LMS community supports LTI, SCORM and have APIs.  We're particularly interested in exploring xAPI.

Jonathan, what features are you looking for in an integration?  We would want to manage authentication, gradebooks and to take advantage of the analytics available in a system like Canvas for the LMS side of learner's activities.  Are there other points of integration you'd want to have?

Thanks!
Donna

Kyle Mandli

unread,
Sep 2, 2015, 10:09:31 AM9/2/15
to Teaching with Jupyter Notebooks
Hi Jonathan,

I am not sure if this is any help but I am planning to use Jupyter notebooks alongside Canvas this semester with some integration work. I would be happy to share my experiences afterwards.

Kyle
> To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter-education/7807072a-9b15-447e-9205-a347033d86f8%40googlegroups.com.

Michael Amigot

unread,
Sep 2, 2015, 10:53:20 AM9/2/15
to Teaching with Jupyter Notebooks
Jonathan, 

I'd recommend you to explore the Open edX software. There are great Python related courses at edx.org and at Open edX instances. In particular, I would suggest you this course of GW, http://openedx.seas.gwu.edu/courses/GW/MAE6286/2014_fall/about, from Prof. Lorena Barba. She is a great advocate of open source in education and python. 

Hope it helps.

Michael

Jonathan Keohane

unread,
Sep 3, 2015, 2:18:11 PM9/3/15
to Teaching with Jupyter Notebooks
Thanks so much for the great replies!   Yes, it would be wonderful to hear everyone's experiences.

What I want is much like what Donna mentioned, but most importantly that it be very easy to use from within whatever LMS the college or university uses.

So, for example, say I am teaching a class and want to give a problem set.  I could make my Jupyter notebook with its starting code and questions, and the student could then just work on it through his or her browser.   When it is done, I could grade it right there too, and then the grade would go right into my gradebook.  I can do this now with discussion board questions, wikis, and the like.

From the point of view of a small college, like where I teach, the most important thing is that it is hosted along with the LMS, wherever that is, and that it is easy to use.  My upper-level classes tend to be small, but I teach 3 or 4 classes per semester, so having the infrastructure taken care of is very important.   I also want my colleagues to use it too, so the students can standardize on a particular platform.  This will only happen if it does not take too much extra time to modify their courses.

I most want to be able to see a work in progress, so if I get a call from a student saying:  "Hey professor can you help me with my problem set?", I can open my browser and look at exactly what the student did.  Then we can have a meaningful conversation over the phone, while both looking at a web browser.   

I gather that from the point of view of a large university, the benefit of automatic grading becomes more important.   If I had 100 students in a class, and some smart TAs who are good at coding, I would automate as much as possible.  But where I am, I want my colleagues over in math, chemistry, and economics to start using it too, so that it is not so strange that I expect it of them in my class.

Thanks again,  Jonathan

William Stein

unread,
Sep 3, 2015, 9:49:24 PM9/3/15
to Jonathan Keohane, Teaching with Jupyter Notebooks
On Thu, Sep 3, 2015 at 11:18 AM, Jonathan Keohane <jkeo...@hsc.edu> wrote:
> What I want is much like what Donna mentioned, but most importantly that it
> be very easy to use from within whatever LMS the college or university uses.
>
> So, for example, say I am teaching a class and want to give a problem set.
> I could make my Jupyter notebook with its starting code and questions, and
> the student could then just work on it through his or her browser. When it
> is done, I could grade it right there too, and then the grade would go right
> into my gradebook. I can do this now with discussion board questions,
> wikis, and the like.
>
> From the point of view of a small college, like where I teach, the most
> important thing is that it is hosted along with the LMS, wherever that is,
> and that it is easy to use. My upper-level classes tend to be small, but I
> teach 3 or 4 classes per semester, so having the infrastructure taken care
> of is very important. I also want my colleagues to use it too, so the
> students can standardize on a particular platform. This will only happen if
> it does not take too much extra time to modify their courses.
>
> I most want to be able to see a work in progress, so if I get a call from a
> student saying: "Hey professor can you help me with my problem set?", I can
> open my browser and look at exactly what the student did. Then we can have
> a meaningful conversation over the phone, while both looking at a web
> browser.

You might find it interesting to try out SageMathCloud

https://cloud.sagemath.com

It does *not* do what you say is most important: "but most importantly
that it be very easy to use from within whatever LMS the college or
university uses."

However, it does every other thing you listed above. In particular,
you can create a course (in a project, click +New, then "Manage a
course"). Once you make a course you can assign Jupyter notebooks to
the students in the course by putting them in a directory and add that
directory as an assignment. Each student you add to the course gets
their own project (a Linux account), which you own and they
collaborate on. You can see exactly when each student last used their
project, what notebooks they are currently working on, you can
collaboratively edit notebooks with them (like google docs, but not as
good with Jupyter yet), then collect assignments, grade them, record
grades, return the assignments, and also export all grades to either a
Python or CSV file.

SageMathCloud is commercially supported and hosted, but it is also
completely open source.

But again it currently has no LMS integration at all, so you might
just want to look at it to see something that satisfies some of your
constraints.

- William



--
William (http://wstein.org)

Doug Blank

unread,
Sep 4, 2015, 7:31:31 AM9/4/15
to Teaching with Jupyter Notebooks
Jonathan,

We are in a similar situation at my school. We are tackling all of the issues individually, but haven't gotten to the grading portion yet. Some notes:

* We have written a bit of a hacky, but functional, "Submit" button/nbextension. It copies the student's opened notebook into a teacher's ~/Submissions/ subfolder of the student's choice. See: https://bitbucket.org/ipre/calico/src/master/notebooks/nbextensions/calico-submit.js

* Based on that code, we also have a "Publish" button/nbextension. It just copies the opened notebook to a system's "public html" directory (for use by the publichandler, next point). See: https://bitbucket.org/ipre/calico/src/master/notebooks/nbextensions/calico-publish.js

* We have written a publichandler.py for the jupyterhub app that acts like a mini nbviewer built into jupyterhub. It renders notebooks in the "public html" directories. See: https://github.com/dsblank/jupyter.brynmawr/blob/master/jupyterhub/publichandler.py It also is designed to allow students copy notebooks directly into their own space. See it render a sample page here: https://athena.brynmawr.edu/jupyter/hub/dblank/public/CS110%20Intro%20to%20Computing/2015-Spring/Lectures/Robot%20Control.ipynb

All of these are "first draft" functional prototypes that work, but need to be rewritten to be more robust and better designed (eg, some hard-coded paths, too many if/elses, etc). It would be great to work with others to make this code better.

Regarding grading, it would be fairly trivial to have a "Grade" button that would allow entry of a score/grade, append it to, say, a CSV file, from the Submissions entry. That could be imported into something like Moodle---I think.

More importantly (for us) is the ability to add grading comments to a notebook, and be able to return the graded notebook to the student. I imagine a column next to cells where an instructor could comment on the text or code. Currently, I print out the student's submission, write on it, manually enter grades, and pass it back. nbgrader could also be useful, but with about 30 students per class at a small school, I am more involved in the grading process.

At my college, Bryn Mawr, we just deployed a jupyterhub server for all of the sciences. This year, we will be using it for teaching Computer Science, Physics, and Biology. It runs on a Beowulf-style cluster, but we aren't currently doing anything fancy (such as distributing loads, or parallel computing). Our sysadmin has built packages for all of jupyter/ipython3 for CentOS release 6.3. If anyone is interested in the RPMs, let me know.

-Doug
 

Thanks again,  Jonathan

Jonathan Keohane

unread,
Sep 9, 2015, 10:03:36 PM9/9/15
to Teaching with Jupyter Notebooks

I just got the following E-mail from someone who works at Canvas:


    Jupyter is new and there's no indication that we've explored the idea of embedding it within Canvas.  Our Canvas Product team indicates that it would definitely be a candidate for a LTI integration.


     A customer would have to gain access to an installation of Jupyter Notebook and in an ideal world, they'd build a LTI tool for authenticated access by the end user into it.  Info on developing to the LTI specification can be found in the resources on eduappcenter.com.


     In the mean time, Redirect (LTI available within Canvas) would be a useful approach and if the notebook is secured behind a SSL certificate, could open up in Canvas like many of our other integration examples (no mixed-content browser message).  


The redirect could be added as a Module item (as shown in the image above) and/or a link via Course Navigation.


APIs would be another option, too, but that would be a completely custom dev project whereas LTI is standards based and could be used in any LMS platform.  It would depend on the Jupyter development community to build it out, though.


I hope this helps! Right now the best way to use Jupyter Notebook would be through the Redirect Tool unless Jupyter (or the Jupyter community) builds the LTI tool for integration with Canvas or another LMS. 

jupyter_canvas.png

Pat Miller

unread,
Dec 8, 2015, 6:22:27 AM12/8/15
to Teaching with Jupyter Notebooks
We are exploring adapting an LTI integration to Sakai based on the following github contribution.  We use Sakai LMS and the beauty of LTI is that what works for Cousera should work for Sakai and other LMSs that support LTI. We are planning to host Jupyter in AWS for a pilot with our chemical engineering dept.


Pat

Ahmet Anil Dindar

unread,
May 7, 2016, 11:28:41 AM5/7/16
to Teaching with Jupyter Notebooks
Dear Pat,
We are intending to integrate Jupyter Hub and SAKAI in our university (Istanbul Kultur University) during the summer. I wonder your  progress in Jupyter and Sakai since last time. Is there a resource to read?

Greetings from Istanbul.

++Ahmet

Nate Aune

unread,
May 31, 2016, 1:09:08 AM5/31/16
to Teaching with Jupyter Notebooks
Hi Jonathan,

I will second what Michael said that you should definitely check out Open edX. It has LTI support so if Jupyter can be an LTI provider (or something can sit in the middle to pass the student info to Jupyter), then you could provision new notebooks for each student from within an Open edX course. 

This looks like something that could perform that translation (it's for Coursera but could probably be adapted to work with other LMSes): 

I'll also mention an open source project called Inginious which is a tool to grade your students code within a secure environment (using Docker containers). http://www.inginious.org/

It apparently integrates with Open edX and Moodle via LTI, but I haven't actually tried it yet.

Nate

Pat Miller

unread,
Aug 12, 2016, 10:34:37 AM8/12/16
to Teaching with Jupyter Notebooks
Ahmet et.al,
We continue to make some progress in adapting https://github.com/mccahill/mooc-lti-jupyter
to work with Sakai but are not there yet.  Wonder if anyone else has made progress with any other LMS.

Pat

Pat Miller

unread,
Sep 21, 2016, 11:23:20 AM9/21/16
to Teaching with Jupyter Notebooks
I have an update on the LTI investigation we have been doing in adapting https://github.com/mccahill/mooc-lti-jupyter
Because this LTI only obtains the userID and name from our Sakai environment it is not as useful as we were thinking it would be.  Since we have already implemented Google Oauth authentication with Jupyterhub, we already have a way for our students and faculty to start up their containers in Jupyterhub--all of our students have Google Gmail accounts which are authenticated through CAS.  We hope to implement Google Groups pre-populated with student rosters and instructors in the future.  Since Sakai also uses CAS, students can get to their Jupyterhub environment through a link in Sakai.

The Jupyter Oauthenticator is documented here:  https://github.com/jupyterhub/oauthenticator

Pat

On Tuesday, September 1, 2015 at 3:37:13 PM UTC-4, Jonathan Keohane wrote:
Reply all
Reply to author
Forward
0 new messages