Scicloj study group: Sicmutils

Sicmutils study group

In the last couple of months, study groups have become a central tool for us at Scicloj, on our path of building a friendly Clojure ecosystem for data science, scientific computing, and data exploration.

We’ve practiced various ways of growing together as users and contributors of the emerging stack of libraries. Our study groups are not considered beginner-friendly yet. However, lots of our attention is about creating an environment where we can support each other. We are looking to create some more beginner-friendly projects in the near future.

In this post, let us talk about a new group we are planning: the Sicmutils study group – Structure and Interpretation of Classical Mechanics in Clojure.

Update (Feb. 19th, 2021): The times are set. :cherries:

TL;DR:

Start date
Feb. 24th, 2021

Weekly meetings
We’ll have 3 weekly meetings, so that you can pick you’re preferred time.
A. Wed 02:00 UTC
B. Wed 19:00 UTC
C. Sat 15:00 UTC

Joining
To join, please write about yourself in the form below, and join the #sicmutils stream at the Clojurians Zulip chat (details below).

Preparing for the first meeting
Please start reading the 1st chapter of SICM.
As Sam Ritchie wrote elsewhere:

I think the goal for session 1 is to lay out a great environment, have everyone intro themselves and their background, and make it feel completely FINE to exist at any stage of preparation or background. The fun of computing meets physics is that it is quite unlikely that anyone will be great at both of these tasks, so I would be beyond thrilled if we can encourage folks to help and mentor each other.

Please comment about your preferences

After reading this post, please use this survey to mark your preferences.

What is it about? Why is it so exciting?

SICM and FDG by Sussman and Wisdom are, in a sense, continuations of the legendary SICP book to certain scientific fields around Physics and Geometry.

Except for suggesting a refreshing way to learn science through Scheme code, they offer a Scheme library with wonderful facilities for symbolic math and numerical computing.

Sicmutils is a Clojure and Clojurescript port of that library by Colin Smith and Sam Ritchie. In their various talks (see below), they explain some of the possibilities that it opens for teaching sciences, for doing science, and for building the Clojure scientific stack.

The idea of making symbolic math simple and powerful through Lisp is not new, of course. But arguably, it has not fulfilled its full potential yet. Nowadays, as Clojure is quickly becoming an all-round platform for scientific computing, we may have the best chance yet to enjoy this potential in practice.

Sicmutils may allow the Clojure ecosystem to complete some of the important missing pieces in its story for scientific computing, such as Automatic Differentiation and the various algorithmic fields that rely on it. The future plans to integrate Sicmutils with fast array-programming and linear algebra libraries such as dtype-next and Neanderthal makes that direction even more promising.

What are we trying to achieve?

The goal of the study group is to learn about Sicmutils, explore some of its applications, and become contributors to the ecosystem around it.

What are we planning?

Let us plan this together – your comments will help a lot. But here is a suggestion to start with.

  • We will meet every week in one or more groups (depending on individual time constraints). Between the meetings, we will read and explore. At the meetings will catch up and help each other on our individual explorations. We will also discuss the materials in text, on a dedicated stream at the Clojurians Zulip.

  • We will begin by reading some parts of SICM (maybe only the first chapter), alongside our process of learning Sicmutils.

  • After that, we will take on some small projects (writing examples, helping with some Sicmutils dev tasks, exploring some applications) and use the meetings to discuss that too.

  • Then we’ll think together how to continue.

  • Sam offered his help and may be able to join some of the meetings.

  • If anything about the format, the pace, etc., seems uncomfortable, then I would love to discuss it and think if we can revise our assumptions or open different groups for different preferences. :slight_smile:

Q&A

Q: Will the meetings beginner-friendly?

A: Currently, our study sessions will not be beginner-friendly. Some of them will be challenging. However, we do assume that nobody in the meetings is an expert. We will seek clarity and will make an effort to help each other.

Q: What knowledge will be assumed?

A: This is not completely clear yet, and we may adapt our expectations to the actual group of people who join. We will probably assume that everybody can read the first chapter of SICM independently.
If you have doubts, let us chat and think together about it.

Q: What platform will we use?

A: We will use Zoom for video meetings.
We will use the Clojurians Zulip chat for our notes and textual discussions. Here is some recommended background about our use of Zulip: SciCloj: Chat streams

Q: How can I prepare for the meetings?

A: It can be nice if you start reading the book and start contemplating about it. :slight_smile:

Q: How much time should I spend on the study group?

A: Probably, we will have weekly meetings of at least 2 hours, and assume that people spend about 4 hours exploring between meetings. Again, we will adapt these expectations to the group of people who actually attend. Of course, the pace of learning is different for different individuals. But these materials typically require slow and careful learning.

Q: Will the meetings be recorded?

A: Probably we will record the meetings and share the recordings in private with friends who are interested.

Suggested resources

5 Likes

Why would you be interested in this?

You’re able to write Clojure code with Clojure values inside. If you want to talk about the growth of a function, plain old Clojure values won’t get you all the way. Why care about the growth of functions? Growth helps us understand the relationship between position, velocity and acceleration. And more advanced physics.

Consider joining if you want to learn some physics, or want to learn why symbolic computation matters.

2 Likes

In recent weeks, I wrote the first page of a novel interactive narrative for sicmutils which works fully on-line.

4 Likes

@Markus_Agwin that is wonderful!

1 Like

Hi,

I would like to join. How do I do so? TIA!

2 Likes

Hi @alexshendi!

We will probably begin in 2 or 3 weeks.

For now, it would be great to fill in the questionnaire with your thoughts and preferences.

Done. Also see my introduction (don’t know how to link to it).

1 Like

Many thanks for the responses so far.

We will wait a bit more and then set the time for our weekly sessions.

If anybody wants to join – please fill in the survey :blush:

Achievements so far:

  1. Located SICM in my Tower of Babel of unread books.
  2. Moved it to my bedroom.
2 Likes

Hi.

Thanks for the wonderful responses to the questionnaire above!
It is heartwarming to see such a diverse group of people who are curious about this project and willing to put their time into it.

Over the various time zones and availability constraints, finding a meeting time is quite a challenge. I wrote a Clojure program that recommended a solution:

We will have 3 weekly different meetings, of similar scope but different times. Different people will go to different meetings, by their availability. Nobody is expected to attend all of them, including the organizers. We will use the Clojurians Zulip chat and video recordings to sync and create some togetherness across groups.

Please use the form below to mark your available time slots, and the most preferred one, for a weekly meeting. Note that all times are in UTC time zone, and that meetings will be 2-hours-long.

The responses so far are amazing. So many people that I haven’t met, with such beautiful comments and really interesting backgrounds.

It is going to be a very special group.

2 Likes

We decided to have three weekly Sicmutils meetings, that will try to follow more or less the same study plan. Of course, the groups will share common resources through chat.
A. Wed 02:00 UTC
B. Wed 19:00 UTC
C. Sat 15:00 UTC
More details will be announced soon.

We’ll start on Feb 24th.

1 Like

To prepare for our joint study, please join the Clojurians Zulip chat. We will use that platform for our study group. You can read more about our Zulop chat streams and practices here.
It would be great if you could join and subscribe to the following streams:

Also, it would be great to start reading the first chapter of SICM.

See you soon!

2 Likes

See you on the first sessions in a few days!

We edited the first message with some TL;DR about the group.

Starting tomorrow!

A little taste:
https://scicloj.github.io/notespace-sicmutils-example/docs/notespace-sicmutils-example/double-pendulum/

1 Like