Well, I finished teaching the first #urbit course at a university. Here's what I learned.

Course mirror:

http://davis68.github.io/martian-computing
When I conceived of this idea in Fall 2019, I really thought that things would be more stable than they ended up being: I think further dev would mainly be in userspace (OS1 etc.).

Turns out that wasn't quite the case...
I didn't know how the course proposal would be received or how the enrollment would work out, but I got through the bureaucratic hoops and on the books.

It's always exciting to actually get to teach one of the courses you have in your back pocket, hoping someday to teach.
I'd prepared several weeks of material, but was soon only a week or two ahead of students on some topics. There's a story Milliken told about his teaching physics in the 1890s, in which he says that every night he went home and got ahead of the students again.
They were a sharp lot, and pushed me frequently to the "I don't know" point. I had to go back and learn a lot of internals and system dynamics I hadn't even thought of yet.
Delightfully, their solutions to problems often differed materially from the approach I would have taken.

A few of them caught a particular scent on the wind and went very far afield in exploring CLIs, pill structure, and the like.
It's a great experience as a professor to be able to closely engage a group of diverse thinkers and work carefully through a novel system.
Structurally, the course started with Hoon, then the vanes, then the kernel, then the runtime & Nock. I still think this was largely correct, but I'd move some vane material earlier (system design) and
An intriguing point one student posed at the end concerned how it's not always apparent what the high-level purpose of a design decision is in #urbit. The implicit point is that one feels that with #urbit one _can_ ID such a principle, in contrast to the post-AT&T Unix sludge.
My own points always swirl around the critical trio of privacy, data ownership, and identity. We frequently had philosophical discussions about what these meant and what it meant to achieve such goals.
Now we're on OS2 (basically #Signal-level capabilities with a better switching UI and desktop client) with some slightly enhanced binary capabilities.

This has already obsoleted some of the course material (Zuse split off into Lull, for instance).
I am sincerely grateful that I got to teach #cs498mc and that I had amazing students to make it worth the while.
You can follow @sigilante.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.