Deepnote: the modern way to teach Data Science
At Deepnote, we’re building a new kind of data science notebook — one that’s collaborative and requires almost no set up. We now support machine learning courses at many universities, and we would be glad to support more. It is still a bit early and Deepnote does not yet have all the features we envision, but it can already solve two pretty important problems teachers and students face.
Problem 1: Getting started
Setting up the environment for each student on their own machine is a non-trivial task. Even if the majority of students are able to follow the steps and set up everything correctly, it will probably take them some time. As well as that, for many introductory courses this will be the first time the students interact with the command line. Lastly, often there are several students who encounter errors no-one has ever seen before.
A popular alternative to that is JupyterHub — a portal which spawns single-user notebook servers. However, maintaining such installation requires some serious system administration resources as it requires a cluster, authentication mechanism, a database, and possibly a correct setup of additional services like nbgrader. This shifts the burden from students and teachers to university IT.
Services like Deepnote or Colab abstract all of this complexity away. The student is presented with a notebook right after they log-in, and they can focus on the content of the course, not on the installation.
Problem 2: Discussions and support
Students have questions, something does not work, or they need feedback. These are commonly solved by emails (some of which with .ipynb attachments), forums (such as Piazza), or simply just office hours — an in-person fallback when there simply isn’t a good digital interface to collaborate.
Deepnote offers a shared execution environment, with advanced collaboration features like seeing the other person typing in real time, or exchanging comments. This allows for a discussion or clarification questions right on the assignment for everyone to see, as well as being able to jump into a student’s project to help them debug.
Setting up Deepnote
Opening a Deepnote project and diving into work is easy, it only takes a single click. Here are a few tips to ensure a smooth experience for your course.
Creating the assignment
If you already have the assignment in a Jupyter notebook format, it is as simple as uploading it, or importing it from a git repository. If not, you can start with an empty notebook, and create it from scratch.
Deepnote can edit and run python scripts too, but some of the most used features (such as variable explorer) are only in the notebook interface.
Inviting the class
To invite a class, create a Team for your course (there is a free education plan). Then invite all the members with their email addresses, or by sharing a sign-up link. Deepnote currently supports Google and GitHub as identity providers. Note: the email address in the invite needs to match the one students use to sign-up.
We recommend giving students Viewer permissions, so they can see the assignments but can’t modify it, TAs to have Member permissions, so they can edit it, or Admin, if they are also responsible for inviting others.
Sharing the assignment
When the time comes, you can simply share the link to the project with your classroom. The students will have the option to duplicate it and work on it in their private space. They can choose to invite a teacher or a TA to their project when they need help while they work on it, or share with other students for group assignments.
Collecting the work
There are several options for submissions. The simplest is to ask the students to share the project with the teacher once they are done. If there is a requirement to use a submission system, it is simple enough to download individual files (notebook or some output) or the entire project as a zip. If the submission system has an API, the assignment can include a script which zips the project and sends it to the endpoint.
What’s next?
A few weeks ago we launched our university program, and so far it’s going great. We still have more slots open, get in touch if you’re interested.
Deepnote is evolving quickly, with new features released every week or two. We would like your input on creating the ideal teaching experience, we will quickly write code to make sure it works well for you.
To try Deepnote for other projects, you can simply sign up on our website.
Update (May 2021)
Since writing this blogpost, a lot of great stuff happened. Deepnote is now being used on courses at Harvard, MIT, UCLA, LSE and a few dozens other large universities. Join them in the next semester!