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.