Skip to content

SciPy 2016 Tutorial Proposal

AMiT Kumar edited this page Mar 25, 2016 · 12 revisions

Information

SciPy 2016, Austin, Texas • July 11-17, 2016

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 and does not require any external libraries.

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

Amit Kumar

Amit is a developer of SymPy. He is involved with the project for over an year. He also worked on a Google Summer of Code project with SymPy in 2015 improving the solvers and sets module. Amit has given talks at PyDelhi Conference, assisted the SymPy workshop at PyCon India 2015 and also taught a tutorial on SymPy at FOSSASIA 2016 conference at Singapore.

Harsh Gupta

Harsh is a SymPy developer and a student at IIT Kharagpur. He started the work on the new solveset module as his Google Summer of Code project in 2014, then he mentored a student in 2015 to improve and expand the work he started. He is interested in all aspects of Free and Open Source Software and a Free Society in general. He has interned at Continuum Analytics, he also helped create a web portal highlighting the gender in the biographies on Wikipedia. More recently he volunteered with savetheinternet.in coalition which galvanized the support for net-neutrality in India ultimately leading to a prohibition on Zero Rating.

Sartaj Singh

Sartaj is a developer with SymPy and a student of IIT BHU. He has been involved with the project for over an year. He also worked on a Google Summer of Code project with SymPy in 2015 'Improving the series package and limits in SymPy'. Sartaj also assisted with the SymPy workshop at PyCon India, 2015. He has also co-taught courses on Python.

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