Skip to content

SciPy 2017 Tutorial Proposal

Gaurav Dhingra edited this page Mar 13, 2017 · 6 revisions

Information

SciPy 2017, Austin, Texas • July 10-16, 2017

Title

Symbolic Compution with Python using SymPy

Tutorial Topic

SymPy

Student's Python Knowledge Level *

  • Beginner
  • Intermediate
  • Advanced

Please provide a detailed abstract of your tutorial:

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.

This tutorial is intended to cover the basics as well as touch on more advanced topics. We will start by showing how to install and configure this Python module. Then we will proceed to the basics of constructing and manipulating mathematical expressions in SymPy. We will also discuss the most common issues and differences from other computer algebra systems, and how to deal with them. In the remaining part of this tutorial we will show how to solve mathematical problems with 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).

We expect attendees of this tutorial to have basic knowledge of Python and mathematics. However, many more advanced topics will be explained during presentation.

Give us a short bio of presenters

including relevant teaching experience. If you have recorded talks or tutorials available online, please include links. *

Links to previous tutorials/talks

Please provide detailed setup instructions for all necessary software. *

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

What skills are needed to successfully participate in your tutorial

Please select one:

  • None
  • Numpy basics
  • Numpy advanced
  • SciPy
  • Scikit Learn
  • Pandas
  • Matplotlib
  • C++

If other topics are a prerequisite, please explain further.

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 jupyter notebook. A mathematical knowledge of calculus is recommended.

Please provide a short Python program that can be used to verify whether a participants environment is set up correctly.

#!/usr/bin/env python

try:
    import sympy
except ImportError:
    print("sympy is required")
else:

    if sympy.__version__ < '1.0':
        print("SymPy version 1.0 or newer is required. You have", sympy.__version__)

    if sympy.__version__ != '1.0':
        print("The stable SymPy version 1.0 is recommended. You have", sympy.__version__)

try:
    import matplotlib
except ImportError:
    print("matplotlib is required for the plotting section of the tutorial")

try:
    import IPython
except ImportError:
    print("IPython notebook is required.")
else:
    if IPython.__version__ < '4.1.2':
        print("The latest version of IPython is recommended. You have", IPython.__version__)

print("""A fortran and/or C compiler is required for the code generation portion
of the tutorial. However, if you do not have one, you should not worry, as it
will not be a large part of the tutorial.""")

All tutorials will be reviewed for completeness a week prior to the conference. Do you foresee any problems meeting that deadline? *

No

Will you be available to help with setup instructions to your pre-tutorial email list in the week prior to your tutorial?

Yes

Would you like to be a member of the Program Committee?

  • Yes
  • No

Which domain would you like to review?

  • General Track
  • Data Science
  • HPC
  • Earth & Space Sciences
  • Biology & Medicine
  • Engineering
  • Social Sciences
  • Special Purpose Databases
  • Education
  • Reproducibility
Clone this wiki locally