**[Cr:2, Lc:1, Tt:0, Lb:3]**

- Overview of scientific computing and the role of computers in solving scientific problems.
- Linux Essentials. Operating System concepts and features. Basic commands (file, directory and disk related commands). File system and attributes. I/O devices. Shell and elements of shell programming.
- Editors (Vi and Emacs)
- Number representation in computers and roundoff error. Implications for numerical computing.
- Python programming. Basics and flowcharts. Data types and building blocks. Control statement. Functions. Arrays. Input/Output.
- Data visualisation and analysis, statistical analysis, curve fitting using the least square fit approach.
- Series summation, numerical integration.
- Pseudo random numbers, applications of random sequences in scientific computing, simulating data and experiments, estimating errors in experiments using simulations.
- Solutions of algebraic equations, iterative solutions. Recursion relations, logistics map. Brief overview of fractals resulting from simple maps. Bisection method. Newton-Raphson method.
- Ordinary differential equations, coupled equations, second order equations. Applications in evolution of population, reaction rates, mechanics.
- Systems of linear equations, matrices, row reduction, diagonalisation. Two dimensional arrays. Cellular automata.

- Richard Peterson, Linux: The Complete Reference 6th edition, Tata McGraw (2008).
- The online material available at http://docs.python.org/