Tutorials
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.
Objectives
 At the end of the program the participants will have a good understanding of the Python language, and selected libraries.
 They will be able to write good modular procedural code and use objects.
 They will get a overview of the other major topics, features and libraries and be able to learn these on their own if required.
 They will be able to generate 2D plots using NumPy and Matplotlib, and 3D plots using MayaVi2.
 They will be able to incorporate and adapt Python in their lessons
Coverage
Day 3

Sage (2 hr 30 min)

getting started with Sage notebook (45 min) (Prabhu)
 introduction
 starting the server
 the UI
 getting help

overview of what's available in Sage
 basic calculus
 basic algebra
 basic plotting

symbolics & calculus & basic plotting(1 hr) (Bhanu)

parametric plots
 2D
 3D

parametric plots
 linear algebra (30 min) (Nishanth)

Misc (15 min)
 QA

getting started with Sage notebook (45 min) (Prabhu)

Basic Plotting (using pylab) (1 hr 30 min) (Fernando)
 getting started with ipython
 using the plot command interactively
 embellishing a plot
 saving plots
 multiple plots
 saving to scripts and running them (from ipython)

running the same thing in sage notebook
 change language to python, import pylab, simple plot, savefig

Plotting Experimental Data (1 hr) (Puneeth)

plotting points with lists

basic lists
 indexing
 appending

basic lists
 loading data from files using loadtxt

using for loop with lists
 pendulum example

plotting points with lists
Day 4

Arrays (1 hr) (Perry)

Why use arrays
 finding sine of a list of million numbers
 getting started with arrays

accessing parts of arrays
 1d slicing
 1d striding
 2d slicing
 2d striding
 lena example of above
 element wise operations

matrices
 operations on matrices like det, inv, norm.

Why use arrays

Scipy (1 hr 30 min) (John)
 least square fit

Roots
 introduction to functions
 Solving Equations

ODE
 revisiting functions
 FFT

Python Language: Basics (1 hr) (Asokan)

basic datatypes
 strings
 Operators
 I/O
 conditionals

loops
 while
 for loop and its usage with range

basic datatypes

Python Language: Data structures (1hr 30 min) (Asokan)
 manipulating lists
 dictionaries
 manipulating strings
 getting started with tuples
 sets
 examples
Day 5

Python Language: Advanced (1 hr) (Madhu)

functions
 defining functions
 keyword arguments and default arguments
 using python modules
 writing reusable python scripts
 PEP8?

functions
 More Numpy? (broadcasting, indexing tricks…) (1hr) (Stefan)
 Mayavi (1 hr) (Prabhu)
 Cython (1 hr) (Stefan)
 Version Control (Hg/Git) (15 min) (Madhu)
 ReST & Scipy/Numpy Documentation Editor (45 min) (Stefan)
Any participants using their own laptops should have the required software installed on their machines, before coming to the venue of the tutorials. The installation instructions are available here.
Methodology
 Completely hands on, exploratory mode with minimal lectures introducing essential concepts and techniques.
 Typically we will have short 15  20 minute lectures, followed by series of graduated problems. The participants will solve them exploring the documentation to do so and the solutions will be discussed.
 We shall be conducting quizzes during the course of the workshop to evaluate the degree to which the objectives have been accomplished.
Laptops can be brought by participants, and additional laptops/computers can be provided for use for those required. Charging points will be available.
As far as installations go, you would require the following:
 For Debian/ Ubuntu and the like: (a) IPython (b) Python doc (c) the Python Profiler (d) Scipy/Numpy (e) Matplotlib (f) Mayavi2
 For Windows XP (x86), Windows Vista (x86), Mac OS X 10.4+ (x86), RedHat 3 (x86, amd64), RedHat 4 (x86, amd64), RedHat 5 (x86, amd64), and Solaris 10 (x86, amd64) : (a) get the EPD (http://www.enthought.com/products/epd.php) bundle and you'll have everything you need! This is available for free for those in academia and others can utilize the free 30 day trial version for now.
In any case, we will be providing live DVDs containing all the required installations and some additional tools on site. The iso can also be downloaded from the fossee.in site (http://fossee.in/download#DVDs).