../_images/CoCalc_Logo.png

CoCalc#

CoCalc is a cloud service that hosts Jupyter notebooks. It is designed for collaboration and for use in class teaching situations. It’s pretty awesome. CoCalc uses a “freemium” pricing model, whereby you can use it for free, but get significant improvements in service through a paid plan. Your tuition fees cover the cost of CoCalc, so you will receive access to an upgraded account for free (for the duration of the class) when you register for this class. Once you are registered for the class, you will receive an invitation link sent to your Dal.ca netID email address. Follow this and the instructions to set up your password and other account settings.

At its core, CoCalc allows you to create and run Jupyter notebooks (in a variety of prominent data science languages, including Python, R, and Julia), as well as open and run a terminal, create and edit Markdown files, and even create to-do lists! Each user logs into their own isolated environment, so your files and work are private from other students (but the teaching team can view all of your files). CoCalc also allows Time Travel! It keeps track of every change you’ve made to a document, so that you can travel back in time if you accidentally delete something, or decide your earlier work was better, etc.. Your dog will never be able to eat your homework, and you will never have to worry about backups, or failed hard drives destroying your work for this class.

CoCalc is designed for classes. In addition to creating and running Jupyter notebooks in CoCalc, you can receive assignments, which will automatically copy assignment notebook and data files into your account and allow you to modify your own copy to complete the assignment. You don’t even have to manually submit an assignment — they are automatically collected at the due date/time (which means you’ll need to email the instructor if you weren’t done on time, and want to submit an assignment late).

CoCalc also allows you to text-chat with the teaching team, and other students. If you’re working on an assignment and you send the instructor or TA a message, it will automatically link them to your assignment so they can look at your work and help guide you.

For assignments, each student is expected to complete these and submit them individually. Within the constructivist framework of this course, you are encouraged to coach and support each other. However, each student must do and submit their own, unique work. For team projects, your entire team will be placed in a shared project, and you will be able to work on the same notebook simultaneously in real time (like a Google Doc).

You should check out the CoCalc Student Guide.

CoCalc is a great example of the value of open source software. It uses the open-source Jupyter project and free software tools like Python and Markdown. Moreover, it is actually a product of an open source project called SageMath. SageMath is a mathematical software platform that integrates Python, R, and a variety of other languages and tools (and indeed, you can run SageMath from within CoCalc). SageMath was created by mathematician (and skateboarder) William Stein in 2005, when he was a professor at Harvard. He held a couple of other university faculty jobs before quitting in 2019 to run SageMath full time. CoCalc is a revenue-generating operation that helps pay his salary and support the ongoing development of SageMath.

There are a lot of other free Jupyter notebook services, including Microsoft Azure Notebooks and Google Colaboratory. These are worth knowing about, and you may want to use them for your own projects, or just for playing around, in the future. They don’t offer the same great features of CoCalc for classes, like assignment distribution, real-time collaborative editing, or integrated chat. As well, if you consider using these for data analysis in the future, be sure that any data you upload is anonymized and so uploading to a public (and likely US-based) server does not violate research ethics or privacy laws.