Instructors are writing their lectures as IPython notebooks, and distributing them to students, who then work through them in their JupyterHub environment.
Our most ambitious so far has been setting up each student in the course with a p2.xlarge machine with cuda and TensorFlow so they could do deep learning work for their final projects.
We supported 15 courses last year, and got deployment time for an implementation down to only 2-3 hours.
In conclusion, IPython good, JupyterHub good.
Edit: surfacing the link to the open source repo on GitHub https://github.com/harvard/cloudJHub