16 Dec 2015: Day 3
08:30 AM - 09:00 AM | Breakfast |
09:00 AM - 09:15 AM | Conference inauguration |
09:15 AM - 10:15 AM | Keynote Address - Prof. Andreas Klöckner |
10:15 AM - 11:00 AM | Python for Statisticians - Jarrod Millman |
11:00 AM - 11:15 AM | Tea |
11:15 AM - 11:45 PM | Concept of a Python based Laboratory - Dr. Ajith Kumar |
11:45 AM - 12:10 PM | SymPy, SymEngine and the interface! - Sumith |
12:10 PM - 12:35 PM | Sandhi - Visual Programming Editor - Ambikeshwar Srivastava |
12:35 PM - 12:50PM | Time Series Satellite Data Visualizer - Umang Gupta |
12:50 PM - 02:00 PM | Lunch |
2:00PM - 2:20 PM | Python based implementation of Aqua Monitoring System using Raspberry Pi - Mohan Allam |
2:20PM - 2:40 PM | 3D Scanner System Using Python - Neha Shinde |
02:40 PM - 03:10 PM | Talk - Prof. Ted Ralphs |
03:10 PM - 03:40 PM | CFD simulations using OpenFOAM and PyFOAM - Prof. Shivasubramanian Gopalakrishnan |
3:40 PM - 4:00 PM | Tea |
4:00 PM - 4:25 PM | Osdag: A python-based open source steel design and graphics software - Deepa |
4:25 PM - 5:00 PM | Python for Microcontrollers - Srikant Patnaik |
5:00 PM - 5:30 PM | Lightning Talks |
5:30 PM - 5:45 PM | Vote of thanks and closing |
Click on each title for more details
Speaker |
Workshop Title |
Link |
Jarrod Millman & Prof. Prabhu Ramachandran |
IPython, NumPy, SciPy, MPL Introduction |
Click here |
Dr. Andreas Kloeckner |
Domain-specific languages and high performance:
Generating high-performance code in Python |
Click here |
Sumith |
- Symbolic computation with Python, SymPy
- SymPy, SymEngine and the interface!
| Click here Click here |
Mr. Bargava Subramanian |
Introduction to Data Analysis using Pandas |
Click here |
Sourav Singh |
Introduction to BioPython |
Click here |
Prof. Madhu Belur, Saurabh Kumar & Shana Moothedath |
Application of Pandas for some allocation problems |
Click here |
Prof. Ashutosh Mahajan, Prof. Jayendran Venkateswaran & Mr. Atul Kumar |
Modeling and solving mathematical optimization problems with Pyomo |
Click here |
Srikant Patnaik |
Python for Microcontrollers |
Click here |
Mridul Seth & Himanshu Mishra |
Complex Network analysis using NetworkX |
Click here |
Neha Shinde |
3D Scanner System Using Python |
Click here |
Mohan Allam |
Python based implementation of Aqua Monitoring System using Raspberry Pi |
Click here |
Ambikeshwar Srivastava |
Sandhi - Visual Programming Editor |
Click here |
Workshop Title | “IPython, NumPy, SciPy, MPL Introduction” |
Abstract | Will be updated soon |
Pre-requisites | Will be updated soon |
Speaker(s) |
- Prof. Prabhu Ramachandran He is a faculty at the department of aerospace engineering, IIT Bombay. His interests include vortex methods, particle methods for computational fluid dynamics, scientific computing and applied scientific data visualization. He is an advocate of Free and Open Source software and in his spare time develop some free/open software. In 2011, he helped start Enthought India. Currently he is a director of the company.
- Mr. Jarrod Millman He is currently doing his PhD in Biostatistics in University of California, Berkeley. His area of interests include statistics, scientific computing, neuroinformatics.
|
Workshop Title | “Introduction to BioPython” |
Abstract | BioPython is a Python Package used for Bioinformatics Research. The workshop will aim to introduce attendees to BioPython and how it works, how to do basic operations like finding the species using the given genome to doing complex operations like parsing Swiss-Prot Records. The workshop will be good for people who have knowledge of Python upto intermediate level, but some basic knowledge of Genomics will be a great plus. |
Pre-requisites | The attendees will require Biopython installed in the systems. The link to download Biopython can be found here http://biopython.org/wiki/Download.
Also ensure to use latest download link,since some features like slicing SeqRecord will only work for version 1.52 or later.
NumPy is a strongly recommended dependency for running Biopython. Other dependencies like ReportLab, matplotlib are optional.
The attendees can check the installation information here http://biopython.org/DIST/docs/install/Installation.html#sec32. |
Speaker(s) |
Mr. Sourav Singh He is a student and a polyglot. He works mainly in the fields of Bioinformatics and Neuroinformatics and have contributed to SunPy, AstroPy, SymPy, nipype and a few other projects. He has also worked as a coach during Django Girls event in Pune which was held on 12th September, 2015 and have also presented a talk at PyCon India 2015 and currently working with INCF on a project.
Github Profile: github.com/souravsingh
|
Workshop Title | "Symbolic computation with Python, SymPy" |
Abstract | In this workshop we will introduce attendees to SymPy, a computer aided algebra system (CAS) written in Python. The workshop 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, the workshop 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 take home 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). 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 workshop 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
|
|
Pre-requisites | A basic knowledge of Python is required. 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.
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 |
Speaker(s) |
Mr. Sumith He is currently a second year computer science undergraduate student at IIT Bombay. He is a contributor to SymPy http://www.sympy.org/en/index.html as well as SymEngine https://github.com/sympy/symengine. He has successfully completed GSoC 2015 project for SymEngine under Python Software Foundation.
|
Workshop Title | "Introduction to Data Analysis using Pandas" |
Abstract | A lot of data is generated every day. A principled scientific approach is needed to analyze the data. The broad steps when doing analytics on the data is as follows:
1) Acquire the data
2) Refine the data
3) Explore the data
4) Model the data
5) Get insights from the data
While we talk about analytics, the kind of questions that are asked and answered in
a typical data analysis/analytics project can be summarised as follows:
1) Descriptive
2) Exploratory
3) Inferential
4) Predictive
5) Causal
6) Mechanistic
This workshop will take the attendees through the fascinating journey of data
analysis/analytics using the approach described above. Pandas is the library we will
be leveraging for the most part. The key takeaway for the attendees would be to understand how to leverage python data stack to do scientific data analysis.
|
Pre-requisites | User should know how to write functions; read in a text file(csv, txt, fwf) and parse them; conditional and looping constructs; using standard libraries like os, sys; lists, list comprehension, dictionaries
It is good to know basics of the following:
Numpy
Scipy
Pandas
Matplotlib
Seaborn
bokeh
vincent
folium
sklearn
IPython and IPython notebook - Everything here would be an IPython notebook
The data and packages required are listed at the repository: https://github.com/amitkaps/weed. (Anaconda is highly recommended).
|
Speaker(s) |
Mr. Bargava Subramanian He is a Senior Statistician(Data Scientist) at Cisco Systems, India. He has a Masters in Systems/Statistics from University of Maryland, College Park, USA. He has 12 years experience in delivering business analytics in finance/banking, transportation, entertainment and high-technology. He loves to travel and is an ardent NBA fan.
|
Workshop Title | "Complex Network analysis using NetworkX" |
Abstract | NetworkX is a well maintained Python library for the creation, manipulation, and study of graphs and complex networks. NetworkX provides data structures for networks along with graph algorithms, generators, and drawing tools. In particular NetworkX complements Python's scientific computing suite of SciPy/NumPy, Matplotlib, and Graphviz and can handle graphs in very large memory. NetworkX is recommended to be part of every data scientist's toolkit.
The core algorithms that are included are implemented on very fast legacy code. Graphs are hugely flexible (nodes can be any hashable type), and there is an extensive set of native IO formats.
The workshop would be focused on the basic usage of NetworkX in manipulation of Graphs. After that, some real scientific usage of NetworkX will be shown and deal with one or two implementations right on hand.
The workshop will start with an introductory tutorial to networkx which will be based on https://github.com/networkx/notebooks/blob/master/tutorial.ipynb using a random generated social/transportation network as an example to work on.
After the introduction, the tutorial will go through a dataset from the youtube social connections provided here https://snap.stanford.edu/data/com-Youtube.html and talk about various measures and properties of this networks. |
Pre-requisites | The basic requirements for the workshop are : Python, NetworkX, IPython and matplotlib. |
Speaker(s) |
- Himanshu Mishra Second Year Undergraduate, IIT Kharagpur
Google Summer of Code 2015 with Python Software Foundation
Project : NetworkX : Implementing Add-on System
Email : himanshumishra[at]iitkgp[dot]ac[dot]in
GitHub : https://github.com/OrkoHunter
- Mridul SethThird Year Undergraduate, BITS Goa
Google Summer of Code 2015 with Python Software Foundation
Project : NetworkX 2.0 and API.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/mridulseth/5668600916475904
GitHub : https://github.com/mriduls
|
Workshop Title | "Domain-specific languages to high performance: Code generation and transformation in Python" |
Abstract | In the tutorial, we will be learning how to use code generation from the comfortable and powerful scripting language Python to make writing high-performance, parallel code for CPUs and GPUs easier, and, perhaps, even fun. |
Pre-requisites | 1. Download a version of VirtualBox suitable for your system and install it:
https://www.virtualbox.org/wiki/Downloads
2. Download the machine image itself:
http://andreask.cs.illinois.edu/tmp/dsl-tutorial.ova
3. (Optionally) Check whether the image downloaded correctly using the md5sum command line tool (Linux/OS X). On Windows, use this tool: http://www.pc-tools.net/win32/md5sums/
Compare the computed checksum with the following value: a49989f216970d4b8842eba566a392a6. Only proceed once the two match. If they don't, delete the file and retry the download.
4. Open VirtualBox, click "File > Import Appliance", select the downloaded image and just click "Next" a few times. Once imported, double-click on the virtual machine to make sure it starts. After a little while, you should see a simple desktop environment.
5. Once all these steps complete successfully, congratulations! You are good to go. Looking forward to seeing you at the tutorial. |
Speaker(s) |
Dr. Andreas Klöckner He is an assistant professor in the scientific computing group within the Computer Science Department at the University of Illinois at Urbana-Champaign. Prior to being at UIUC, he was at the Courant Institute of Mathematical Sciences at NYU working with Leslie Greengard on various problems in computational electromagnetics and integral equation methods for solving PDEs. He has done PhD at the Division of Applied Mathematics at Brown University. He worked with Jan Hesthaven on a variety of issues involving linear and nonlinear hyperbolic PDEs and discontinuous Galerkin finite element method. He is interested in high-order numerical methods for Partial Differential Equations, in particular for elliptic and hyperbolic problems. He also takes care about the parallel computing and the software engineering needed to build useful, robust simulation codes.
|
Workshop Title | "Modeling and solving mathematical optimization problems with Pyomo" |
Abstract | We will talk about what is Optimization Problem and the general form of Optimization problem. Then we will talk about different types of Optimization problem and application where we can model it. We will be covering the python interface for optimization: Pyomo. We will talk about what is Pyomo and how to install it, also the required packages. Then we will talk about what kind of optimization problem Pyomo can solve and how to model it using Pyomo. At the last we will be showing some examples of optimization problem in Pyomo. |
Pre-requisites | System Requirements: Linux with Python. Install Pyomo. |
Speaker(s) | -
Prof. Ashutosh Mahajan He is an Assistant Professor in Industrial Engineering and Operations Research department at IIT Bombay. His current research area interests are Mixed-Integer Nonlinear Optimization, Mixed-Integer Linear Optimization, Algorithms, Software and Applications of Optimization.
- Prof. Jayendran Venkateswaran
He is an Associate Professor in Industrial Engineering and Operations Research department at IIT Bombay. His research interests are Modelling and Simulation, Hybrid and Distributed Simulation for Analysis of Integrated Supply Chains and Automated Manufacturing Systems also Shop Floor Automation Control Systems
- Mr. Atul Kumar
|
Workshop Title | "Application of Pandas for some allocation problems" |
Abstract | Many problems in allocation require an analysis into the data. This talk addresses two allocation problems. One is where students have to be assigned a course for their "Teaching Assistantship" duty. Here, students give their preference of courses, and the courses have priorities of students. An allocation has to be found that satisfies given objectives. The second problem is where invigilators of an exam give choices of cities and an allocation has to be worked out satisfying invigilator seniority constraints and still gives preferences ample weightage.
Pandas serves as a perfect tool for analyzing the data. This talk aims to show how Pandas can be used to analyze. We also give an overview of how one would have done this analysis without Pandas. |
Pre-requisites | Will be updated soon |
Speaker(s) | -
Prof. Madhu Belur He is an Assistant Professor in Industrial Engineering and Operations Research department at IIT Bombay. His current research area interests are Mixed-Integer Nonlinear Optimization, Mixed-Integer Linear Optimization, Algorithms, Software and Applications of Optimization.
- Mr. Saurabh Kumar
- Ms. Shana Moothedath
She is a research scholar in Control and Computing group under Department of
Electrical Engineering, IIT Bombay. Presently she is working on matching algorithms for efficient and fair resource allocation.
|
Note:
To be able to participate in the workshops held during the first two days of the conference, you are required to attend the sessions with your laptops / netbooks. Without them, you will not be able to perform hands-on.