Hello everyone!

I hope it's not too late to express my interest in contributing to
SymPy within this year's Summer of Code.

At first, a short introduction: I am a Master's student of theoretical
computer science at the Faculty of Informatics, Masaryk University,
Czech Republic. I have been working in Python for several years,
either as an open-source contributor (some of my work is available at
my Github profile [1]) or commercially (as a part-time employee at Red
Hat). Although my experience resides primarily in the domain of web
programming, I've acquired solid general knowledge of the language and
feel comfortable doing virtually any programming in it, understanding
and taking advantage of other people's code included. It's perhaps
worth a note that I've extensively used only Python's 2.* versions,
although I don't think getting familiar with Python 3 would pose a
problem.

Going through the project ideas list, I've found three proposals quite
intriguing:

1. finalisation of the new assumptions system;
2. implementation of the symbolic (formal) logic and set theory;
3. step-by-step expression manipulation/visualisation.

Obviously, the first two projects are tightly coupled. However, as I
understand it from the assumptions-related pull request [2] there are
already some people interested in the assumptions project, so it
occurred to me that it could be a good idea to join our efforts where
I would also take up the logic/set-theory project, which is heavily
tied to the assumptions system anyway. During my university studies,
I've had several courses on mathematical logic and set theory (and
relatedly: formal languages, computability and universal algebra). On
my own, I have further studied functional languages in the light of
the Curry-Howard isomorphism which connects mathematical proofs with
programs.

The other problem of the "Show steps"-like functionality seems
interesting to me as well. It has immediately reminded me of
transition systems used within operational semantics of programming
languages, familiarity with which could perhaps come in handy.
Incorporating a logging/signals-style framework into the already
existent expression-evaluating methods so that information about
consequent "by hand" steps could be collected (when desired) sounds
like a good approach to me. As per the output format, I'd concur that
a list sequence (or a tree, perhaps, indicating several possible ways
to achieve the same result) of the required operations would be a good
and generic enough representation of the output data -- even only a
list of the expressions resulting from applying of the individual
operations could be sufficient at first, leaving the user to realise
what the operations in between the steps actually are.

As such, I'm presented with a dilemma of the two projects: one is the
combination of assumptions + logic/set-theory, the other step-by-step
evaluation. Is there be any recommendation from your side? I
understand that the former one is of a higher priority for the SymPy
community, which I think is an important factor... To conclude, are
you please aware of any related issue with SymPy for which it would be
useful to write a small patch before submitting the GSoC application?

I thank in advance for your reply!

With regards,
Andrej Tokarčík

[1] https://github.com/andrejtokarcik   Also, for what it's worth,
I've already contributed to SymPy, see
https://github.com/sympy/sympy/commit/771573f990dc4bbbeaed96d36696a9e2be2a7fc7
for my GHOP '08 work :)
[2] https://github.com/sympy/sympy/pull/2508#issuecomment-35834021

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CABqPtbenvUpUC9wesvqYrA2k-hecvwTahZpsAjiBkXhFt1R9fg%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to