Every professor teaching coding in languages like Python and R faces similar challenges, which are consistent across disciplines -- whether it is a coding-oriented class, or courses traditionally not associated with computer science like social sciences. These challenges include questions like:
“How do I make sure all students have access to a computing environment (do I set up my own server or pay a cloud provider)?”
“How do I make sure they use the same packages?”
“How do I share data?”
“How can students collaborate?”
“How can I make sure environment is available all (most) the time?”
“How can I teach using the same technology students are expected to use at workplace?”
“How can I/TA look at student’s files to help troubleshoot?”, “How do I distribute, collect, and grade assignments (manually or automatically)?”
“How do I use databases like MySQL and others?”
“How can I share materials from my private GitHub repository?”
“What if I need GPU for my classes?”
“How can I ask questions, and communicate with other instructors using the service?”
“How do I spend as little time as possible for initial setup, and then it just works?”
In order to address these questions and others like them, at NYU we've developed a unique solution on top of the open-source project “Zero to JupyterHub with Kubernetes” which we simply call “JupyterHub”. Under this simple term, we have a highly available computational platform for teaching, learning, and research that leverages Google Cloud resources, access to modern open-source professional tools (Jupyter Notebooks, Jupyter Lab, RStudio, Theia), convenient package management with Anaconda, and various self-service (for instructors) customizations for the class environment (control list of students with access, RAM, GPU access, database setup, and others). All of that comes with optimizations driving the cost of the system usage to the minimal possible values.
Thanks to this Jupyter Hub environment provided by NYU IT's High Performance Computing division, Arts & Science faculty have been able to join with faculty across NYU to collect, share, and re-use code for teaching and learning. The HPC Jupyter Hub serves hundreds of students across a variety of Arts & Science classes, from Politics to Math to Linguistics. It has made remote instruction easier, particularly in terms of providing easy access to programming tools for students with and without a coding background. As data science and computational skills become a component of more and more courses across the liberal arts, the ability to create, run, and exchange code will be a staple of instruction.
See these resources in action in Joanna Klukowska's Quantitative Reasoning course.
Also see Teaching and Learning with Jupyter to learn more about classroom use of Jupyter Notebooks and Hub.
Partner: NYU IT High Performance Computing