Teaching and using Observable in classrooms

Dear Observable team,

I’m planning to teach D3 and assign homework to be done on Observable for a new undergrad CS class this semester. I’m really excited to leverage the platform’s power to support live demos and communication around code. However, a few key features for collaboration seem to be missing, namely multi-author editing for group assignments and versioning. Do you have suggestions for how to best work around this at the moment, or if updates might be coming soon?

A secondary interest in versioning would be the possibility of using that to present how a project evolves (and in case of D3 visual evolution), which would be useful for learning in or out of classrooms.

Otherwise, if there are any features or concepts you’d like us to test, more than happy to experiment and give feedback. We’re a class of 40 students, working in teams of 3~4.


Related threads:


sounds like you want to use this platform for a good cause.

a few notes on that and how I would go about it structuring that coursework notebooks on this system:

  • create new notebook for each d3 subject you plan to cover in class

  • create a template notebook for homework assignments your students can fork and work on, similar to what I’ve tried to do here:

Your students can then fork your homework assignment template, or their cohorts, refine and the 1 with most likes on this sys wins :slight_smile:

I doubt live code edit is coming any time soon, but I’ve voiced that idea too:

Collaboratory and others on Py side provide it out of the box today already. I am not aware of any system that does it for JS notebooks.

Observablehq could be first to claim that glory flag, … but I would not hold your breath waiting for it considering very slow moving progress on those collab features dev fronts myself and others voiced many times as you kindly listed too.


(from heavy observablehq user, not affiliated!)

Teach! :hugs:

Hey Agnes,

Super cool that you’re thinking about using Observable in a classroom setting! There are a few folks on the platform who are also teaching - you might be interested in the work and methodology of John Alexis Guerra Gómez. He’s been writing notebooks like this one, Introduction to D3, which his students then fork and complete exercises, with the completed notebooks as their finished work, but also as the instructions for the work. Also, Bert Spaan recently did a workshop at Maptime, with a similar style, and each of the 13 attendants forked and tweaked the starting-point notebook.

So - relative to working together: we haven’t launched real-time editing yet, but it, well - it already is partially implemented :wink:. We’re working on teams, history, and the fine touches that are necessary to make it a lovely experience. We’re working on pull requests and history, too, and when those things launch, they’ll be backwards-compatible - that is, all notebooks already have version history, we’re just working on revert, UX, and the other pieces to make it useful.

If students are working on projects that require more than one piece, using imports might be a great way to distribute work in a collaborative fashion - they let notebooks depend on other notebooks, and compared to formal package management systems, do it in a pretty streamlined way.

So far ‘classroom mode’ - which would mean streaming changes to a notebook in realtime to anyone looking at it - hasn’t landed on our features list. It’s cool, but there are some privacy concerns and a need for a great user story that we haven’t completely fleshed out yet. Plus, at the moment we’re a team of 3, so prioritization is key to shipping the core features that are on the list. Which also means, chill out Taras :wink:

Hope that helps! If you run into any issues, or have any further questions, feel free to post here or I’m happy to help over DM.



.@tom great follow up! I had no clue how far along you are into supporting online edu and I am all for it. let me know if I can contrib beta testing when you push those features out.

Major :revolving_hearts::revolving_hearts::revolving_hearts: and respect for you and Mike creating this platform for JS devs!

I’ll cool down on my prompts! like a :cucumber: ping me if you need help testing anything. I love your plat!

I am trying to figure out how to do pairs coding with remote devs. We have a team of 3 on another continent, and I would like to have a Slack channel with voice up in one window and a shared observable notebook in another so we could collaborate in real time with changes showing up immediately.