Brown's JupyterHub service provides a convenient, cloud-hosted way to serve Jupyter Notebooks for multiple users. Notebooks are launched within a pre-configured computing environment; users do not need to install any software packages. This set-up free environment is ideal for courses and workshops where instructors intend for students to begin coding with minimal obstacles. Jupyter’s flexibility allows instructors to pick the preferred language for a particular context, including Python, Julia, R and many more. Regardless of the language chosen, the Jupyter interface remains the same. To learn more about using Jupyter Notebooks for teaching and learning, please visit this guide.
On Brown's JupyterHub, each user is provided a persistent working directory and compute resource allocation. This means the environment you are provided is only accessible by yourself and CIS support staff.
Once connected to JupyterHub servers, users enter an isolated workspace to write and run code. There are no time limit restrictions or specified lockout times, so feel free to use your personal JupyterHub server as needed and adhere to CCV's Computing Policies.
If you are an instructor, CCV can provide access to JupyterHub for your class or workshop, and Digital Learning and Design (DLD) can assist with integrating computational assignments into curricula. The implementation is supported by Brown CIS; please follow the link below to request an instance for your class. CIS staff will respond to your request to begin the setup process. We ask that requests for JupyterHub be made at least two months in advance of expected course deployment.
JupyterHub Vs Other Resources for Teaching
Other environments also support computational teaching needs. Google Colaboratory provides a similar Jupyter-based notebook environment. It is free to use and may require no setup. Colab also provides free access to GPU and TPU programming, which is ideal for Deep Learning courses. Other new and up-coming platforms such as https://repl.it also supports teaching and learning programming. Use the following list to help you decide between Google Colab and JupyterHub:
Colab supports Python 2.7 or 3.x as the backend.
JupyterHub can be configured to support any language that has jupyter kernel support.
With JupyterHub, you can pre-define the Docker container (and all the software) that is going to be running on the instances. Having a Docker container per class is a nice way to ensure reproducibility for students who may want to “take their compute environment with them” at the end of the semester.
Colab comes bundled with most Python scientific software libraries, but you will have to re-install all non-standard libraries every time you connect to an instance.
Colab runs a notebook interface, JupyterHub open Jupyter Notebooks, markdown files, PDFs, scripts and a terminal window.
Colab supports real-time collaboration and integrates nicely with Google Classroom, Google Assignments, and Google Drive.