{% extends "base.html" %}
{% block content %}
<h1>Tutorials</h1>

<h3 id="sec-1"><span class="section-number-3"></span>Intended audience </h3>

<p>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.
</p>

<h3 id="sec-2"><span class="section-number-3"></span>Prerequisites </h3>

<ul>
<li>
Participants should be comfortable computer users and be familiar with programming constructs such as loops, conditionals.
</li>
<li>
Familiarity with programming editors&ndash; scite, notepad++, vi, emacs- will be a plus.
</li>
<li>
Familiarity with using the commandline will be another plus.

</li>
</ul>

<h3 id="sec-3"><span class="section-number-3"></span>Objectives </h3>

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

</li>
</ul>

<h3 id="sec-4"><span class="section-number-3"></span>Coverage </h3>


<!-- <h4 id="sec-1">Day 2 </h4> -->



<li>
	Jarrod Millman, Git/Github + NumPy/SciPy/MPL basics: 2 hrs
	<ul>
		<li>Git/Github</li>
		<li>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.
		</li>
	</ul>
</li>

<li>
	Emmanuelle Gouillart, Image processing: 2 hrs<br />

<u>Image manipulation and processing using NumPy, SciPy and scikits-image</u>

	<ul>
		<li>This tutorial will show a bag of basic recipes in order to efficiently
manipulate and process images in the form of NumPy arrays.
		</li>
		<li>Target audience: scientists and engineers working with images
		</li>
		<li>
		Prerequisites : being able to code Python scripts and use an
 interactive Python shell + some knowledge of NumPy
		</li>
		<li>
		Software requirements: IPython, NumPy, SciPy, Matplolib, <a href="http://skimage.org">scikits-image</a>, and optionally sklearn
		</li>
		<li>
		Topics covered
		<ul>
			<li>I/O: how to open different image formats, how to open raw images, how to deal with very large raw files.</li>
			<li>Basic visualization of images, and interaction with image data</li>
			<li>Transforming images: changing the size, resolution, orientation of an image; image filtering; image segmentation.</li>
			<li>Extracting information from images: measuring properties of segmented objects; image classification</li>
		</ul>
		<li>
		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 hands-on exercises using the NumPy, SciPy 
		and Matplotlib modules. Some other modules will be mentioned during the 
		tutorial for more advanced uses.
		</li>
		<li>The course materials are available <a href="http://scipy-lectures.github.com/advanced/image_processing/index.html">here</a></li>
	</ul>
</li>

<li>
Gael Varoquaux,   scikit-learn:  2 hrs<br />
<u>Machine learning with scikit-learn</u>
	<ul>
		<li>
		Introduction to machine learning and statistical data processing with the
		features in scikit-learn, and how to use it to solve real-world problems:
		from handwritten digits classification to stock market prediction.
		</li>
		<li>
		Target audience :   Engineers and scientists using Python for scientific
		and numerical computing. No knowledge needed in statistical learning.
		</li>
		<li>
		Prerequisites: Being able to code scripts and function in Python. Basic
		knowledge of numpy and matplotlib.
		</li>
		<li>
		Software requirements: IPython, scikits.learn, matplotlib.
		</li>
		<li>
		Outline
			<ul>
				<li>The settings: datasets, estimators, and the prediction problem.</li>
				<li>Regression and classification: Support Vector Machines, sparse regressions... Example: recognising hand-written digits</li>
				<li>Model selection: choosing the right estimator, and the right parameters</li>
				<li>Clustering: KMeans, Affinity Propagation. Example: finding structure in the stock market.</li>		
			</ul>
		
		
		</li>
	</ul>
</li>
<li>
Ole Nielsen: Mapping and Geoprocessing with Python, 2 hrs
	<ul>
		<li>
		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.
		</li>
		<li>
		This tutorial will give a practical introduction to tools and techniques 
		available for processing spatial information and, through a few hands-on 
		exercises, give the participants a sense of how to manipulate and visualise 
		spatial data using Python. Topics covered include reading and writing 
		of important data formats for both raster and vector data, looking at the layers, 
		awareness of issues with datums and projections, calculating centroids of polygons, 
		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 and will provide source code, 
		tests and data for this platform. However, the content and messages should be general and apply to any platform.
		</li>
		<li>
		I assume that participants know how to write and run 
		Python scripts and would suggest you install qgis as well as 
		the python dependencies numpy, matplotlib and gdal on your 
		laptop. I don't assume any previous knowledge of mapping or Geographic Information Systems (GIS).		
		</li>
		<li>
		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.
		</li>
	</ul>
</li>

<li>
Eric Jones/Puneeth/Pankaj: Traits + Traits UI. 2 hrs. 
	<ul>
		<li>
		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.
		</li>
	</ul>
</li>

<li>
Prabhu Ramachandran and  Gael Varoquaux, Mayavi for 3D visualization: 2 hrs

	<ul>
		<li>
		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).
		</li>
		<li>
		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 hands-on 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.
		</li>
		<li>
		Packages required
			<ul>
				<li><a href="http://code.enthought.com/projects/mayavi">Mayavi</a></li>
				<li><a href="http://ipython.scipy.org">IPython</a></li>
				<li><a href="http://code.enthought.com/projects/traits">Traits</a></li>
				<li>numpy, scipy</li>
			</ul>
		</li>
	</ul>
</li>


<li>
Pankaj Pandey and Prabhu Ramachandran, An introduction to Cython: 1 hrs
	<ul>
		<li>
		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 C-extensions.  In this tutorial we will cover 
		the basics of building extension modules with Cython.
		</li>
		<li>
			Package requirements: You will require to have Cython, the 
			Python development headers and a working C-compiler to run the hands-on exercises.
		</li>
	</ul>
</li>

<li>
Puneeth Chaganti, Sage introduction/tutorial: 1 hr.
	<ul>
		<li>This tutorial will feature a demonstration and a brief review of some of the capabilities of the <a href="http://www.sagemath.org">Sage notebook</a>.</li>
	</ul>
</li>

<li>
Mateusz Paprocki,  SymPy:  2 hrs<br />
<b>Details awaited</b>
</li>

<h3 id="sec-5"><span class="section-number-3"></span>Methodology </h3>

<ul>
<li>
Completely hands on, exploratory mode with minimal lectures introducing essential concepts and techniques.
</li>
<li>
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.
</li>
<li>
We shall be conducting quizzes during the course of the workshop to evaluate the degree to which the objectives have been accomplished.

</li>
</ul>
<p>
As far as installations go, you would require the following:
</p>
<ul>
<li>
For Debian/ Ubuntu and the like:
(a) IPython
(b) Python doc
(c) the Python Profiler
(d) Scipy/Numpy
(e) Matplotlib
(f) Mayavi2

</li>
<li>
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 (<a href="http://www.enthought.com/products/epd.php">http://www.enthought.com/products/epd.php</a>) 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.

</li>
</ul>

<p>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 (<a href="http://fossee.in/download#DVDs">http://fossee.in/download#DVDs</a>).
</p>

{% endblock content %}
