Basic Tutorial: * Tutorial title: Introductory Scientific Computing with Python * Intended audience (difficulty level, experience required): Beginning programmers who have experience with some programming language. A knowledge of elementary programming concepts is essential. Audience should know how to edit text files comfortably. We strongly recommend that attendees go through at least 7 chapters of the online tutorial on Python: http://docs.python.org/tutorial and ideally complete it. It should take no more than one afternoon. Prior experience with Scilab/Matlab/octave or similar tools would be useful but not necessary. * Prerequisites: What experience must attendees have in order to fully benefit from this tutorial? Basic usage of a computer and elementary computer programming along with experience with some form of numerical computing via scilab/octave/matlab/mathematica. You should go through the official Python tutorial (or be comfortable with the Python programming language). You should definitely have the recommended packages installed and your computer setup for this tutorial. * Promotional summary (max. 100 words). At the end of this tutorial, attendees should be able to use the basic tools and libraries for Python-based scientific computing. We imagine that an undergraduate/graduate engineering/science student would be able to *start* doing most of their basic computing tasks using Python. * Detailed tutorial outline The session is entirely hands-on. We focus on common tasks and introduce the Python language in the context of these common tasks. Here is a rough outline of what we propose to cover: - Introduction and Preliminaries. - Introduction to IPython. - Creating basic plots with matplotlib. - NumPy array basics: 1D arrays. - Reading data files. - More on NumPy: multi-dimensional arrays, slicing, elementary image processing, random numbers. - Using SciPy for Linear Algebra, FFT's, root finding and integrating ODEs. Session wise slide breakup: 1. intro.pdf 2. prelims.pdf 3. ipython_plotting.pdf 4. saving_scripts.pdf 5. lists_arrays.pdf 6. numpy.pdf 7. more_numpy.pdf 8. scipy.pdf 9. exercises.pdf 10. notebook.pdf 11. mlab.pdf * Attendee Requirements: A laptop is definitely recommended since this will be a hands-on session. You will need to have Python (2.7/3.x would work fine), IPython (0.10.x), Numpy (1.x), SciPy (>0.5.x), matplotlib (any recent version). On Linux, Windows and Mac OS X it is easiest to install these by installing the Enthought Canopy.