A few people have expressed interest in the step-by-step GSoC project.
I've recently added a segment on the wiki about what I think is a sane and
effective strategy for this problem.

I've included the addition below for convenience.

<https://github.com/sympy/sympy/wiki/GSoC-2014-Ideas#wiki-a-strategy-for-step-by-step>A
Strategy for step-by-step

The logic behind many SymPy operations is separated into several small
methods. For example objects like sin or exp have _eval_derivative methods
that are called as SymPy evaluates the derivative of a complex expression
like sin(exp(x)). By capturing the inputs and outputs of all of these small
methods we can collect a great quantity of information about the steps that
SymPy takes. We can see that exp._eval_derivative took in exp(x) and
returned exp(x) and that sin._eval_derivative took in sin(exp(x)) and
returned cos(exp(x))*exp(x). These input-output pairs for each method are
probably sufficient to illustrate how SymPy solves problems in many
domains.

This approach of capturing the inputs of many internal functions is similar
to logging systems traditionally used to analyze large codebases. We should
investigate how they work and if they cause any problems with normal
operation.

Once this source of information is available we can then think about
interesting ways to visualize and to interact with it.

This approach is straightforward intellectually but may require the student
to interact with a lot of the codebase. Approaches like
_eval_derivativeare ubiquitous throughout SymPy but often have small
variations in
different modules.

-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to