Is it possible to embed interactive Jupyter (Python) notebooks into a course page so students can modify and execute Python code from within the course?
python jupiter lti
Solved! Go to Solution.
I am now able to generate a Jupyter notebook instance in a workspace. I cannot however have it successfully run as Module content. I get a "Preparing notebook ..." message with a spinning "wheel". The front end to access and develop Jupyter notebooks works. The back end for students to view content within Jupyter notebooks does not yet. I trust it will get there at some point.
@meaganmorscher2 , Due to the technical nature of this question I'm going to share it with the Canvas Developers group in the Community. They are the ones that work with this side of Canvas and should hopefully be able to help! In addition, you might consider joining the Developers group and checking out some of their other resources/information!
You can use the LTI interface as described at GitHub - mccahill/mooc-lti-jupyter: Map Coursera users (via LTI) onto a collection of Jupyter notebo...
See also the note by Jonathan Keohane at Google Groups
Hello @meaganmorscher2 ...
I wanted to check in with you because we have not heard from you since you first posted this message to the Community on March 18th. Have you had a chance to review the responses from @maguire ? If so, did those responses help to answer your question? Or, are you still looking for some help with your initial question? If one of Gerald's replies helped to answer your question, please go ahead and mark it as "Correct". However, if you still have some questions, please post those as well so that members of the Canvas Community can continue to help you with your question. For now, because we haven't heard from you in quite a while, I am going to mark your question as "Assumed Answered", but that won't prevent you or others from posting additional questions/comments related to your initial question below. I hope that is okay with you. Looking forward to hearing back from you soon, Meagan.
I'd like to follow up on this @Chris_Hofer . As a lot of educational institutions are incorporating code, particularly python, into their curriculum, it has become more and more burdensome to consistently copy/paste/test/format/reformat and so forth with all the constant switching back and forth and distributing/collecting scripts. To solve such a problem many websites have been able to integrate the Jupyter Notebooks api into their browser based apps. How would one go about setting up the library referenced by Gerald to set up such an LTI within canvas?
Hi @ryanbacastow201 ...
This is unfamiliar territory for me, so I am hopeful that someone else who knows more about Jupyter Notebooks and APIs will be able to chime in. I posted above merely to check in with the original poster to see if she has had a chance to review the replies she's received so far...because we've not heard from her since March 18th. I hope this clarifies things.
I am going bump this topic back to the top.
The ability to have interactive demos via the python ipywidgets package is a critical breakthrough. It decouples those of us in the science/engineering world from having to create demos in costly and otherwise proprietary packages (i.e. the Mathematica, Maple, MathCad, Matlab ... suite).
I want to embed a Jupyter notebook directly into a Canvas page so that my students can scroll widgets, select popups, and do real interactive demonstrations of otherwise obtuse, complex equations. It seems the only option is to engage someone with the sophistication of an IT person to set up a dedicated server.
Please push this out as a feature request. Add the Jupyter API as a toolset to Canvas.
--
JJW
@jeffrey_weimer , does Illumidesk help? Edu App Center IllumiDesk
I cannot register. I cannot log in. The Terms & Conditions page does not exist. The Privacy Policy does not exist. Is this a dead end?
Ha those links do seem to have problems! But we installed Illumidesk on our Canvas, so I know it can be done.
You can get demo credentials here, and they say they'll email you further information.
Also the Click here to Generate [key and secret] link seems to work.
Even this does not work. No email reply after a day.
For the sake of completness 🙂
Now here it is: https://www.illumidesk.com/getstarted
Any word on whether the login and registration and linked issues have been fixed?
I have been "working" with the developer. He seems to be the only one working. He said he would fix the registration issue a week ago. Still, I haven't heard back from him. I don't think this LTI is a reliable feature (yet) for use in the classroom due to his responses.
The IllumiDesk API is now available in Canvas as an External Tool. Unfortunately, the tool fails to allow me to start the API. Still troubleshooting.
(sigh)
Hi @jeffrey_weimer - we uninstalled it. Maybe we'll have to give it another try. Please let us know if you can get it to work.
As near as I can tell, the option to use IlumiDesk directly in our Canvas is at this point in time a dead end. I can set up a project and a workspace in that project. I can launch a workspace, but it does not start running immediately (and sometimes does not launch at all). Once a workspace is running, I cannot add anything to it. I get an error Bad Server or equivalent. This may or may not be a restriction of our Canvas installation ... but ... it should also be something basic enough that an end user should not have to troubleshoot it.
I am reluctant to use the on-line Demo for various reasons.
It seems now that I'll have to wait for the alpha version of IllumiDesk to get past the beta development stage. In the meantime, in a similar vein as you, I am moving IllumiDesk to an inactive position in the navigation panel.
Hi Jeffrey,
We're trying to test IllumiDesk as well and I know they did a code update yesterday that had some issues that they're still trying to work out so we're still waiting to be set up to test it out.
Did you do any research into just integrating the Jupyter Hub? I'm trying to go down that path but I'm not getting a lot of information.
Thanks,
Dean
I just tested. I can set up and start a workspace. When I try to Launch, I get a Bad Gateway error message.
At least now, the Start/Stop actions work consistently (whereas before they did not).
Hi Jeffrey,
You should reach out to IllumiDesk now, they've put in a lot of new code over the last two weeks and we were finally able to test it out pretty well and it worked great. They're still hashing out the grade transfer piece some but if you give a student a graded notebook and they submit it the integration does allow the Professor to grade it through the Canvas speed grader which does make it easier.
They're still in the pilot/beta phaze so they're always working to add new features and improve the overall experience so it's a good time to get in with them.
Thanks,
Dean
I am now able to generate a Jupyter notebook instance in a workspace. I cannot however have it successfully run as Module content. I get a "Preparing notebook ..." message with a spinning "wheel". The front end to access and develop Jupyter notebooks works. The back end for students to view content within Jupyter notebooks does not yet. I trust it will get there at some point.
> ... You should reach out to IllumiDesk now ...
Sadly, IllumiDesk has no "Contact Us" or "Join Our Beta" or "Search Our User Forums" link on their Website.
I've gotten Jupyter to work as a Module in Canvas. It seems however the set up of IllumiDesk is at this point only for students to submit assignments. I have tried to create EXAMPLES to post for the students as yet to no avail. The code that I upload is not visible to the entire class. It appears that I must upload it to each student's log-in one-at-a-time.
Absent the ability to upload notebook code and have that notebook be visible by all students in the course to run as a demonstration, the IllumiDesk option is a dead end for me.
One step at a time.
Here is a summary to date.
* I can now generate JupyterLab notebooks in a workspace using IllumiDesk.
* I can now distribute those notebooks to all students in the course.
* I cannot (easily if at all) lock the notebooks to prevent them from being deleted by any random student in the course.
* (I can lock cells from editing and deleting by editing the cell meta-data -- but any tech-inclined student can modify this in the IllumiDesk UI and destroy the file for everyone else down the line)
So, I am still trying to find a way to distribute (interactive) notebooks in a locked-down environment in Canvas where they can be run but not altered or deleted. The inability to lock a file fully may be a current failing of JupyterLab and not IlumiDesk. Certainly, the "roll your own meta-content lock codes for cells" approach to JupyterLab distributions belies an attitude that "we are coders, and you should be too". This is definitely not warm and fuzzy when it comes to making the entire process clear for the non-tech-inclined. The JupyterLab project seems to be going astray of that goal in my humble opinion.
FWIW, my brute force default approach going forward is to just post the raw .nb file and recommend the students should download it to run it themselves. I sometimes also make a short video of the interactive code and post it as a companion demo.
Hi Jeffrey,
Thank you for sharing all of this information. We're in a similar spot with trying to improve the workflow between Jupyter and Canvas. These are the options I've been exploring:
Product | Maturity | Cost | Integration | Hosted | Website |
JupyterHub | Open Source | $0 Software VMHosting Fees | Enterprise Auth, Storage, Customizable | Local | github.com/jupyterhub/jupyterhub |
Azure Notebooks | Preview | $0 Optional Azure DSVM integration requires credits | O365 Accounts Login, GitHub (Possibility of OneDrive w/Canvas in Future) | Cloud | notebooks.azure.com |
Anaconda Enterprise | Mature, Enterprise | Paid, Contact Sales | Robust Enterprise Management Tools | Local | |
MyBinder.org | Beta | $0 | GitHub | Cloud | Mybinder.org |
CoCalc.com | Hosting Edu Courses Since Fall 2013 | Paid, many pricing tiers available, per-course, based on size and resources | Built-in Grading Instruction Workflow | Cloud | CoCalc.com |
Illumidesk.com | Very New, Small, Immature? | Paid, Contact Sales, Trial | LTI w/ Canvas Runs Notebooks Directly in Canvas | Cloud | Illumidesk.com |
Google Collaboratory | Since 2014, Research | $0 | Google Drive w/ Canvas | Cloud | colab.research.google.com |
Thank you for the summary table.
My requirements with Jupyter labs in Canvas are interactive demos (live widgets), ease of use (plug and play), and restricted access (load and lock).
I’ve had ongoing exchanges with IllumiDesk. They are interested in this use-case.
Sorry for bumping an old post, but do you/anyone here know the current status of IllumiDesk? I am having trouble getting in contact with anyone there through posted links (many attempts at getting demo credentials haven't yielded anything). If IllumiDesk isn't currently active, does anyone have a preferred alternative with Canvas integration?
Hi Sarah,
This is Greg from IllumiDesk. I replied to your request yesterday but perhaps my email went to your spam folder. Feel free to reach out to us via the Chat widget on our home page or via email at hello@illumidesk.com.
Thanks!
Hi Greg,
Just seeing your emails now and will respond there. Thanks for reaching out!
Currently preparing Jupyter notebooks for a course next winter. If it works plan to include them on Canvas. Great work!
I'm also interested in the same use case Jeffrey. We've settled on CoCalc for now because it seems more robust. We'll manage the assignments on the CoCalc side and import grades into Canvas, but I'd really prefer to manage everything in the fashion that Illumidesk promises. Please let us know what you find.
Another solution to consider is Vocareum. It provides each student with Jupyter notebook and has LTI 1.1 and 1.3 integration with Canvas. It supports an autograder also and passes assignment grades from Vocareum to Canvas gradebook. It does have a cost per student and they offer some volume pricing. They also support other languages besides python as well -- R, C++, others.
I could not find the solution people mentioned on this thread. Can anyone let me know where I can find the solution?
My question: how to embed a Jupyter (Python) notebook on Canvas?