18 </li> |
58 </li> |
19 <li> |
59 <li> |
20 Familiarity with using the commandline will be another plus. |
60 Familiarity with using the commandline will be another plus. |
21 |
61 |
22 </li> |
62 </li> |
23 </ul> |
63 <li> |
24 |
64 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> |
65 </li> |
26 |
66 <li> |
27 <ul> |
67 For a good introduction it is recommended that you read the <a href="http://docs.python.org/tutorial/">Python Tutorial</a> completely. |
28 <li> |
68 </li> |
29 At the end of the program the participants will have a good understanding of the Python language, and selected libraries. |
69 <li> |
30 </li> |
70 Spoken tutorials teaching you Python are also available <a href="http://www.fossee.in/stvideos">here</a> please go through those. |
31 <li> |
71 </li> |
32 They will be able to write good modular procedural code and use objects. |
72 </ul> |
33 </li> |
73 |
34 <li> |
74 <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. |
75 |
36 </li> |
76 |
37 <li> |
77 <!-- <h4 id="sec-1">Day 2 </h4> --> |
38 They will be able to generate 2-D plots using NumPy and Matplotlib, and 3-D plots using MayaVi2. |
78 |
39 </li> |
79 |
40 <li> |
80 |
41 They will be able to incorporate and adapt Python in their lessons |
81 <h3 id="sec2.1">Puneeth Chaganti, Git/Github + NumPy/SciPy/MPL basics (2 hrs)</h3> |
42 |
82 <ul> |
43 </li> |
83 <li>Git/Github</li> |
44 </ul> |
84 <li>NumPy and SciPy basics along with the most important Matplotlib commands. |
45 |
85 This could be thought of as a quick refresher on the basic tools used in Python for scientific computing. |
46 <h3 id="sec-4"><span class="section-number-3"></span>Coverage </h3> |
86 </li> |
47 |
87 </ul> |
48 |
88 |
49 <h4 id="sec-1">Day 3 </h4> |
89 |
50 |
90 |
51 |
91 <h3 id="sec2.2">Emmanuelle Gouillart, Image processing using NumPy, SciPy and scikits-image (2 hrs)</h3> |
52 <ul> |
92 <ul> |
53 <li> |
93 <li>This tutorial will show a bag of basic recipes in order to efficiently |
54 Sage (2 hr 30 min) |
94 manipulate and process images in the form of NumPy arrays. |
55 <ul> |
95 </li> |
56 <li> |
96 <li>Target audience: scientists and engineers working with images |
57 getting started with Sage notebook (45 min) (<b>Prabhu</b>) |
97 </li> |
58 <ul> |
98 <li> |
59 <li> |
99 Prerequisites : being able to code Python scripts and use an |
60 introduction |
100 interactive Python shell + some knowledge of NumPy |
61 </li> |
101 </li> |
62 <li> |
102 <li> |
63 starting the server |
103 Software requirements: IPython, NumPy, SciPy, Matplolib, <a href="http://skimage.org">scikits-image</a>, and optionally sklearn |
64 </li> |
104 </li> |
65 <li> |
105 <li> |
66 the UI |
106 Topics covered |
67 </li> |
107 <ul> |
68 <li> |
108 <li>I/O: how to open different image formats, how to open raw images, how to deal with very large raw files.</li> |
69 getting help |
109 <li>Basic visualization of images, and interaction with image data</li> |
70 </li> |
110 <li>Transforming images: changing the size, resolution, orientation of an image; image filtering; image segmentation.</li> |
71 <li> |
111 <li>Extracting information from images: measuring properties of segmented objects; image classification</li> |
72 overview of what's available in Sage |
112 </ul> |
73 <ul> |
113 <li> |
74 <li> |
114 This tutorial will by no means be a course on digital image processing.It is rather a bag of tricks on how to |
75 basic calculus |
115 tinker with images, and how to use the goodies of Python/NumPy/SciPy to make this task easier. A large part |
76 </li> |
116 of the talk will be devoted to hands-on exercises using the NumPy, SciPy |
77 <li> |
117 and Matplotlib modules. Some other modules will be mentioned during the |
78 basic algebra |
118 tutorial for more advanced uses. |
79 </li> |
119 </li> |
80 <li> |
120 <li>The course materials are available <a href="http://scipy-lectures.github.com/advanced/image_processing/index.html">here</a></li> |
81 basic plotting |
121 </ul> |
82 </li> |
122 |
83 </ul> |
123 |
84 </li> |
124 <h3 id="sec2.3">Gael Varoquaux, Machine learning with scikit-learn (3 hrs)</h3> |
85 </ul> |
125 <ul> |
86 </li> |
126 <li> |
87 <li> |
127 Introduction to machine learning and statistical data processing with the |
88 symbolics & calculus & basic plotting(1 hr) (<b>Bhanu</b>) |
128 features in scikit-learn, and how to use it to solve real-world problems: |
89 <ul> |
129 from handwritten digits classification to stock market prediction. |
90 <li> |
130 </li> |
91 parametric plots |
131 <li> |
92 <ul> |
132 Target audience : Engineers and scientists using Python for scientific |
93 <li> |
133 and numerical computing. No knowledge needed in statistical learning. |
94 2D |
134 </li> |
95 </li> |
135 <li> |
96 <li> |
136 Prerequisites: Being able to code scripts and function in Python. Basic |
97 3D |
137 knowledge of numpy and matplotlib. |
98 </li> |
138 </li> |
99 </ul> |
139 <li> |
100 </li> |
140 Software requirements: IPython, scikits.learn, matplotlib. |
101 </ul> |
141 </li> |
102 </li> |
142 <li> |
103 <li> |
143 Outline |
104 linear algebra (30 min) (<b>Nishanth</b>) |
144 <ul> |
105 </li> |
145 <li>The settings: datasets, estimators, and the prediction problem.</li> |
106 <li> |
146 <li>Regression and classification: Support Vector Machines, sparse regressions... Example: recognising hand-written digits</li> |
107 Misc (15 min) |
147 <li>Model selection: choosing the right estimator, and the right parameters</li> |
108 <ul> |
148 <li>Clustering: KMeans, Affinity Propagation. Example: finding structure in the stock market.</li> |
109 <li> |
149 </ul> |
110 QA |
150 |
111 </li> |
151 |
112 </ul> |
152 </li> |
113 </li> |
153 </ul> |
114 </ul> |
154 |
115 </li> |
155 <h3 id="sec2.4">Mateusz Paprocki, SymPy (2 hrs)</h3> |
116 <li> |
156 <ul> |
117 Basic Plotting (using pylab) (1 hr 30 min) (<b>Fernando</b>) |
157 <li> |
118 <ul> |
158 SymPy is a pure Python library for symbolic mathematics. It aims to become a |
119 <li> |
159 full-featured computer algebra system (CAS) while keeping the code as simple |
120 getting started with ipython |
160 as possible in order to be comprehensible and easily extensible. SymPy is |
121 </li> |
161 written entirely in Python and does not require any external libraries. |
122 <li> |
162 </li> |
123 using the plot command interactively |
163 <li> |
124 </li> |
164 In this tutorial we will introduce attendees to SymPy. We will start by |
125 <li> |
165 showing how to install and run SymPy. Then we will proceed with the basics |
126 embellishing a plot |
166 of constructing and manipulating mathematical expressions in SymPy. We will |
127 </li> |
167 also discuss the most common issues and differences from other computer |
128 <li> |
168 algebra systems, and how to deal with them. We will also show how to solve |
129 saving plots |
169 simple, yet illustrative mathematical problems using SymPy. |
130 </li> |
170 </li> |
131 <li> |
171 <li> |
132 multiple plots |
172 Outline |
133 </li> |
173 <ul> |
134 <li> |
174 <li>Installing, configuring and running SymPy.</li> |
135 saving to scripts and running them (from ipython) |
175 <li>Basics of mathematical expressions: |
136 </li> |
176 <ul> |
137 <li> |
177 <li>symbols, dummy symbols</li> |
138 running the same thing in sage notebook |
178 <li>constructing expressions</li> |
139 <ul> |
179 <li>expression traversal</li> |
140 <li> |
180 <li>pattern matching</li> |
141 change language to python, import pylab, simple plot, savefig |
181 </ul> |
142 </li> |
182 </li> |
143 </ul> |
183 <li>Common issues, pitfalls and differences with other CAS: |
144 </li> |
184 <ul> |
145 </ul> |
185 <li>1/3 is not a rational number</li> |
146 </li> |
186 <li>why you shouldn't write 10**(-1000)</li> |
147 <li> |
187 <li>issues with caching of computation results</li> |
148 Plotting Experimental Data (1 hr) (<b>Puneeth</b>) |
188 </ul> |
149 <ul> |
189 </li> |
150 <li> |
190 <li>Using built-in and implementing customized printers.</li> |
151 plotting points with lists |
191 <li>Arbitrary precision numerical computing.</li> |
152 <ul> |
192 <li>Interaction with numerical libraries (NumPy, SciPy).</li> |
153 <li> |
193 <li>Examples.</li> |
154 basic lists |
194 </ul> |
155 <ul> |
195 </li> |
156 <li> |
196 </ul> |
157 indexing |
197 |
158 </li> |
198 <h3 id="sec2.5">Ole Nielsen: Mapping and Geoprocessing with Python (1 hr)</h3> |
159 <li> |
199 <ul> |
160 appending |
200 <li> |
161 </li> |
201 Putting information on a map and analyzing spatial data are fundamental to a |
162 </ul> |
202 wide range of areas such as navigation, working with climate or geological |
163 </li> |
203 data, disaster management, presentation of modelling results, demographics, |
164 </ul> |
204 social networking etc. However, making and viewing maps is just the tip of |
165 </li> |
205 the iceberg: to communicate spatial information much work is needed under |
166 <li> |
206 the hood to read, write, manipulate and process the data underpinning the |
167 loading data from files using loadtxt |
207 maps. |
168 </li> |
208 </li> |
169 <li> |
209 <li> |
170 using for loop with lists |
210 T This tutorial will give a practical introduction to tools and techniques |
171 <ul> |
211 available for processing spatial information and, through hands-on |
172 <li> |
212 exercises, give the participants a sense of how to manipulate spatial data |
173 pendulum example |
213 using Python. Depending on time, topics covered include reading and writing |
174 </li> |
214 of important data formats for both raster and vector data, looking at the |
175 </ul> |
215 layers with qgis, awareness of issues with datums and projections, |
176 </li> |
216 calculating area and centroids of polygons, performance enhancement using |
177 </ul> |
217 vector operations, numerical stability issues, calculation of distance |
178 </li> |
218 between points on the surface of Earth, interpolation from raster grids to |
179 </ul> |
219 points etc. The tutorial has been developed for Ubuntu Linux 11.04/11.10 and |
180 |
220 will provide source code, tests and data for this platform. However, the |
181 |
221 content and messages should be general and apply to any self-respecting |
182 |
222 platform. |
183 |
223 </li> |
184 |
224 <li> |
185 |
225 I assume that participants know how to write and run Python scripts and are |
186 |
226 OK having a crack at implementing simple numerical operations such as |
187 <h4 id="sec-2">Day 4 </h4> |
227 summations in Python. I don't assume any previous knowledge of mapping or |
188 |
228 Geographic Information Systems (GIS). The tutorial depends on the |
189 |
229 packages qgis and gdal-bin as well as the python dependencies python-numpy |
190 <ul> |
230 and python-gdal which are preloaded on the distributed live-DVD. The |
191 <li> |
231 tutorial material itself will be available in the Subversion repository |
192 Arrays (1 hr) (<b>Perry</b>) |
232 http://oles-tutorials.googlecode.com/svn/trunk/scipy2011 and also on a USB |
193 <ul> |
233 stick that I will bring along. |
194 <li> |
234 </li> |
195 Why use arrays |
235 <li> |
196 <ul> |
236 If you have some spatial data you want to manipulate in Python feel free to |
197 <li> |
237 bring it along and grab me during a lunch break. |
198 finding sine of a list of million numbers |
238 </li> |
199 </li> |
239 </ul> |
200 </ul> |
240 |
201 </li> |
241 |
202 <li> |
242 <h3 id="sec2.6">Eric Jones: Traits + Traits UI (2 hrs)</h3> |
203 getting started with arrays |
243 <ul> |
204 </li> |
244 <li> |
205 <li> |
245 Enthought’s traits package provides for a powerful object model which |
206 accessing parts of arrays |
246 provides a host of useful functionality with a clean and expressive syntax. |
207 <ul> |
247 It is an open source library and forms the basis of the Enthought Tool Suite and many of |
208 <li> |
248 Enthought’s internal commercial projects. In this tutorial we will cover the basics of using |
209 1d slicing |
249 Traits along with the UI library TraitsUI which makes it very easy to build powerful and |
210 </li> |
250 interactive, user interfaces using Traits. |
211 <li> |
251 </li> |
212 1d striding |
252 </ul> |
213 </li> |
253 |
214 <li> |
254 |
215 2d slicing |
255 <h3 id="sec2.7">Prabhu Ramachandran and Gael Varoquaux, Mayavi for 3D visualization (2 hrs)</h3> |
216 </li> |
256 <ul> |
217 <li> |
257 <li> |
218 2d striding |
258 At the end of this tutorial attendees will learn how to visualize numpy |
219 </li> |
259 arrays using Mayavi's mlab interface. They will also learn enough about |
220 </ul> |
260 mayavi to be able to create their own simple datasets and visualize |
221 </li> |
261 them. If this tutorial follows one on traits, then attendees will learn |
222 <li> |
262 how easy it is to embed 3D visualization in their own application UIs |
223 lena example of above |
263 (provided they are written in wxPython or PyQt). |
224 </li> |
264 </li> |
225 <li> |
265 <li> |
226 element wise operations |
266 In this tutorial, we first provide a rapid overview of Mayavi_ and its |
227 </li> |
267 features. We then move on to using Mayavi via IPython_ and mlab. This |
228 <li> |
268 is done in a hands-on fashion and introduces the audience to visualizing |
229 matrices |
269 numpy arrays and the basic mayavi visualization pipeline. We then |
230 <ul> |
270 introduce the audience to the basic objects and data sources used in |
231 <li> |
271 Mayavi. We end with an example of creating custom dialogs using Traits |
232 operations on matrices like det, inv, norm. |
272 and embedding 3D visualization in these dialogs with Mayavi. |
233 </li> |
273 </li> |
234 </ul> |
274 <li> |
235 </li> |
275 Packages required |
236 </ul> |
276 <ul> |
237 </li> |
277 <li><a href="http://code.enthought.com/projects/mayavi">Mayavi</a></li> |
238 <li> |
278 <li><a href="http://ipython.scipy.org">IPython</a></li> |
239 Scipy (1 hr 30 min) (<b>John</b>) |
279 <li><a href="http://code.enthought.com/projects/traits">Traits</a></li> |
240 <ul> |
280 <li>numpy, scipy</li> |
241 <li> |
281 </ul> |
242 least square fit |
282 </li> |
243 </li> |
283 </ul> |
244 <li> |
284 |
245 Roots |
285 <h3 id="sec2.8">Puneeth Chaganti, Sage introduction/tutorial: (1 hr)</h3> |
246 <ul> |
286 <ul> |
247 <li> |
287 <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> |
248 introduction to functions |
288 <li>A rough schedule of the talk would be as follows: |
249 </li> |
289 <ul> |
250 </ul> |
290 <li>Introduction</li> |
251 </li> |
291 <li>Starting the server</li> |
252 <li> |
292 <li>The UI</li> |
253 Solving Equations |
293 <li>Getting Help</li> |
254 </li> |
294 <li>Overview of what's available in Sage |
255 <li> |
295 <ul> |
256 ODE |
296 <li>Basic Algebra</li> |
257 <ul> |
297 <li>Basic Calculus</li> |
258 <li> |
298 <li>Basic Plotting</li> |
259 revisiting functions |
299 </ul> |
260 </li> |
300 </li> |
261 </ul> |
301 </ul> |
262 </li> |
302 </li> |
263 <li> |
303 </ul> |
264 FFT |
304 |
265 </li> |
305 <h3 id="sec2.9">Pankaj Pandey and Prabhu Ramachandran, An introduction to Cython (1 hrs)</h3> |
266 </ul> |
306 <ul> |
267 </li> |
307 <li> |
268 <li> |
308 At some level, Cython (http://www.cython.org) can be thought of a Python to C compiler. |
269 Python Language: Basics (1 hr) (<b>Asokan</b>) |
309 It allows someone to write extension modules in a language very similar to Python and |
270 <ul> |
310 therefore makes it rather easy to write C-extensions. In this tutorial we will cover |
271 <li> |
311 the basics of building extension modules with Cython. |
272 basic data-types |
312 </li> |
273 <ul> |
313 <li> |
274 <li> |
314 Package requirements: You will require to have Cython, the |
275 strings |
315 Python development headers and a working C-compiler to run the hands-on exercises. |
276 </li> |
316 </li> |
277 </ul> |
317 </ul> |
278 </li> |
318 |
279 <li> |
|
280 Operators |
|
281 </li> |
|
282 <li> |
|
283 I/O |
|
284 </li> |
|
285 <li> |
|
286 conditionals |
|
287 </li> |
|
288 <li> |
|
289 loops |
|
290 <ul> |
|
291 <li> |
|
292 while |
|
293 </li> |
|
294 <li> |
|
295 for loop and its usage with range |
|
296 </li> |
|
297 </ul> |
|
298 </li> |
|
299 </ul> |
|
300 </li> |
|
301 <li> |
|
302 Python Language: Data structures (1hr 30 min) (<b>Asokan</b>) |
|
303 <ul> |
|
304 <li> |
|
305 manipulating lists |
|
306 </li> |
|
307 <li> |
|
308 dictionaries |
|
309 </li> |
|
310 <li> |
|
311 manipulating strings |
|
312 </li> |
|
313 <li> |
|
314 getting started with tuples |
|
315 </li> |
|
316 <li> |
|
317 sets |
|
318 </li> |
|
319 <li> |
|
320 examples |
|
321 </li> |
|
322 </ul> |
|
323 </li> |
|
324 </ul> |
|
325 |
|
326 |
|
327 |
|
328 |
|
329 |
|
330 |
|
331 |
|
332 <h4 id="sec-3">Day 5 </h4> |
|
333 |
|
334 |
|
335 <ul> |
|
336 <li> |
|
337 Python Language: Advanced (1 hr) (<b>Madhu</b>) |
|
338 <ul> |
|
339 <li> |
|
340 functions |
|
341 <ul> |
|
342 <li> |
|
343 defining functions |
|
344 </li> |
|
345 <li> |
|
346 keyword arguments and default arguments |
|
347 </li> |
|
348 </ul> |
|
349 </li> |
|
350 <li> |
|
351 using python modules |
|
352 </li> |
|
353 <li> |
|
354 writing re-usable python scripts |
|
355 </li> |
|
356 <li> |
|
357 PEP-8? |
|
358 </li> |
|
359 </ul> |
|
360 </li> |
|
361 <li> |
|
362 More Numpy? (broadcasting, indexing tricks…) (1hr) (<b>Stefan</b>) |
|
363 </li> |
|
364 <li> |
|
365 Mayavi (1 hr) (<b>Prabhu</b>) |
|
366 </li> |
|
367 <li> |
|
368 Cython (1 hr) (<b>Stefan</b>) |
|
369 </li> |
|
370 <li> |
|
371 Version Control (Hg/Git) (15 min) (<b>Madhu</b>) |
|
372 </li> |
|
373 <li> |
|
374 ReST & Scipy/Numpy Documentation Editor (45 min) (<b>Stefan</b>) |
|
375 </li> |
|
376 </ul> |
|
377 |
|
378 |
|
379 <p>Any participants using their own laptops should have the required |
|
380 software installed on their machines, before coming to the venue of |
|
381 the tutorials. The installation instructions are available <a href="http://fossee.in/installation-how-to">here</a>. |
|
382 </p> |
|
383 |
|
384 |
|
385 <h3 id="sec-5"><span class="section-number-3"></span>Methodology </h3> |
|
386 |
|
387 <ul> |
|
388 <li> |
|
389 Completely hands on, exploratory mode with minimal lectures introducing essential concepts and techniques. |
|
390 </li> |
|
391 <li> |
|
392 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. |
|
393 </li> |
|
394 <li> |
|
395 We shall be conducting quizzes during the course of the workshop to evaluate the degree to which the objectives have been accomplished. |
|
396 |
|
397 </li> |
|
398 </ul> |
|
399 |
|
400 <p>Laptops can be brought by participants, and additional laptops/computers can be provided for use for those required. Charging points will be available. |
|
401 </p> |
|
402 <p> |
|
403 As far as installations go, you would require the following: |
|
404 </p> |
|
405 <ul> |
|
406 <li> |
|
407 For Debian/ Ubuntu and the like: |
|
408 (a) IPython |
|
409 (b) Python doc |
|
410 (c) the Python Profiler |
|
411 (d) Scipy/Numpy |
|
412 (e) Matplotlib |
|
413 (f) Mayavi2 |
|
414 |
|
415 </li> |
|
416 <li> |
|
417 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) : |
|
418 (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. |
|
419 |
|
420 </li> |
|
421 </ul> |
|
422 |
|
423 <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>). |
|
424 </p> |
|
425 |
319 |
426 {% endblock content %} |
320 {% endblock content %} |