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 %} |