Hello Tanmay,
There was, as far as I can remember, a
post in this mailing list (perhaps by William Stein or Samuel
Lelièvre?) offering answers to exactly this type of questions. I
did not manage to find it, so here is my attempt to list some
relevant links with some context:
For your first question:
* The
Sage Developer's Guide contains a lot on how to develop in
Sage, and how to contribute back. It may seem daunting at first,
especially for people new to software development. Even fixing a
very small problem (e.g. a typo) might take long the first few
times, but people are usually happy when bugs are fixed.
* Sage
Trac server is the place to report bugs or suggest
enhancements (a new feature, a new implementation and so on).
* What happens
when someone is not sure something is really a bug to report on
Trac, or that an enhancement proposal is worth considering? They
can try to ask in: This mailing list ( sage-devel)
aimed for developers, the sage-support
mailing list aimed to a more general audience, ask.sagemath.org
which is a Q&A site or on Zulip. There is
a sage-edu list which seems to be abandoned.
For your second
question:
Different
modern web frameworks allow to insert mathematical formulas and
code listings in webpages. In some cases it is even possible to
add SageMathCell cells.
For example, related to the topics you mentioned learning, in the
online version of the university-level textbook " Abstract
Algebra: Theory and Applications" you can find sections with
Sage tutorials and exercises using such cells. Usually it is
better to first write the content you want in a tool you are
comfortable with than trying to figure the exact technicalities
how to publish it.
Sage uses Sphinx to
generate its docs, written in a convenient textual format called
reStructuredText (ReST). Projects such as the sage_sample
template Sage package allow to generate documentation that look
like the main docs, as they use the same Sphinx theme. Some Sage
tutorials are collected at More
SageMath thematic tutorials, and their generated docs are here.
For your third
question:
Many of the Sage Days events
are welcoming to diverse backgrounds and experiences, and not only
experts in a specific field. By browsing through the talk and
tutorial lists of some past Sage Days I noticed that they include
from time to time talks about scientific software development not
necessarily in Sage and mathematical education.
Regards,
TB
On 12/06/2022 20:40, Tanmay Kulkarni
wrote:
Hello TB,
Thank you so much for the detailed response - these links are
really helpful!
I had a few follow-up questions:
- If I do stumble onto documentation that lacks usage
examples, how would I go about adding examples?
- Is it possible to write more thematic tutorials for Sage
or would that have to be on my own site? I think my ideas
for this would best be explained through tutorials with
embedded Sage computations that (a) explain concepts and
guide students to discovering things like the
inclusion-exclusion principle and (b) teach the fundamentals
of Sage (and Python too).
- Are there any avenues where Sage education is explored and
used beyond the Sage Education Days?
Thank you!
Sincerely,
Tanmay
On Sunday, June 12, 2022 at
9:26:26 AM UTC-7 mathzeta2 wrote:
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:
- 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
- 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
--
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/bf2f8f57-628d-473a-a7b6-dfa0893694e5n%40googlegroups.com.
--
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/e9f737b3-24e6-8445-6ead-8fa3a9c16514%40gmail.com.
|