The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more
Requirements which we typically receives from education customers
•Multiuser Environment typically required
•1 VM server to class >100 student (Typically 1Gb to 2Gb of memory per student
•Offline or Online usage of Jupyter
•Container or scalable compute setup for larger classes <100 Students
•CPU and GPU requirements all required depending on DataScience or ML labs
•Custom Libraries and Environments are a given these are typically python PIP Install
•Persistent storage for storage of student's files and work.
• Understanding of cost and services utilization
So what are the options for solutions
•Web-based interactive development environment for Jupyter notebooks, code, and data.
•Collaborative working environment for multiple users.
•JupyterLab is flexible: configure and arrange the user interface to support a wide range of workflows in data science, scientific computing, and machine learning.
•JupyterLab is extensible and modular: write plugins that add new components and integrate with existing ones.
The Jupyter Notebook
•Single time notebook runtime environment can use various kernels Python, R, C#, F#, Q#
•Simple environment single view per notebook
•1 user interaction with the notebook
The two options for these within the classroom is typically in the form of IaaS based VM which can we be setup in a 1:1 or 1:many fashion for providing Jupyter experiences to students.
•IaaS based >High Admin Requirements most academics don’t want to manage infrastructure. However to enable the onboarding and setup of the environments we have produced the following templates and instructions in assisting you create a Jupyter experience for your classroom or student projects.
The Littlest Jupyter Hub
http://tljh.jupyter.org/en/latest/install/azure.html
Zero to Jupyter AKS
https://zero-to-jupyterhub.readthedocs.io/en/latest/
Azure Quick Start Templates
https://azure.microsoft.com/en-us/resources/templates/?term=Jupyter
However once you have your environment deployed there a number of tasks you or the IT team need to do in order for it to fully ready for your students.
Admin Tasks which need to be completed for classroom environment
Setting up Storage and sharing notebooks
•Distributing materials to users with nbgitpuller
•Adding data to the JupyterHub
Adding users to the Jupyterhub
•Authenticate any user with a single shared password
•Authenticate using GitHub Usernames
•Let users choose a password when they first log in
•Let users sign up with a username and password
Configuring Environments
Install conda, pip or apt packages
[Change default User Interface for users] (https://the-littlest-jupyterhub.readthedocs.io/en/latest/howto/env/notebook-interfaces.html)
Configure resources available to users
System Maintenance
•Resize the resources available to your JupyterHub
•Enabling Jupyter Notebook extensions
Additional Resources
•Azure Resource Manger templates docs
If you simply want to give a notebook to students in least friction free way there a number of solutions.
Microsoft Azure Notebooks
•FREE solution to use
•No GPU Support
•Hosted Azure Jupyter Notebooks
•Single Sign On Support for o365 and MSA accounts
•Github Association
•No Management requirements from institution
Azure Lab Services
•Managed IaaS work loads where you can reconfigure and manage student environments
•Pay for just what you need, with no upfront cost
•VMs are 1:1
•So 1 user per VM
•Does not support 1 machine to a entire class
•User access is via SSH or RDP only
•No Http or Http EndPoint so users need to RDP into the VM then load Jupyter
•GPU and CPU Support
•Perfect for individual projects where compute resources can be managed and allocated
VSCode IDE https://code.visualstudio.com/
•Free
•Multiplatform Support - Windows, Linux, Mac
•Can also run dedicated dev container from within the IDE
Local Execution and Remote Execution Available (i.e if GPU is needed)
•Environments as virtual dev boxes (container so you can control the environment)
•Support for Graders
•Native Jupyter and Python Support https://code.visualstudio.com/docs/python/jupyter-support
Visual Studio Online https://online.visualstudio.com/
•Same Experience as VSCode within the browser
•Platform support any device with a browser
•Same plugins as VSCode Desktop
•Support for Graders
•Custom Dev Container in the cloud
•Custom Environment can be deployed to a class from a Github Repo
•Support for docker custom containers
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.