%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% original theme : progressbar by Sylvain Bouveret <sylvain[dot]bouveret[aT]cert[DoT]fr>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[12]{beamer}
\usecolortheme{crane}

\useinnertheme{rectangles}
%\useinnertheme{progressbar}
%\useoutertheme{progressbar}
\usepackage{iwona}


%start
\RequirePackage{tikz}
\usetikzlibrary{fadings}
\RequirePackage{ifthen}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Processing options...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\makeatletter
\def\progressbar@headline{none}%
\def\progressbar@frametitle{picture-section}%
\def\progressbar@imagename{images/tree04}%
\def\progressbar@titlepage{picture}%
\define@key{progressbar}{headline}[none]{%
  \def\progressbar@headline{#1}%
}
\define@key{progressbar}{frametitle}[picture]{%
  \def\progressbar@frametitle{#1}%
}
\define@key{progressbar}{imagename}{%
  \def\progressbar@imagename{#1}%
  \pgfdeclareimage[width=0.12\textwidth,interpolate=true]{headlineimage}{\progressbar@imagename}
}
\define@key{progressbar}{titlepage}[picture]{%
  \def\progressbar@titlepage{#1}%
}

\def\progressbaroptions#1{\setkeys{progressbar}{#1}}

\def\insertintermediateframenumber{\inserttotalframenumber}


% This piece of code is just to make the code Babel-compliant with every
% language.
% It comes from:
% http://forum.mathematex.net/latex-f6/beamer-et-shorthandoff-t3851.html
\makeatletter
\newboolean{@twopt} \setboolean{@twopt}{false}
\newcommand*{\twoptoff}{\ifnum \catcode`\;=13 \catcode`\;=12 \setboolean{@twopt}{true} \fi}
\newcommand*{\twopton}{\if@twopt \catcode`\;=13 \setboolean{@twopt}{false}  \fi}
%
%

\mode<presentation>
\newbox\progressbar@blockbox

% The ultimate trick to prevent the itemize-inside-blocks bug from happening...
\let\progressbar@tempitemize=\itemize
\def\progressbar@itemize{\ifhmode\else\vskip-0.85\topsep\fi\progressbar@tempitemize}
% 

\defbeamertemplate*{block begin}{progressbar theme}
{
  \setbox\progressbar@blockbox=\hbox to 0.95\textwidth\bgroup\vbox\bgroup\raggedright\begin{minipage}{0.95\textwidth} \ifx\insertblocktitle\@empty\else{\usebeamerfont{block title}\usebeamercolor{block title}\emph{\insertblocktitle}}\\[-0.3cm]% Just to be "babel-safe"
    \twoptoff{}\tikz\draw[black!20!bg] (0, 0) -- (\textwidth, 0);\twopton{}\fi\usebeamerfont{block body}\global\let\itemize=\progressbar@itemize\par
}
\defbeamertemplate*{block end}{progressbar theme}
{
  \global\let\itemize=\progressbar@tempitemize\end{minipage}\egroup\egroup
  \usebeamercolor{block body}
  {\centering
    \begin{tikzpicture}
    \draw (0, 0) node[draw=fg!20!bg,fill=bg, rounded corners=2pt] (box) {\box\progressbar@blockbox};
  \end{tikzpicture}}
}

\defbeamertemplate*{block alerted begin}{progressbar theme}
{
  \setbox\progressbar@blockbox=\hbox to 0.95\textwidth\bgroup\vbox\bgroup\raggedright\begin{minipage}{0.95\textwidth}{\usebeamerfont{block title alerted}\color{alerted text.fg}\insertblocktitle}\\[-0.3cm]\twoptoff{}% Just to be "babel-safe"
    \usebeamercolor{block body alerted}
    \tikz\draw[fg!20!bg] (0, 0) -- (\textwidth, 0);\twopton{}\usebeamerfont{block body alerted}\usebeamercolor{block body}\global\let\itemize=\progressbar@itemize\par
}
\defbeamertemplate*{block alerted end}{progressbar theme}
{
  \global\let\itemize=\progressbar@tempitemize\end{minipage}\egroup\egroup
  \usebeamercolor{block body alerted}
  {\centering
  \begin{tikzpicture}
    \draw node[draw=fg!20!bg,fill=bg, rounded corners=2pt] {\box\progressbar@blockbox};
  \end{tikzpicture}}
}

\defbeamertemplate*{block example begin}{progressbar theme}
{
  \setbox\progressbar@blockbox=\hbox to 0.95\textwidth\bgroup\vbox\bgroup\raggedright\begin{minipage}{0.95\textwidth}{\usebeamerfont{block title example}\color{example text.fg}\insertblocktitle}\\[-0.3cm]\twoptoff{}% Just to be "babel-safe"
    \usebeamercolor{block body example}
    \tikz\draw[fg!20!bg] (0, 0) -- (\textwidth, 0);\twopton{}\usebeamerfont{block body example}\usebeamercolor{block body}\global\let\itemize=\progressbar@itemize\par
}
\defbeamertemplate*{block example end}{progressbar theme}
{
  \global\let\itemize=\progressbar@tempitemize\end{minipage}\egroup\egroup
  \usebeamercolor{block body example}
  {\centering
    \begin{tikzpicture}
      \draw node[draw=fg!20!bg,fill=bg, rounded corners=2pt] {\box\progressbar@blockbox};
    \end{tikzpicture}}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Frame title...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\progressbar@separator{--}

\ifx\progressbar@imagename\@relax
\else
\pgfdeclareimage[width=0.12\textwidth,interpolate=true]{headlineimage}{\progressbar@imagename}
\fi
\ifx\progressbar@frametitle\@relax
\def\progressbar@frametitle{normal}
\fi

\defbeamertemplate*{frametitle}{progressbar theme}{
\edef\tempa{normal}
\ifx\progressbar@frametitle\tempa
\begin{centering}
  \textbf{\insertframetitle}
  \par
\end{centering}
\else
\edef\tempa{picture-subsection}
\ifx\progressbar@frametitle\tempa
\parbox[c]{0.13\textwidth}{\pgfuseimage{headlineimage}}
\parbox[c]{0.85\textwidth}{
  \usebeamercolor{frametitle}{\scriptsize \ifx\insertsection\@empty\ \else\insertsection\fi\ifx\insertsubsection\@empty\else\ \progressbar@separator\ \insertsubsection\fi}\\[-0.3cm]\rule{0.7\textwidth}{0.5pt}\par%\vskip-1cm\rule{0.7\textwidth}{0.5pt}\par
  \textbf{\vphantom{Hp}\insertframetitle}
}
\else
\parbox[c]{0.13\textwidth}{\pgfuseimage{headlineimage}}
\parbox[c]{0.85\textwidth}{
  \usebeamercolor{frametitle}{\scriptsize \ifx\insertsection\@empty\ \else\insertsection\fi}\\[-0.3cm]\rule{0.7\textwidth}{0.5pt}\par%\vskip-1cm\rule{0.7\textwidth}{0.5pt}\par
  \textbf{\vphantom{Hp}\insertframetitle}
}
\fi
\fi
}

%end

% Beamer theme by Sylvain Bouveret <sylvain[dot]bouveret[aT]cert[DoT]fr>
% jun. 2007 version 0.32
%
% based on the LaTeX-Beamer package :
% Copyright 2003 by Till Tantau <tantau@users.sourceforge.net>
%
% This program can be redistributed and/or modified under the terms
% of the GNU Public License, version 2.

\RequirePackage{tikz}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Some color definitions...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbeamercolor{progressbar primary}{parent=palette primary}
\setbeamercolor{progressbar secondary}{parent=palette secondary}
\setbeamercolor{progressbar tertiary}{parent=palette tertiary}
\setbeamercolor{progressbar quaternary}{parent=palette quaternary}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Some computations dedicated to the progressbar...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newdimen\progressbar@currentbarlength
\newdimen\progressbar@framenumberrectangle
\newdimen\progressbar@titlerectangle
\newdimen\progressbar@leftbar

\newcount\progressbar@tmpresult
\newcount\progressbar@numer
\newcount\progressbar@denom
\newcount\progressbar@barlength

\progressbar@framenumberrectangle=\paperwidth
\progressbar@titlerectangle=\paperwidth

\advance\progressbar@framenumberrectangle by -0.9cm
\advance\progressbar@titlerectangle by -1.1cm

\progressbar@barlength=115 % (in millimeters)
\progressbar@leftbar=\progressbar@titlerectangle
\advance\progressbar@leftbar by -\progressbar@barlength mm

\def\insertprogressbar{
  \ifnum\inserttotalframenumber=1\else
    \progressbar@numer=\insertframenumber
    \advance\progressbar@numer by -1
    \progressbar@denom=\inserttotalframenumber
    \advance\progressbar@denom by -1
    \progressbar@tmpresult=\progressbar@barlength
    \multiply\progressbar@tmpresult by \progressbar@numer
    \divide\progressbar@tmpresult by \progressbar@denom
    \progressbar@currentbarlength=\progressbar@tmpresult mm

    \begin{tikzpicture}
      \shade[top color=bg, bottom color=bg!80!fg] (0, 0) rectangle  (\paperwidth, 0.6cm);
      \shade[left color=bg,right color=bg!70!fg] (.5\paperwidth, 0.2cm) rectangle (\paperwidth, 0.22cm);
      \draw (\progressbar@framenumberrectangle, 0.21cm) node [anchor=mid west, draw=bg!70!fg, fill=bg] {\color{structure.fg!70!bg}\insertframenumber~/~\inserttotalframenumber};
      \draw (\progressbar@titlerectangle, 0.32cm) node [anchor=south east] {\color{bg!70!fg}\inserttitle};
      \fill (\progressbar@leftbar, 0.12cm) [fill=bg, rounded corners=0.1cm] rectangle (\progressbar@titlerectangle, 0.3cm);
      \ifnum\insertframenumber=1\else
      \shade[left color=progressbar primary.fg!10!bg, right color=progressbar primary.fg!20!bg, rounded corners=0.1cm] (\progressbar@leftbar, 0.12cm) rectangle ++(\progressbar@currentbarlength, 0.2cm);
      \fi
      \draw (\progressbar@leftbar, 0.11cm) [draw=bg!70!fg, rounded corners=0.1cm] rectangle ++(\progressbar@barlength mm, 0.2cm);
    \end{tikzpicture}
  \fi
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Definition of the customized templates...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\mode<presentation>

\newlength\progressbar@sectionboxwidth
\newlength\progressbar@sectionboxheight
\newbox\progressbar@sectionbox
\newbox\progressbar@sectionboxbox

\usesectionheadtemplate
  {\hfill
    \setbox\progressbar@sectionbox=\hbox{\insertsectionhead}%
    \progressbar@sectionboxwidth=\wd\progressbar@sectionbox
    \advance\progressbar@sectionboxwidth by 4pt
    \setbox\progressbar@sectionbox=\hbox{\pgfinterruptpicture t \endpgfinterruptpicture}%
    \progressbar@sectionboxheight=\ht\progressbar@sectionbox
    \advance\progressbar@sectionboxheight by 4pt
    \begin{tikzpicture}
      \useasboundingbox (-0.5\progressbar@sectionboxwidth, 0pt) rectangle (0.5\progressbar@sectionboxwidth, \progressbar@sectionboxheight);
      \draw[anchor=base] (0pt, 2pt) node {\color{structure.fg!80!bg} \insertsectionhead};
      \draw[rounded corners=3pt, draw=structure.fg!80!bg] (-0.5\progressbar@sectionboxwidth, 0pt) rectangle (0.5\progressbar@sectionboxwidth, \progressbar@sectionboxheight);
    \end{tikzpicture}
  }
  {\hfill
    \setbox\progressbar@sectionbox=\hbox{\pgfinterruptpicture\insertsectionhead\endpgfinterruptpicture}%
    \progressbar@sectionboxwidth=\wd\progressbar@sectionbox
    \advance\progressbar@sectionboxwidth by 4pt
    \setbox\progressbar@sectionboxbox=\hbox{\pgfinterruptpicture t \endpgfinterruptpicture}%
    \progressbar@sectionboxheight=\ht\progressbar@sectionboxbox
    \advance\progressbar@sectionboxheight by 4pt
    \begin{tikzpicture}
      \useasboundingbox (-0.5\progressbar@sectionboxwidth, 0pt) rectangle (0.5\progressbar@sectionboxwidth, \progressbar@sectionboxheight);
      \draw[anchor=base] (0pt, 2pt) node {\color{structure.fg!50!bg} \insertsectionhead};
    \end{tikzpicture}
  }




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Headline...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\defbeamertemplate*{headline}{progressbar theme}
{%
  \leavevmode%
  \begin{beamercolorbox}[wd=\paperwidth,ht=4ex,dp=1.125ex]{section in head/foot}%
    \insertsectionnavigationhorizontal{\paperwidth}{}{}%\hskip0pt plus1filll}{}%
  \end{beamercolorbox}%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Footline...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\defbeamertemplate*{footline}{progressbar theme}{
  \begin{beamercolorbox}[wd=\paperwidth,ht=0.6cm,dp=0ex]{progressbar in head/foot}%
    \insertprogressbar
  \end{beamercolorbox}%
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Title page...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%\institute{(void)}

\defbeamertemplate*{title page}{progressbar theme}{
  \pgfdeclarehorizontalshading{separationtitlepagelineshading}{0.5pt}{color(0cm)=(bg); color(0.5\textwidth)=(structure.fg); color(\textwidth)=(bg)}
  
  \makeatletter
  \begin{center}
    \textbf{\textcolor{structure.fg}\large\inserttitle}
    
    \pgfuseshading{separationtitlepagelineshading}
    \vskip\baselineskip
    \footnotesize\insertauthor\\[\baselineskip]
    \ifx\insertinstitute\@empty \else\tiny\insertinstitute\\[\baselineskip]\fi
    \insertlogo
    \vskip\baselineskip
    \pgfuseshading{separationtitlepagelineshading}
    \vfill
    \footnotesize    
    \insertdate
  \end{center}
  \makeatother
}
\setbeamertemplate{title page}[mytitlepage]



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Background...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\defbeamertemplate*{background canvas}{progressbar theme}{\pgfuseshading{background shading}}%[action]

\AtBeginDocument{%
  {
    \usebeamercolor{progressbar primary}
    \pgfdeclareverticalshading{background shading}{\the\paperwidth}{color(0cm)=(normal text.bg); color(0.8\paperheight)=(normal text.bg); color(0.95\paperheight)=(progressbar primary.bg); color(\paperheight)=(progressbar primary.bg)
    }
  }
}

\mode
<all>

\makeatother


%\progressbaroptions{titlepage=normal,headline=sections,frametitle=picture-section}
\setbeamercovered{dynamic}

\newenvironment<>{varblock}[2][\textwidth]{%
  \setlength{\textwidth}{#1}
  \begin{actionenv}#3%
    \def\insertblocktitle{#2}%
    \par%
    \usebeamertemplate{block begin}}
  {\par%
    \usebeamertemplate{block end}%
  \end{actionenv}}

\begin{document}
\title{Scientific Computing using Python}
\subtitle{}
\author[Manu]{\textbf{Manu Krishnan T.V}}
\institute{07103044 \linebreak \linebreak Dept. of CSE, MESCE \linebreak Guide: Jahfar Ali}
\date{January 4, 2011}

\begin{frame}
  \titlepage
\end{frame}

\progressbaroptions{imagename=pics/Scientific.png}
\begin{frame}
\frametitle{Outline}
  \tableofcontents[pausesections]
\end{frame}


\section{Introduction}

\begin{frame}
\begin{center}
  \huge Scientific Computing \\
  \small The field of study concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyse and solve scientific problems.
\end{center}
\end{frame}

\begin{frame}
\frametitle{Problem Domains}
\begin{itemize}
 \item Numerical simulations
 \begin{itemize}
  \item Reconstruct and understand known events.
  \item Predict future or unobserved situations.
 \end{itemize}
 \pause
 \item Model fitting and data analysis
 \begin{itemize}
  \item Use graph theory to model networks, especially those connecting individuals, organizations, and websites.
 \end{itemize}
 \pause
 \item Computational optimization
  \begin{itemize}
  \item Optimize known scenarios like technical and manufacturing processes, front-end engineering, etc.
 \end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Methods and Algorithms}
\begin{itemize}
 \item Numerical analysis 
 \pause
 \item Application of Taylor series as convergent and asymptotic series 
 \pause
 \item Computing derivatives by Automatic differentiation (AD) 
 \pause
 \item Computing derivatives by finite differences 
 \pause
 \item Molecular dynamics 
 \pause
 \item Discrete Fourier transform and applications.
 \pause
 \item etc
\end{itemize}
\end{frame}

\progressbaroptions{imagename=pics/Python.png}

\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 

\section{Python}
\begin{frame}[t]
\frametitle{Python}
Python is an interpreted, general-purpose high-level programming language.
\pause
\linebreak \linebreak
Features:
\begin{itemize}
\item Cross Platfom
\pause
\item Clear Syntax
\pause
\item "batteries included" \linebreak
 - Has a large library
\pause
\item Easy to code
\pause
\item Multi Paradigm
\pause
\item Useful Built-In Objects
\pause
\item Functions and Classes
\pause
\item Ease of Extension
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Cross Platform}
\begin{itemize}
\item Python supports multiple operating systems.
\begin{itemize}
	\item GNU/Linux
	\item Mac
	\item Windows
\end{itemize}
\pause
\item Runs on even low level embedded systems.
\end{itemize}
\end{frame}

\frame[containsverbatim]{\frametitle{Clear Syntax}
  \small\begin{verbatim}
		def is_digits_even(n):
		  if n < 0:
		    n = -n
		  while n > 0:
		    if n % 2 == 1:
		      return False
		    n /= 10
		  return True
    
		a=input()
		if is_digits_even(a):
		  print "All digits are even!"
  \end{verbatim}
}

\begin{frame}
\frametitle{Batteries Included}
\begin{itemize}
\item Has a vast library.
\pause
\item New libraries can be easily added.
\end{itemize}
\end{frame}

\frame[containsverbatim]{\frametitle{Easy to Code}
  \small\begin{verbatim}
		def is_digits_even(n):
		  if n < 0:
		    n = -n
		  while n > 0:
		    if n % 2 == 1:
		      return False
		    n /= 10
		  return True
    
		a=input()
		if is_digits_even(a):
		  print "All digits are even!"
  \end{verbatim}
}

\begin{frame}
\frametitle{Multi Paradigm}
\begin{itemize}
 \item Object Oriented
 \pause
 \item Functional
 \pause
 \item Imperative
\end{itemize}
\end{frame}

\frame[containsverbatim]{\frametitle{Useful Built-In Objects}
  \small\begin{verbatim}
	>>> type(1), type(1.0), type(1.0j), type('one')
	(<type 'int'>, <type 'float'>, <type 'complex'>,
	<type 'str'>)
  \end{verbatim}
}

\frame[containsverbatim]{\frametitle{Functions \& Classes}
  \small\begin{verbatim}
		def signum( r ):
    """returns 0 if r is zero
    -1 if r is negative
    +1 if r is positive"""
    if r < 0:
        return -1
    elif r > 0:
        return 1
    else:
        return 0
  \end{verbatim}
}

\begin{frame}
\frametitle{Ease of extension}
\begin{itemize}
 \item Python is extended with a large C-API.
 \pause
 \item Enables faster execution.
 \pause
 \item Can easily connect to non-Python compiled code.
\end{itemize}
\end{frame}

\progressbaroptions{imagename=pics/NumPy.png}

\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 

\section{NumPy}
\begin{frame}
\frametitle{What is NumPy}
\begin{itemize}
 \item NumPy is a Python Module.
 \pause
 \item Supports complex numerical calculations.
 \pause
 \item Freely available at http://numpy.org
 \pause
 \item It grew out of an original module called Numeric.
 \pause
 \item Version 1.0 released in October 2006.
 \pause
 \item Current stable version: 1.5.1 (November 21, 2010)
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Data types}
\begin{itemize}
 \item Supports all fundamental C data types.
 \pause
 \item Additional support to unicode strings.
 \pause
 \item Supports userdefined data types.
\end{itemize}
\end{frame}

\frame[containsverbatim]{
  \frametitle{Data types}
  \small\begin{verbatim}
	>>> import numpy as N
	
	>>> dt = N.dtype([(’id’, ’i4’),
	(’name’, ’S12’), (’scores’, ’u1’, 4)])
	
	>>> a = N.array([(1001, ’James’, [100,98,97,60]),
	(1002, ’Kathy’,	[100,100,85,98]),
	(1003, ’Michael’,	[84,75, 98,100]),
	(1004, ’John’, [84,76,82,92])], dtype=dt)
  \end{verbatim}
}

\frame[containsverbatim]{
  \frametitle{Data types}
  \small\begin{verbatim}
	>>> a[’name’]
	array([’James’, ’Kathy’, ’Michael’,
	’John’], dtype=’—S12’)
	
	>>> a[’scores’]
	array([[100, 98, 97, 60],
	 [100, 100, 85, 98],
	 [ 84, 75, 98, 100],
	 [ 84, 76, 82, 92], dtype=uint8)
  \end{verbatim}
}

\frame[containsverbatim]{
  \frametitle{Attributes and methods}
  \begin{itemize}
  	\item All arrays have several attributes and methods.
  	\item Some attributes can be set to alter the array's characteristics.
  \end{itemize}
  \small\begin{verbatim}
	>>> b = a.take(a['name'].argsort())
	
	>>> print b
	array([(1001, 'James', [100, 98, 97, 60]),
  	(1004, 'John', [84, 76, 82, 92]),
  	(1002, 'Kathy', [100, 100, 85, 98]),
  	(1003, 'Michael', [84, 75, 98, 100])],
  	dtype=[('id', '<i4'), ('name', '|S12'),
  		('scores', '|u1', 4)])
  \end{verbatim}
}

\frame[containsverbatim]{
  \frametitle{Indexing}
  \begin{itemize}
  	\item Supports multiple kinds of indexing.
  \end{itemize}
  \small\begin{verbatim}
  >>> import numpy as n
  
  >>> a = n.random.randn(50,25)
  
  >>> print a.shape, a[10,15]
  (50, 25) 0.5295135653
  \end{verbatim}
}

\begin{frame}
\frametitle{Universal Functions}
\begin{itemize}
 \item Simple to define functions that take N inputs and return M outputs.
 \pause
 \item Provides universal function objects (ufuncs).
 \pause
 \item More than 50 mathematical functions are defined as universal functions.
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Universal Functions - Features}
\begin{itemize}
 \item \textbf{Broadcasting}: Specific method for arrays that don't have the same shape to try and act as if they do.
 \pause
 \item Provides features to define output arrays explicitly.
 \pause
 \item Memory saving type conversion.
 \pause
 \item \textbf{Hardware error handling}: Supports querying the result of hardware error flags.
\end{itemize}
\end{frame}


\progressbaroptions{imagename=pics/SciPy.png}

\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 


\section{SciPy}
\begin{frame}
\frametitle{What is SciPy}
\begin{itemize}
 \item SciPy is again a Python Module.
 \pause
 \item Supports optimizations, special functions, image processing, etc
 \pause
 \item Depends on NumPy.
 \pause
 \item Freely available at http://scipy.org
 \pause
 \item Current stable version: 0.8.0 (July 28, 2010)
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{IPython}
\begin{itemize}
 \item IPython is an interactive shell for the Python programming language.
 \pause
 \item A component of the SciPy package.
 \pause  
 \item Supports additional shell syntax, syntax highlighting, tab completion and rich history.
\end{itemize}
\end{frame}


\progressbaroptions{imagename=pics/Matplotlib.png}

\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 

\section{Matplotlib}
\begin{frame}
\frametitle{Matplotlib}
\begin{itemize}
 \item Matplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension.
 \pause
 \item Supports generic GUI toolkits, like wxPython, Qt, or GTK.
 \pause
 \item Availiable at http://matplotlib.sourceforge.net/
 \pause
 \item Current stable version: 1.0.0 (7 July 2010)
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Sample Plot}
 \includegraphics[scale=.35]{pics/pic1.png}
\end{frame}

\begin{frame}
\frametitle{Sample Plot}
 \includegraphics[scale=.35]{pics/pic2.png}
\end{frame}

\progressbaroptions{imagename=pics/Scientific.png}

\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 

\section{Advantages}
\begin{frame}
\frametitle{Python + NumPy + Matplotlib}
\begin{itemize}
 \item Based on Python, a full-featured modern OOP language suitable for large-scale software development.
 \pause
 \item Suitable for fast scripting, including CGI scripts.
 \pause
 \item Free, open source, no license servers.
 \pause
 \item Native SVG support
\end{itemize}
\end{frame}


\AtBeginSection[] { 
  \begin{frame}[plain] 
    \frametitle{Outline} 
    \tableofcontents[currentsection] 
  \end{frame} 
  \addtocounter{framenumber}{-1} 
} 

\section{Conclusion}

\begin{frame}
  \begin{center}
    Conclusion
  \end{center}
\end{frame}

\begin{frame}
\frametitle{Reference}
\begin{itemize}
 \item \textbf{Python for Scientific Computing} \\ Travis E Oliphant \\ IEEE 1521-9615/07
 \item \textbf{Guide to NumPy}\\ Travis E Oliphant \\ Trelgol, 2006; \\ www.trelgol.org.
 \item \textbf{Wikipedia} \\http://en.wikipedia.org
\end{itemize}
\end{frame}

\begin{frame}
  \begin{center}
    \huge{Thank You !}
    \linebreak \linebreak \linebreak \small{tvmanukrishnan@gmail.com\linebreak http://www.bizzard.info} \linebreak  \linebreak \linebreak \linebreak \linebreak \linebreak
    \tiny This document is created using \LaTeX\
  \end{center}
\end{frame}
\end{document}


