Hello Tanmay,

On 11/06/2022 6:16, Tanmay Kulkarni wrote:
Hello all,

My name is Tanmay Kulkarni and I am a rising sophomore. I have also been taking several extracurricular math classes with Squares & Cubes on things like number theory, group theory, discrete math, and linear algebra. In these classes we have utilized Sage to explore mathematical patterns. For instance, in my discrete math class, I used Sage's graph functionality to take a stab at graph isomorphism, which eventually lead to a magazine article on using random walks on graphs to solve graph isomorphism.
Very nice!

During these various explorations, I realized that Sage was a very powerful tool to explain and provide intuition for complex mathematical concepts, however, (a) it is mainly used by those working in higher math, and (b) there is a high barrier of entry to implement concepts (even ones in lower math) in Sage.
I completely agree that Sage is a very powerful tool. Gathering intuition for complex mathematical concepts in many cases includes some visualization. For example, If someone never heard of Young's lattice, or even what is a lattice, looking at the plot in this thematic tutorial [1] can be a big step in understanding (at least in an intuitive manner) what is this object. In this case, the 6 lines of Sage code that produced the plot are included, so further exploration becomes easier.

Thus, I wanted to contribute to Sage and implement specific concepts which I felt high school students like myself would find interesting, and use them for educational purposes (e.g. at my school). Two basic ideas I thought of were:
  1. Random walks. I think mathematics is often far more engaging with a visual component (for instance, teaching graphing skills and different types of equations through a Desmos art project), and I think when talking about probabilities and randomness, an excellent visual representation of stochastic processes is random walks, which are currently not implemented in Sage. The other advantage of this is that random walks are often present in other places such as physics (in Brownian motion). This could expand into
  2. Venn diagrams. Venn diagrams are incredibly important; however, I could not find any Sage implementations of Venn diagrams beyond simply plotting intersecting circles. Having a more solid implementation could provide a strong, visual intution for a variety of concepts, like basic set theory, logical operators, probability, and even open the door for Edwards-Venn diagrams! Such an implementation would utilize Sage's 2D graphics (specifically the circle and text functions) as well as the detailed Set implementation.

Apart from static visualizations one can find at various docs, there is a page at the wiki dedicated for examples of Sage Interactions [2]. In particular, the "miscellaneous" page [3] includes two simple Venn diagram interactive cells, which might be what you already found. The interactions at these pages can be a good example of what is possible, but I will warn that some of them are quite old, and so they are not always implemented with modern best practice (e.g. deprecated functions). On a side note, here is a link to a beautiful interactive 7 sets Venn diagram [4] by Santiago Ortiz, inspired by Newton's theories on light and color spectrum.


At Brent Yorgey's blog there are (at least) two posts without words [5][6] that try to illustrate the inclusion-exclusion principle with Venn diagrams. I think the plots there were created using the diagrams [7] package in Haskell. I wonder if there is a similar Python package for vector graphics, as Sage usually uses matplotlib or TikZ which are sometimes harder to use.


Several people who I contacted referred me to this group, and thus I am wondering if anybody would be generous enough to (a) provide thoughts on the feasibility and usefulness of such an endeavor, (b) provide some direction or guidance as to where to begin, and (c) offer any potential avenues where this could be used.

Until then, I will be beginning to work on any very simple bug fix I can find to familiarize myself with developing in Sage.

It is always good to hear about people interested in Sage development. The Sage documentation [8] contains a lot: The reference manual alone will be thousands of pages long if printed! If you find a function or object you are familiar with that is already implemented in Sage, but their documentation lacks any usage example, or they mention a non-trivial notation without explanation (it can be tricky to define what is a "non-trivial notation"), then it can be a good idea to try and add them.


I think some of the Sage thematic tutorials [9] were originally prepared for university courses and later, after being tested in the real world, were incorporated into the docs. There are many cases of blog posts and tutorials for Sage programming or for a scientific concept that are not part of Sage docs, e.g. the SDSU Sage tutorial [10]. Writing similar texts on your own site is another possibility, and when you stumble upon a bug or a missing functionality in Sage, opening a trac ticket will be appreciated.


Thank you so much!

Sincerely,
Tanmay Kulkarni

Regards,
TB

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/138089b3-2b2f-6540-b97e-8a4c828822ed%40gmail.com.

Reply via email to