SciPy.in 2011 Tutorial Schedule
Day 3
Day 4
Intended audience
This conference is targeted at anyone who uses Python for work in science/engineering/technology/education. This includes college and university teachers/professors/lecturers from any Engineering or Science domain, students of engineering/science/education who would like to use Python for their basic computing and plotting needs, researchers who use or would like to use Python for their research, and corporate users of Python for scientific computing.
Prerequisites

Participants should be comfortable computer users and be familiar with programming constructs such as loops, conditionals.

Familiarity with programming editors– scite, notepad++, vi, emacs will be a plus.

Familiarity with using the commandline will be another plus.

These tutorials are all fairly advanced and require that you be familiar with Python.

For a good introduction it is recommended that you read the Python Tutorial completely.

Spoken tutorials teaching you Python are also available here please go through those.
Coverage
Puneeth Chaganti, Git/Github + NumPy/SciPy/MPL basics (2 hrs)
 Git/Github
 NumPy and SciPy basics along with the most important Matplotlib commands.
This could be thought of as a quick refresher on the basic tools used in Python for scientific computing.
Emmanuelle Gouillart, Image processing using NumPy, SciPy and scikitsimage (2 hrs)
 This tutorial will show a bag of basic recipes in order to efficiently
manipulate and process images in the form of NumPy arrays.
 Target audience: scientists and engineers working with images

Prerequisites : being able to code Python scripts and use an
interactive Python shell + some knowledge of NumPy

Software requirements: IPython, NumPy, SciPy, Matplolib, scikitsimage, and optionally sklearn

Topics covered
 I/O: how to open different image formats, how to open raw images, how to deal with very large raw files.
 Basic visualization of images, and interaction with image data
 Transforming images: changing the size, resolution, orientation of an image; image filtering; image segmentation.
 Extracting information from images: measuring properties of segmented objects; image classification

This tutorial will by no means be a course on digital image processing.It is rather a bag of tricks on how to
tinker with images, and how to use the goodies of Python/NumPy/SciPy to make this task easier. A large part
of the talk will be devoted to handson exercises using the NumPy, SciPy
and Matplotlib modules. Some other modules will be mentioned during the
tutorial for more advanced uses.
 The course materials are available here
Gael Varoquaux, Machine learning with scikitlearn (3 hrs)

Introduction to machine learning and statistical data processing with the
features in scikitlearn, and how to use it to solve realworld problems:
from handwritten digits classification to stock market prediction.

Target audience : Engineers and scientists using Python for scientific
and numerical computing. No knowledge needed in statistical learning.

Prerequisites: Being able to code scripts and function in Python. Basic
knowledge of numpy and matplotlib.

Software requirements: IPython, scikits.learn, matplotlib.

Outline
 The settings: datasets, estimators, and the prediction problem.
 Regression and classification: Support Vector Machines, sparse regressions... Example: recognising handwritten digits
 Model selection: choosing the right estimator, and the right parameters
 Clustering: KMeans, Affinity Propagation. Example: finding structure in the stock market.
Mateusz Paprocki, SymPy (2 hrs)

SymPy is a pure Python library for symbolic mathematics. It aims to become a
fullfeatured 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.

In this tutorial we will introduce attendees to SymPy. We will start by
showing how to install and run SymPy. Then we will proceed with 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. We will also show how to solve
simple, yet illustrative mathematical problems using SymPy.

Outline
 Installing, configuring and running SymPy.
 Basics of mathematical expressions:
 symbols, dummy symbols
 constructing expressions
 expression traversal
 pattern matching
 Common issues, pitfalls and differences with other CAS:
 1/3 is not a rational number
 why you shouldn't write 10**(1000)
 issues with caching of computation results
 Using builtin and implementing customized printers.
 Arbitrary precision numerical computing.
 Interaction with numerical libraries (NumPy, SciPy).
 Examples.
Ole Nielsen: Mapping and Geoprocessing with Python (1 hr)

Putting information on a map and analyzing spatial data are fundamental to a
wide range of areas such as navigation, working with climate or geological
data, disaster management, presentation of modelling results, demographics,
social networking etc. However, making and viewing maps is just the tip of
the iceberg: to communicate spatial information much work is needed under
the hood to read, write, manipulate and process the data underpinning the
maps.

T This tutorial will give a practical introduction to tools and techniques
available for processing spatial information and, through handson
exercises, give the participants a sense of how to manipulate spatial data
using Python. Depending on time, topics covered include reading and writing
of important data formats for both raster and vector data, looking at the
layers with qgis, awareness of issues with datums and projections,
calculating area and centroids of polygons, performance enhancement using
vector operations, numerical stability issues, calculation of distance
between points on the surface of Earth, interpolation from raster grids to
points etc. The tutorial has been developed for Ubuntu Linux 11.04/11.10 and
will provide source code, tests and data for this platform. However, the
content and messages should be general and apply to any selfrespecting
platform.

I assume that participants know how to write and run Python scripts and are
OK having a crack at implementing simple numerical operations such as
summations in Python. I don't assume any previous knowledge of mapping or
Geographic Information Systems (GIS). The tutorial depends on the
packages qgis and gdalbin as well as the python dependencies pythonnumpy
and pythongdal which are preloaded on the distributed liveDVD. The
tutorial material itself will be available in the Subversion repository
http://olestutorials.googlecode.com/svn/trunk/scipy2011 and also on a USB
stick that I will bring along.

If you have some spatial data you want to manipulate in Python feel free to
bring it along and grab me during a lunch break.
Eric Jones: Traits + Traits UI (2 hrs)

Enthoughtâ€™s traits package provides for a powerful object model which
provides a host of useful functionality with a clean and expressive syntax.
It is an open source library and forms the basis of the Enthought Tool Suite and many of
Enthoughtâ€™s internal commercial projects. In this tutorial we will cover the basics of using
Traits along with the UI library TraitsUI which makes it very easy to build powerful and
interactive, user interfaces using Traits.
Prabhu Ramachandran and Gael Varoquaux, Mayavi for 3D visualization (2 hrs)

At the end of this tutorial attendees will learn how to visualize numpy
arrays using Mayavi's mlab interface. They will also learn enough about
mayavi to be able to create their own simple datasets and visualize
them. If this tutorial follows one on traits, then attendees will learn
how easy it is to embed 3D visualization in their own application UIs
(provided they are written in wxPython or PyQt).

In this tutorial, we first provide a rapid overview of Mayavi_ and its
features. We then move on to using Mayavi via IPython_ and mlab. This
is done in a handson fashion and introduces the audience to visualizing
numpy arrays and the basic mayavi visualization pipeline. We then
introduce the audience to the basic objects and data sources used in
Mayavi. We end with an example of creating custom dialogs using Traits
and embedding 3D visualization in these dialogs with Mayavi.

Packages required
Puneeth Chaganti, Sage introduction/tutorial: (1 hr)
 This tutorial will feature a demonstration and a brief review of some of the capabilities of the Sage notebook.
 A rough schedule of the talk would be as follows:
 Introduction
 Starting the server
 The UI
 Getting Help
 Overview of what's available in Sage
 Basic Algebra
 Basic Calculus
 Basic Plotting
Pankaj Pandey and Prabhu Ramachandran, An introduction to Cython (1 hrs)

At some level, Cython (http://www.cython.org) can be thought of a Python to C compiler.
It allows someone to write extension modules in a language very similar to Python and
therefore makes it rather easy to write Cextensions. In this tutorial we will cover
the basics of building extension modules with Cython.

Package requirements: You will require to have Cython, the
Python development headers and a working Ccompiler to run the handson exercises.