{% 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 3 </h4>


<ul>
<li>
Sage (2 hr 30 min)
<ul>
<li>
getting started with Sage notebook (45 min) (<b>Prabhu</b>)
<ul>
<li>
introduction
</li>
<li>
starting the server
</li>
<li>
the UI
</li>
<li>
getting help
</li>
<li>
overview of what's available in Sage
<ul>
<li>
basic calculus
</li>
<li>
basic algebra
</li>
<li>
basic plotting 
</li>
</ul>
</li>
</ul>
</li>
<li>
symbolics &amp; calculus  &amp; basic plotting(1 hr) (<b>Bhanu</b>)
<ul>
<li>
parametric plots
<ul>
<li>
2D
</li>
<li>
3D
</li>
</ul>
</li>
</ul>
</li>
<li>
linear algebra (30 min) (<b>Nishanth</b>)
</li>
<li>
Misc (15 min)
<ul>
<li>
QA
</li>
</ul>
</li>
</ul>
</li>
<li>
Basic Plotting (using pylab) (1 hr 30 min) (<b>Fernando</b>)
<ul>
<li>
getting started with ipython  
</li>
<li>
using the plot command interactively
</li>
<li>
embellishing a plot
</li>
<li>
saving plots
</li>
<li>
multiple plots
</li>
<li>
saving to scripts and running them (from ipython)
</li>
<li>
running the same thing in sage notebook 
<ul>
<li>
change language to python, import pylab, simple plot, savefig
</li>
</ul>
</li>
</ul>
</li>
<li>
Plotting Experimental Data (1 hr) (<b>punch</b>)
<ul>
<li>
plotting points with lists
<ul>
<li>
basic lists
<ul>
<li>
accessing first and last element and negative indexing (no striding)
</li>
<li>
appending
</li>
</ul>
</li>
</ul>
</li>
<li>
loading data from files using loadtxt
</li>
<li>
for loop with lists
<ul>
<li>
pendulum example
</li>
</ul>
</li>
</ul>
</li>
</ul>







<h4 id="sec-2">Day 4 </h4>


<ul>
<li>
Arrays (1 hr) (<b>Perry</b>)
<ul>
<li>
make a reference to earlier example of squaring as motivation
and say that there are loads of other goodies
<ul>
<li>
give examples like find sin of a list of million elements
using for and then use sin(an_array)
</li>
</ul>
</li>
<li>
getting started with arrays
</li>
<li>
accessing parts of arrays
<ul>
<li>
1d slicing 
</li>
<li>
1d striding
</li>
<li>
2d slicing
</li>
<li>
2d striding
</li>
</ul>
</li>
<li>
lena example of above
</li>
<li>
element wise operations
</li>
<li>
matrices
<ul>
<li>
one slide ( det, inv, norm )
</li>
</ul>
</li>
</ul>
</li>
<li>
Scipy (1 hr 30 min) (<b>John</b>)
<ul>
<li>
least square fit
</li>
<li>
Roots
<ul>
<li>
introduce basic functions
</li>
</ul>
</li>
<li>
Solving Equations
</li>
<li>
ODE
<ul>
<li>
reinforce function
</li>
</ul>
</li>
<li>
FFT
</li>
</ul>
</li>
<li>
Python Language: Basics (1 hr) (<b>Asokan</b>)
<ul>
<li>
basic data-types 
<ul>
<li>
strings
</li>
</ul>
</li>
<li>
Operators
</li>
<li>
I/O
</li>
<li>
conditionals
</li>
<li>
loops
<ul>
<li>
while (Fibonacci)
</li>
<li>
range, for (exercises)
</li>
</ul>
</li>
</ul>
</li>
<li>
Python Language: Data structures (1hr 30 min) (<b>Asokan</b>)
<ul>
<li>
manipulating lists
</li>
<li>
dictionaries
</li>
<li>
manipulating strings
</li>
<li>
getting started with tuples
</li>
<li>
sets
</li>
<li>
spend time on examples
</li>
</ul>
</li>
</ul>







<h4 id="sec-3">Day 5 </h4>


<ul>
<li>
Python Language: Advanced (1 hr) (<b>Madhu</b>)
<ul>
<li>
functions
<ul>
<li>
defining functions
</li>
<li>
keyword arguments and default arguments
</li>
</ul>
</li>
<li>
using python modules
</li>
<li>
writing re-usable python scripts
</li>
<li>
PEP-8?
<ul>
<li>
download PEP 8 and keep it handy
</li>
</ul>
</li>
</ul>
</li>
<li>
More Numpy? (broadcasting, indexing tricks&hellip;) (1hr) (<b>Stefan</b>)
</li>
<li>
Mayavi (1 hr) (<b>Prabhu</b>)
</li>
<li>
Cython (1 hr) (<b>Stefan</b>)
</li>
<li>
Version Control (Hg/Git) (15 min) (<b>Madhu</b>)
</li>
<li>
ReST &amp; Scipy/Numpy Documentation Editor (45 min) (<b>Stefan</b>)
</li>
</ul>


<p>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 <a href="http://fossee.in/installation-how-to">here</a>.
</p>


<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>Laptops can be brought by participants, and additional laptops/computers can be provided for use for those required. Charging points will be available.
</p>
<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 %}
