During the Fall semester of 2018, Notre Dame of Maryland University (NDMU) piloted a small seminar course in scientific computing intended for junior and senior undergraduates majoring in math, physics, engineering, or computer science. The goal was to develop and test a multi-disciplinary course, which would ultimately be added as an upper-level elective in these programs. Because NDMU is a small, primarily undergraduate, teaching university with limited computational resources, we reached out to Unidata to ask if we could test our new course using JupyterHub resources that are part of the Unidata Science Gateway. Having never offered this course before, we were uncertain the extent of the resources needed and the commitment needed to maintain and tweak those resources as the course progressed. Partnering with Unidata offered us a way to gain this expertise while getting access to the resources we needed for the class.
Unidata tailored a set of resources for us on the Science Gateway, which is in turn supported by the National Science Foundation's Jetstream project. They provided a custom JupyterHub Docker container set up with a Pluggable Authentication Module (PAM) system of student login credentials. Unidata also arranged for secure (SSL) connections to the Science Gateway and storage of user data outside the Docker container for persistence.
Accessing the JupyterHub system was easy and all the scientific computing libraries were installed and ready to go on the first day of classes. Throughout the semester the Unidata team provided additional support via email and quickly responded to our queries.
As an instructor, the Unidata JupyterHub environment saved me a lot of time and allowed me to focus on the course content and student learning. There was no worry about incompatible software versions or lack of storage space for large datasets. The interactive and online aspects of JupyterHub allowed me to present course materials in new ways. It also allowed students the option of accessing their materials outside of the classroom without our department having to spend resources on account management and security-related issues.
Students found the JupyterHub resources easy to connect to and use. Senior undergraduate physics student Marion Smedberg said of the class setup: “I found the JupyterHub much more convenient than using IDLE (Python's Integrated Development and Learning Environment). It was nice being able to access and organize my programs anywhere I had an internet connection instead of having to download and upload all the time. In addition, using all the different libraries helped me learn a lot of valuable and practical skills that will definitely come in handy in my science career. I appreciate the opportunity to take the class and use that resource, especially considering the small size of our school and our department.”
We had no major issues using the Science Gateway resources, and the Unidata team responded quickly with suggestions and fixes for the minor connection issues we did experience. It would have been very difficult for us to offer this course without the resources and support offered by the Unidata Science Gateways team. With their help and the successful running of this pilot course, we now understand how to effectively deliver this course and are better positioned to permanently add the course to our undergraduate programs.
All of our course materials we developed for the course are freely available for reuse at: https://github.com/narock/scientific_computing_course.
Editor's note —
The Unidata Program Center is committed to continuing to develop, test, and deploy cloud-based resources for the university community. If you have a project you think could benefit from Unidata Science Gateway resources, please contact us by e-mail at email@example.com. You can also learn more about the Science Gateway's JupyterHub features in this blog post.