SciPy 2015 Tutorial Proposal - sympy/sympy GitHub Wiki

Information

A short bio of the presenter or team members

containing a description of past experiences as a trainer/teacher/speaker, and (ideally) links to videos of these experiences if available.

Ondřej Čertík

Ondřej is the original author of SymPy, that he started in 2007. He earned his Ph.D. in Chemical Physics from University of Nevada, Reno in 2012, then he started as a PostDoc at Los Alamos National Laboratory (LANL) and was converted to a staff scientist there a year later. Ondřej uses Fortran and C++ for high performance production codes and Python for visualization, symbolic and numeric computation, and other tasks. He has co-taught a tutorial on SymPy at the SciPy 2013 conference.

Aaron Meurer

Aaron is the lead developer of SymPy. He works at Continuum Analytics on Anaconda and the conda package manager. He has co-taught tutorials on SymPy as previous SciPy conferences (2011, 2013, and 2014).

Jason K. Moore

Jason is a developer with both the SymPy and PyDy projects. He utilizes both packages to run optimal control algorithms for biomechanical systems, in particular data driven powered prosthetic designs. He is a strong proponent for Open Science and has a PhD in Mechanical and Aerospace Engineering from UC Davis. Jason has given numerous scientific talks, been an undergraduate lecturer, is a certified Software Carpentry instructor, and lead several scientific computing workshops including tutorials at PyCon and SciPy in the past.

A list of prerequisite skills expected of attendees

so that participants can chose level appropriate tutorials.

The tutorial will only assume a basic knowledge of Python. No prior knowledge of SymPy or other Python libraries is required, although it is suggested that attendees be familiar with the IPython notebook. A mathematical knowledge of calculus is recommended.

A description of the tutorial

suitable for posting on the SciPy website for attendees to view. It should include the target audience, the expected level of knowledge prior to the class, and the goals of the class.

In this tutorial we will introduce attendees to SymPy, a computer aided algebra system (CAS) written in Python. We will show basics of constructing and manipulating mathematical expressions in SymPy, the most common issues and differences from other computer algebra systems, and how to deal with them. In the last part of this tutorial, we will show how to solve practical problems with SymPy. This will include showing how to interface SymPy with popular numeric libraries like NumPy.

Attendees will come away with an introductory level understanding of SymPy. This knowledge should be enough for attendees to start using SymPy for solving mathematical problems and hacking SymPy's internals (though hacking core modules may require additional expertise).

A more detailed outline of the tutorial content

including the duration of each part and exercise sessions. Please include a description of how you plan to make the tutorial hands-on.

SymPy is a pure Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries. The tutorial will cover the following topics and more.

  • Introduction
    • What is Symbolic Computation?
    • A More Interesting Example
    • The Power of Symbolic Computation
    • Why SymPy?
  • Gotchas
    • Symbols
    • Equals signs
    • Two Final Notes: ^ and /
  • Basic Operations
    • Substitution
    • Converting Strings to SymPy Expressions
    • evalf
    • lambdify
    • Printing
    • Printers
    • Setting up Pretty Printing
    • Printing Functions
    • Simplification
    • simplify
    • Polynomial/Rational Function Simplification
    • Trigonometric Simplification
    • Powers
    • Exponentials and logarithms
    • Special Functions
  • Calculus
    • Derivatives
    • Integrals
    • Limits
    • Series Expansion
    • Finite differences
    • Solvers
    • A Note about Equations
    • Solving Equations Algebraically
    • Solving Differential Equations
  • Matrices
    • Basic Operations
    • Basic Methods
    • Matrix Constructors
    • Advanced Methods
  • Advanced Expression Manipulation
    • Understanding Expression Trees
    • Recursing through an Expression Tree

Detailed installation instructions

for various common Python environments so that attendees can have everything ready for participating before heading to SciPy.

We recommend that the attendees install the Anaconda Python distribution which includes SymPy, NumPy, and IPython. Once Anaconda is installed simply type the following in a terminal to install the necessary packages:

$ conda install numpy ipython-notebook sympy

Other alternative installation instructions can be found here: http://docs.sympy.org/dev/install.html

If available

the tutorial notes, slides, exercise files, and IPython notebooks, even if they are preliminary.

Last year's version of this tutorial is at https://github.com/asmeurer/scipy-2014-tutorial. This tutorial will be updated for 2015.