{% 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– 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 & calculus & 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>Puneeth</b>)
<ul>
<li>
plotting points with lists
<ul>
<li>
basic lists
<ul>
<li>
indexing
</li>
<li>
appending
</li>
</ul>
</li>
</ul>
</li>
<li>
loading data from files using loadtxt
</li>
<li>
using 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>
Why use arrays
<ul>
<li>
finding sine of a list of million numbers
</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>
operations on matrices like 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>
introduction to functions
</li>
</ul>
</li>
<li>
Solving Equations
</li>
<li>
ODE
<ul>
<li>
revisiting functions
</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
</li>
<li>
for loop and its usage with range
</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>
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?
</li>
</ul>
</li>
<li>
More Numpy? (broadcasting, indexing tricks…) (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 & 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 %}