# Python Old Version

IIT Bombay is leading the effort to popularise Python for Scientific Computing in India. This is part of the Free and Open source Software for Science and Engineering Education (http://fossee.in) project, supported by the National Mission on Education through ICT of MHRD.

IIT Bombay is using Spoken Tutorials (http://spoken-tutorial.org) to create learning material for FOSS. This is the main page for the organisation of the scripts required for Standard two day workshop we conduct on "Python for Scientific Computing" spoken tutorials.

## Contents

- 1 General Information
- 2 Interactive Plotting
- 3 Plotting experimental data
- 4 Plotting experimental data continued
- 5 Handling large files
- 6 Arrays/ Matrices
- 7 Least Square Fit
- 8 Solving Equations
- 9 Ordinary Differential Equations
- 10 Data Types: Numbers
- 11 Strings
- 12 Data Structures: Lists and Tuples
- 13 Data Structures: Dictionaries & Sets
- 14 Conditional statements and Loops
- 15 Functions

**Note:** Each numbered topic corresponds to a single spoken tutorial. Each bulleted point corresponds to a command or topic that must be covered in the given spoken tutorial.

# General Information

This topic will include getting ready with Installation and getting comfortable with the interface which would be used through out the workshop

## Installation procedure of Required Packages

For this study plan following packages will be used:

- IPython
- Matplotlib
- NumPy
- SciPy
- Mayavi2
- Scite

- Windows installation (using Enthought Python Distribution(EPD http://www.enthought.com/products/epd.php ))
- Linux installation (using package manager- show only Debian/Ubuntu as example (sudo apt-get install ipython python-numpy python-scipy python-matplotlib mayavi2 scite))
- Mac

## Basic usage of IPython interpreter

- Starting (and exiting) the interpreter.
- Getting out of loops.
- Viewing history.
- Saving history to scripts.
- Running scripts inside the interpreter.

# Interactive Plotting

- IPython
- Autocompletion
- Help

- Plotting
- Creating simple plots.
- Adding labels and legends.
- Annotating plots.
- Changing the looks: size, linewidth, colors.

# Plotting experimental data

- Lists
- Creation of a list.
- Appending to a list.
- Iterating through list.

- Data Processing
- Handling files.
- For loops.
- Plotting the points

# Plotting experimental data continued

- loadtxt
- Arrays
- Usage
- Operations

- Statistical functions

# Handling large files

- Reading files
- String operations.
- Plotting pie charts.

# Arrays/ Matrices

- Creating matrices.
- Accessing and changing elements.
- Concepts of Striding and Slicing.
- Elementary Image processing.
- Matrices operations.

# Least Square Fit

Least Square Fit

# Solving Equations

- Solving linear equations
- Finding roots pf polynomials
- Roots of non linear equations
- Basics of Functions

# Ordinary Differential Equations

Ordinary Differential Equations

# Data Types: Numbers

- Data types for numbers
- operators
- type conversion

# Strings

- Creating string variables
- Manipulating strings
- I/O operations
- Comments
- Dynamically typed nature

# Data Structures: Lists and Tuples

- Lists
- Initialization
- Operations
- Slicing
- Striding

- Tuples

# Data Structures: Dictionaries & Sets

- Dictionaries
- Initializing
- Accessing elements
- dict.keys and dict.values

- Sets
- Initializing
- Operations

# Conditional statements and Loops

- Writing conditional statements
- While loops
- range function
- for and range

# Functions

- Function definition
- Docstrings
- Function arguments
- Default arguments
- Keyword arguments

- Return values