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. *

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 work with Anthony Scopatz at ERGS. He used to work at Continuum Analytics on Anaconda and the conda package manager. He has co-taught tutorials on SymPy as previous SciPy conferences (2011, 2013, 2014 and 2016).

Gaurav Dhingra

Gaurav is a SymPy developer and a student of IIT Roorkee. He worked on Computational Group Theory as a part of his Google Summer of Code project with SymPy in 2016. Gaurav also assisted with the SymPy workshop in his college. He is interested in idea of free knowledge and often edits and creates new wikipedia articles.

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