Every fall, I teach a course on exploratory data analysis and data visualization using Python via the Anaconda distribution and the Jupyter Notebook. This past semester, I ran the course using SageMathCloud, an online platform created by William Stein that delivers a cloud-based computational data analysis environment with access to Python, R, Julia, and several other languages. My experience with SageMathCloud was incredibly positive - I’ll go so far as to say that it is the best teaching tool I have ever used in my career. I strongly encourage you to check it out; below, I’ll outline a few reasons why.
1. SageMathCloud provides a consistent cloud-based computational environment for your course.
One of the biggest headaches in teaching technology courses or leading technology workshops is ensuring a consistent computing environment for all students. At a university, this involves working with IT to get the software installed at requisite computer labs, and/or working with students to install the software on their own computers. For a workshop, the instructor will nonetheless likely have to deal with ensuring that installation runs smoothly across different operating systems, and endeavor to keep the Python environments consistent. When using Python, Anaconda solves many of these problems; however, over the course of the semester, a package update on one computer impacts this consistency. By contrast, using SageMathCloud ensures environment consistency for all students, given that they log in and access a central Anaconda Python 3 installation. Plus - whenever I wanted a package updated or a new package installed, SageMathCloud support responded to this almost immediately.
2. SageMathCloud is affordable, and saves you from administering your own server.
Granted, many of the issues I outlined above could be handled with JupyterHub. In fact, I looked into this first; however, the costs of setting up a dedicated server for this by my university exceeded my budget for the course. Some additional searching for an alternative solution led to me to SageMathCloud - which cost only $199 for my semester-long course! Additionally, using SageMathCloud saved me from having to deal with any server administration headaches. Any technical issues we encountered during the semester - which only happened a couple of times - were solved by SageMathCloud support within an hour or two of my ticket submission.
3. SageMathCloud has outstanding learning management system functionality.
Jupyter Notebooks are widely used in the classroom, and SageMathCloud includes a variety of features to make them work even better. In SageMathCloud, an instructor can set up a “course” in which s/he can deliver course materials to students. Within the course, I can assign notebooks that I author as an instructor to students, who then interactively complete the assignments in their SageMathCloud account. Instructors can then access student’s notebooks and even chat with them while they are working on their homework - which makes debugging error messages and troubleshooting problems much easier. Plus - students’ progress is auto-saved, and the “Time Travel” feature of SageMathCloud tracks every edit made by students. On a few occasions, students accidentally deleted progress in their notebooks; the Time Travel feature recovered their work every time.
4. SageMathCloud is an open source company.
I am a big proponent of open source software, but Kenton Russell’s comments on open source development also resonate deeply with me. The open source company, in my opinion, represents a path forward here. In this model, the company offers a core open source product for free and additional features and services for a fee, and employs a paid staff working on open source development. RStudio and Mapbox are both excellent examples of this. As such, paying for services provided by open source companies helps promote open source development and contributes to the sustainability of those projects - which are reasons to teach with those products. You can view SageMathCloud’s source code at https://github.com/sagemathinc/smc.
You can sign up for a free account with SageMathCloud at https://cloud.sagemath.com; I encourage you to take a look and see if it’ll work for your course or workshop!