project/templates/about/tutorial.html
branch2011
changeset 448 7167b896d8de
parent 447 f91c329e13b5
child 449 50770620ea7f
equal deleted inserted replaced
447:f91c329e13b5 448:7167b896d8de
     1 {% extends "base.html" %}
     1 {% extends "base.html" %}
     2 {% block content %}
     2 {% block content %}
     3 <h1>Tutorials</h1>
     3 <h1>Tutorials</h1>
     4 
     4 
     5 <h3 id="sec-1"><span class="section-number-3"></span>Intended audience </h3>
     5 <h2 id="sec-1"><span class="section-number-3"></span>Intended audience </h2>
     6 
     6 
     7 <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.
     7 <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.
     8 </p>
     8 </p>
     9 
     9 
    10 <h3 id="sec-2"><span class="section-number-3"></span>Prerequisites </h3>
    10 <h2 id="sec-2"><span class="section-number-3"></span>Prerequisites </h2>
    11 
    11 
    12 <ul>
    12 <ul>
    13 <li>
    13 <li>
    14 Participants should be comfortable computer users and be familiar with programming constructs such as loops, conditionals.
    14 Participants should be comfortable computer users and be familiar with programming constructs such as loops, conditionals.
    15 </li>
    15 </li>
    18 </li>
    18 </li>
    19 <li>
    19 <li>
    20 Familiarity with using the commandline will be another plus.
    20 Familiarity with using the commandline will be another plus.
    21 
    21 
    22 </li>
    22 </li>
    23 </ul>
    23 <li>
    24 
    24 These tutorials are all fairly advanced and require that you be familiar with Python.
    25 <h3 id="sec-3"><span class="section-number-3"></span>Objectives </h3>
    25 </li>
    26 
    26 <li>
    27 <ul>
    27 For a good introduction it is recommended that you read the <a href="http://docs.python.org/tutorial/">Python Tutorial</a> completely.
    28 <li>
    28 </li>
    29 At the end of the program the participants will have a good understanding of the Python language, and selected libraries.
    29 <li>
    30 </li>
    30 Spoken tutorials teaching you Python are also available <a href="http://www.fossee.in/stvideos">here</a> please go through those.
    31 <li>
    31 </li>
    32 They will be able to write good modular procedural code and use objects.
    32 </ul>
    33 </li>
    33 
    34 <li>
    34 <h2 id="sec-4"><span class="section-number-3"></span>Coverage </h2>
    35 They will get a overview of the other major topics, features and libraries and be able to learn these on their own if required.
       
    36 </li>
       
    37 <li>
       
    38 They will be able to generate 2-D plots using NumPy and Matplotlib, and 3-D plots using MayaVi2.
       
    39 </li>
       
    40 <li>
       
    41 They will be able to incorporate and adapt Python in their lessons
       
    42 
       
    43 </li>
       
    44 </ul>
       
    45 
       
    46 <h3 id="sec-4"><span class="section-number-3"></span>Coverage </h3>
       
    47 
    35 
    48 
    36 
    49 <!-- <h4 id="sec-1">Day 2 </h4> -->
    37 <!-- <h4 id="sec-1">Day 2 </h4> -->
    50 
    38 
    51 
    39 
    52 
    40 
    53 <li>
    41 <h3>Jarrod Millman, Git/Github + NumPy/SciPy/MPL basics (2 hrs)</h3>
    54 	Jarrod Millman, Git/Github + NumPy/SciPy/MPL basics: 2 hrs
    42 <ul>
       
    43 	<li>Git/Github</li>
       
    44 	<li>NumPy and SciPy basics along with the most important Matplotlib commands.
       
    45 		This could be thought of as a quick refresher on the basic tools used in Python for scientific computing.
       
    46 	</li>
       
    47 </ul>
       
    48 
       
    49 
       
    50 
       
    51 <h3>Emmanuelle Gouillart, Image processing using NumPy, SciPy and scikits-image (2 hrs)</h3>
       
    52 <ul>
       
    53 	<li>This tutorial will show a bag of basic recipes in order to efficiently
       
    54 manipulate and process images in the form of NumPy arrays.
       
    55 	</li>
       
    56 	<li>Target audience: scientists and engineers working with images
       
    57 	</li>
       
    58 	<li>
       
    59 	Prerequisites : being able to code Python scripts and use an
       
    60 interactive Python shell + some knowledge of NumPy
       
    61 	</li>
       
    62 	<li>
       
    63 	Software requirements: IPython, NumPy, SciPy, Matplolib, <a href="http://skimage.org">scikits-image</a>, and optionally sklearn
       
    64 	</li>
       
    65 	<li>
       
    66 	Topics covered
    55 	<ul>
    67 	<ul>
    56 		<li>Git/Github</li>
    68 		<li>I/O: how to open different image formats, how to open raw images, how to deal with very large raw files.</li>
    57 		<li>NumPy and SciPy basics along with the most important Matplotlib commands.
    69 		<li>Basic visualization of images, and interaction with image data</li>
    58 			This could be thought of as a quick refresher on the basic tools used in Python for scientific computing.
    70 		<li>Transforming images: changing the size, resolution, orientation of an image; image filtering; image segmentation.</li>
    59 		</li>
    71 		<li>Extracting information from images: measuring properties of segmented objects; image classification</li>
    60 	</ul>
    72 	</ul>
    61 </li>
    73 	<li>
    62 
    74 	This tutorial will by no means be a course on digital image processing.It is rather a bag of tricks on how to 
    63 <li>
    75 	tinker with images, and how to use the goodies of Python/NumPy/SciPy to make this task easier. A large part 
    64 	Emmanuelle Gouillart, Image processing: 2 hrs<br />
    76 	of the talk will be devoted to hands-on exercises using the NumPy, SciPy 
    65 
    77 	and Matplotlib modules. Some other modules will be mentioned during the 
    66 <u>Image manipulation and processing using NumPy, SciPy and scikits-image</u>
    78 	tutorial for more advanced uses.
    67 
    79 	</li>
    68 	<ul>
    80 	<li>The course materials are available <a href="http://scipy-lectures.github.com/advanced/image_processing/index.html">here</a></li>
    69 		<li>This tutorial will show a bag of basic recipes in order to efficiently
    81 </ul>
    70 manipulate and process images in the form of NumPy arrays.
    82 
    71 		</li>
    83 
    72 		<li>Target audience: scientists and engineers working with images
    84 <h3>Gael Varoquaux,   Machine learning with scikit-learn  (2 hrs)</h3>
    73 		</li>
    85 <ul>
    74 		<li>
    86 	<li>
    75 		Prerequisites : being able to code Python scripts and use an
    87 	Introduction to machine learning and statistical data processing with the
    76  interactive Python shell + some knowledge of NumPy
    88 	features in scikit-learn, and how to use it to solve real-world problems:
    77 		</li>
    89 	from handwritten digits classification to stock market prediction.
    78 		<li>
    90 	</li>
    79 		Software requirements: IPython, NumPy, SciPy, Matplolib, <a href="http://skimage.org">scikits-image</a>, and optionally sklearn
    91 	<li>
    80 		</li>
    92 	Target audience :   Engineers and scientists using Python for scientific
    81 		<li>
    93 	and numerical computing. No knowledge needed in statistical learning.
    82 		Topics covered
    94 	</li>
    83 		<ul>
    95 	<li>
    84 			<li>I/O: how to open different image formats, how to open raw images, how to deal with very large raw files.</li>
    96 	Prerequisites: Being able to code scripts and function in Python. Basic
    85 			<li>Basic visualization of images, and interaction with image data</li>
    97 	knowledge of numpy and matplotlib.
    86 			<li>Transforming images: changing the size, resolution, orientation of an image; image filtering; image segmentation.</li>
    98 	</li>
    87 			<li>Extracting information from images: measuring properties of segmented objects; image classification</li>
    99 	<li>
    88 		</ul>
   100 	Software requirements: IPython, scikits.learn, matplotlib.
    89 		<li>
   101 	</li>
    90 		This tutorial will by no means be a course on digital image processing.It is rather a bag of tricks on how to 
   102 	<li>
    91 		tinker with images, and how to use the goodies of Python/NumPy/SciPy to make this task easier. A large part 
   103 	Outline
    92 		of the talk will be devoted to hands-on exercises using the NumPy, SciPy 
   104 		<ul>
    93 		and Matplotlib modules. Some other modules will be mentioned during the 
   105 			<li>The settings: datasets, estimators, and the prediction problem.</li>
    94 		tutorial for more advanced uses.
   106 			<li>Regression and classification: Support Vector Machines, sparse regressions... Example: recognising hand-written digits</li>
    95 		</li>
   107 			<li>Model selection: choosing the right estimator, and the right parameters</li>
    96 		<li>The course materials are available <a href="http://scipy-lectures.github.com/advanced/image_processing/index.html">here</a></li>
   108 			<li>Clustering: KMeans, Affinity Propagation. Example: finding structure in the stock market.</li>		
    97 	</ul>
   109 		</ul>
    98 </li>
   110 	
    99 
   111 	
   100 <li>
   112 	</li>
   101 Gael Varoquaux,   scikit-learn:  2 hrs<br />
   113 </ul>
   102 <u>Machine learning with scikit-learn</u>
   114 
   103 	<ul>
   115 <h3>Ole Nielsen: Mapping and Geoprocessing with Python (2 hrs)</h3>
   104 		<li>
   116 <ul>
   105 		Introduction to machine learning and statistical data processing with the
   117 	<li>
   106 		features in scikit-learn, and how to use it to solve real-world problems:
   118 	Putting information on a map and analyzing spatial data are fundamental to a 
   107 		from handwritten digits classification to stock market prediction.
   119 	wide range of areas such as navigation, working with climate or geological data, 
   108 		</li>
   120 	disaster management, presentation of modelling results, demographics, social networking etc.
   109 		<li>
   121 	</li>
   110 		Target audience :   Engineers and scientists using Python for scientific
   122 	<li>
   111 		and numerical computing. No knowledge needed in statistical learning.
   123 	This tutorial will give a practical introduction to tools and techniques 
   112 		</li>
   124 	available for processing spatial information and, through a few hands-on 
   113 		<li>
   125 	exercises, give the participants a sense of how to manipulate and visualise 
   114 		Prerequisites: Being able to code scripts and function in Python. Basic
   126 	spatial data using Python. Topics covered include reading and writing 
   115 		knowledge of numpy and matplotlib.
   127 	of important data formats for both raster and vector data, looking at the layers, 
   116 		</li>
   128 	awareness of issues with datums and projections, calculating centroids of polygons, 
   117 		<li>
   129 	calculation of distance between points on the surface of Earth, interpolation from raster 
   118 		Software requirements: IPython, scikits.learn, matplotlib.
   130 	grids to points etc. The tutorial has been developed for Ubuntu Linux and will provide source code, 
   119 		</li>
   131 	tests and data for this platform. However, the content and messages should be general and apply to any platform.
   120 		<li>
   132 	</li>
   121 		Outline
   133 	<li>
   122 			<ul>
   134 	I assume that participants know how to write and run 
   123 				<li>The settings: datasets, estimators, and the prediction problem.</li>
   135 	Python scripts and would suggest you install qgis as well as 
   124 				<li>Regression and classification: Support Vector Machines, sparse regressions... Example: recognising hand-written digits</li>
   136 	the python dependencies numpy, matplotlib and gdal on your 
   125 				<li>Model selection: choosing the right estimator, and the right parameters</li>
   137 	laptop. I don't assume any previous knowledge of mapping or Geographic Information Systems (GIS).		
   126 				<li>Clustering: KMeans, Affinity Propagation. Example: finding structure in the stock market.</li>		
   138 	</li>
   127 			</ul>
   139 	<li>
   128 		
   140 	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.
   129 		
   141 	</li>
   130 		</li>
   142 </ul>
   131 	</ul>
   143 
   132 </li>
   144 
   133 <li>
   145 <h3>Eric Jones/Puneeth/Pankaj: Traits + Traits UI (2 hrs)</h3> 
   134 Ole Nielsen: Mapping and Geoprocessing with Python, 2 hrs
   146 <ul>
   135 	<ul>
   147 	<li>
   136 		<li>
   148 	Enthought’s traits package provides for a powerful object model which 
   137 		Putting information on a map and analyzing spatial data are fundamental to a 
   149 	provides a host of useful functionality with a clean and expressive syntax.  
   138 		wide range of areas such as navigation, working with climate or geological data, 
   150 	It is an open source library and forms the basis of the Enthought Tool Suite and many of 
   139 		disaster management, presentation of modelling results, demographics, social networking etc.
   151 	Enthought’s internal commercial projects.  In this tutorial we will cover the basics of using 
   140 		</li>
   152 	Traits along with the UI library TraitsUI which makes it very easy to build powerful and 
   141 		<li>
   153 	interactive, user interfaces using Traits.
   142 		This tutorial will give a practical introduction to tools and techniques 
   154 	</li>
   143 		available for processing spatial information and, through a few hands-on 
   155 </ul>
   144 		exercises, give the participants a sense of how to manipulate and visualise 
   156 
   145 		spatial data using Python. Topics covered include reading and writing 
   157 
   146 		of important data formats for both raster and vector data, looking at the layers, 
   158 <h3>Prabhu Ramachandran and Gael Varoquaux, Mayavi for 3D visualization (2 hrs)</h3>
   147 		awareness of issues with datums and projections, calculating centroids of polygons, 
   159 <ul>
   148 		calculation of distance between points on the surface of Earth, interpolation from raster 
   160 	<li>
   149 		grids to points etc. The tutorial has been developed for Ubuntu Linux and will provide source code, 
   161 	At the end of this tutorial attendees will learn how to visualize numpy
   150 		tests and data for this platform. However, the content and messages should be general and apply to any platform.
   162 	arrays using Mayavi's mlab interface.  They will also learn enough about
   151 		</li>
   163 	mayavi to be able to create their own simple datasets and visualize
   152 		<li>
   164 	them.  If this tutorial follows one on traits, then attendees will learn
   153 		I assume that participants know how to write and run 
   165 	how easy it is to embed 3D visualization in their own application UIs
   154 		Python scripts and would suggest you install qgis as well as 
   166 	(provided they are written in wxPython or PyQt).
   155 		the python dependencies numpy, matplotlib and gdal on your 
   167 	</li>
   156 		laptop. I don't assume any previous knowledge of mapping or Geographic Information Systems (GIS).		
   168 	<li>
   157 		</li>
   169 	In this tutorial, we first provide a rapid overview of Mayavi_ and its
   158 		<li>
   170 	features.  We then move on to using Mayavi via IPython_ and mlab.  This
   159 		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.
   171 	is done in a hands-on fashion and introduces the audience to visualizing
   160 		</li>
   172 	numpy arrays and the basic mayavi visualization pipeline.  We then
   161 	</ul>
   173 	introduce the audience to the basic objects and data sources used in
   162 </li>
   174 	Mayavi.  We end with an example of creating custom dialogs using Traits
   163 
   175 	and embedding 3D visualization in these dialogs with Mayavi.
   164 <li>
   176 	</li>
   165 Eric Jones/Puneeth/Pankaj: Traits + Traits UI. 2 hrs. 
   177 	<li>
   166 	<ul>
   178 	Packages required
   167 		<li>
   179 		<ul>
   168 		Enthought’s traits package provides for a powerful object model which 
   180 			<li><a href="http://code.enthought.com/projects/mayavi">Mayavi</a></li>
   169 		provides a host of useful functionality with a clean and expressive syntax.  
   181 			<li><a href="http://ipython.scipy.org">IPython</a></li>
   170 		It is an open source library and forms the basis of the Enthought Tool Suite and many of 
   182 			<li><a href="http://code.enthought.com/projects/traits">Traits</a></li>
   171 		Enthought’s internal commercial projects.  In this tutorial we will cover the basics of using 
   183 			<li>numpy, scipy</li>
   172 		Traits along with the UI library TraitsUI which makes it very easy to build powerful and 
   184 		</ul>
   173 		interactive, user interfaces using Traits.
   185 	</li>
   174 		</li>
   186 </ul>
   175 	</ul>
   187 
   176 </li>
   188 <h3>Pankaj Pandey and Prabhu Ramachandran, An introduction to Cython (1 hrs)</h3>
   177 
   189 <ul>
   178 <li>
   190 	<li>
   179 Prabhu Ramachandran and  Gael Varoquaux, Mayavi for 3D visualization: 2 hrs
   191 	At some level, Cython (http://www.cython.org) can be thought of a Python to C compiler.  
   180 
   192 	It allows someone to write extension modules in a language very similar to Python and 
   181 	<ul>
   193 	therefore makes it rather easy to write C-extensions.  In this tutorial we will cover 
   182 		<li>
   194 	the basics of building extension modules with Cython.
   183 		At the end of this tutorial attendees will learn how to visualize numpy
   195 	</li>
   184 		arrays using Mayavi's mlab interface.  They will also learn enough about
   196 	<li>
   185 		mayavi to be able to create their own simple datasets and visualize
   197 		Package requirements: You will require to have Cython, the 
   186 		them.  If this tutorial follows one on traits, then attendees will learn
   198 		Python development headers and a working C-compiler to run the hands-on exercises.
   187 		how easy it is to embed 3D visualization in their own application UIs
   199 	</li>
   188 		(provided they are written in wxPython or PyQt).
   200 </ul>
   189 		</li>
   201 
   190 		<li>
   202 <h3>Puneeth Chaganti, Sage introduction/tutorial: (1 hr)</h3>
   191 		In this tutorial, we first provide a rapid overview of Mayavi_ and its
   203 <ul>
   192 		features.  We then move on to using Mayavi via IPython_ and mlab.  This
   204 	<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>
   193 		is done in a hands-on fashion and introduces the audience to visualizing
   205 	<li>A rough schedule of the talk would be as follows:
   194 		numpy arrays and the basic mayavi visualization pipeline.  We then
   206 		<ul>
   195 		introduce the audience to the basic objects and data sources used in
   207 			<li>Introduction</li>
   196 		Mayavi.  We end with an example of creating custom dialogs using Traits
   208 			<li>Starting the server</li>
   197 		and embedding 3D visualization in these dialogs with Mayavi.
   209 			<li>The UI</li>
   198 		</li>
   210 			<li>Getting Help</li>
   199 		<li>
   211 			<li>Overview of what's available in Sage
   200 		Packages required
   212 				<ul>
   201 			<ul>
   213 					<li>Basic Algebra</li>
   202 				<li><a href="http://code.enthought.com/projects/mayavi">Mayavi</a></li>
   214 					<li>Basic Calculus</li>
   203 				<li><a href="http://ipython.scipy.org">IPython</a></li>
   215 					<li>Basic Plotting</li>
   204 				<li><a href="http://code.enthought.com/projects/traits">Traits</a></li>
   216 				</ul>
   205 				<li>numpy, scipy</li>
   217 	</li>
   206 			</ul>
   218 		</ul>
   207 		</li>
   219 	</li>
   208 	</ul>
   220 </ul>
   209 </li>
   221 
   210 
   222 
   211 
   223 <h3>Mateusz Paprocki,  SymPy (2 hrs)</h3>
   212 <li>
   224 <ul>
   213 Pankaj Pandey and Prabhu Ramachandran, An introduction to Cython: 1 hrs
   225 	<li>
   214 	<ul>
   226 	SymPy is a pure Python library for symbolic mathematics. It aims to become a
   215 		<li>
   227 	full-featured computer algebra system (CAS) while keeping the code as simple
   216 		At some level, Cython (http://www.cython.org) can be thought of a Python to C compiler.  
   228 	as possible in order to be comprehensible and easily extensible. SymPy is
   217 		It allows someone to write extension modules in a language very similar to Python and 
   229 	written entirely in Python and does not require any external libraries.
   218 		therefore makes it rather easy to write C-extensions.  In this tutorial we will cover 
   230 	</li>
   219 		the basics of building extension modules with Cython.
   231 	<li>
   220 		</li>
   232 	In this tutorial we will introduce attendees to SymPy. We will start by
   221 		<li>
   233 	showing how to install and run SymPy. Then we will proceed with the basics
   222 			Package requirements: You will require to have Cython, the 
   234 	of constructing and manipulating mathematical expressions in SymPy. We will
   223 			Python development headers and a working C-compiler to run the hands-on exercises.
   235 	also discuss the most common issues and differences from other computer
   224 		</li>
   236 	algebra systems, and how to deal with them. We will also show how to solve
   225 	</ul>
   237 	simple, yet illustrative mathematical problems using SymPy.
   226 </li>
   238 	</li>
   227 
   239 	<li>
   228 <li>
   240 	Outline
   229 Puneeth Chaganti, Sage introduction/tutorial: 1 hr.
   241 		<ul>
   230 	<ul>
   242 			<li>Installing, configuring and running SymPy.</li>
   231 		<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>
   243 			<li>Basics of mathematical expressions:
   232 	</ul>
   244  				<ul>
   233 </li>
   245  					<li>symbols, dummy symbols</li>
   234 
   246  					<li>constructing expressions</li>
   235 <li>
   247  					<li>expression traversal</li>
   236 Mateusz Paprocki,  SymPy:  2 hrs<br />
   248  					<li>pattern matching</li>
   237 <b>Details awaited</b>
   249 				</ul>
   238 </li>
   250 			</li>
   239 
   251 			<li>Common issues, pitfalls and differences with other CAS:
   240 <h3 id="sec-5"><span class="section-number-3"></span>Methodology </h3>
   252 				<ul>
   241 
   253 					<li>1/3 is not a rational number</li>
   242 <ul>
   254  					<li>why you shouldn't write 10**(-1000)</li>
   243 <li>
   255  					<li>issues with caching of computation results</li>
   244 Completely hands on, exploratory mode with minimal lectures introducing essential concepts and techniques.
   256 				</ul>
   245 </li>
   257 			</li>
   246 <li>
   258 			<li>Using built-in and implementing customized printers.</li>
   247 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.
   259 			<li>Arbitrary precision numerical computing.</li>
   248 </li>
   260 			<li>Interaction with numerical libraries (NumPy, SciPy).</li>
   249 <li>
   261 			<li>Examples.</li>
   250 We shall be conducting quizzes during the course of the workshop to evaluate the degree to which the objectives have been accomplished.
   262 		</ul>
   251 
   263 	</li>
   252 </li>
   264 </ul>
   253 </ul>
       
   254 <p>
       
   255 As far as installations go, you would require the following:
       
   256 </p>
       
   257 <ul>
       
   258 <li>
       
   259 For Debian/ Ubuntu and the like:
       
   260 (a) IPython
       
   261 (b) Python doc
       
   262 (c) the Python Profiler
       
   263 (d) Scipy/Numpy
       
   264 (e) Matplotlib
       
   265 (f) Mayavi2
       
   266 
       
   267 </li>
       
   268 <li>
       
   269 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) :
       
   270 (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.
       
   271 
       
   272 </li>
       
   273 </ul>
       
   274 
       
   275 <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>).
       
   276 </p>
       
   277 
   265 
   278 {% endblock content %}
   266 {% endblock content %}