Merged heads.
authorPuneeth Chaganti <punchagan@fossee.in>
Wed, 13 Oct 2010 11:15:37 +0530
changeset 317 c6d31837cb06
parent 316 4bebfa8c9a0a (current diff)
parent 309 9d8fd5ea64b2 (diff)
child 318 a45256cc5404
Merged heads.
using_sage_to_teach.rst
writing_python_scripts.rst
--- a/additional_ipython/quickref.tex	Wed Oct 13 11:15:18 2010 +0530
+++ b/additional_ipython/quickref.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -1,11 +1,15 @@
-Creating a tuple:\\
-{\ex \lstinline|    t = (1, "hello", 2.5)|}
+accessing history:\\
+{\ex \lstinline|    \%hist|}
 
-Accessing elements of tuples:\\
-{\ex \lstinline|    t[index] Ex: t[2]|}
+accessing particular line of history:\\
+{\ex \lstinline|    \%hist line_number|}
 
-Accessing slices of tuples:\\
-{\ex \lstinline|    t[start:stop:step]|}
+accessing particular range of history:\\
+{\ex \lstinline|    \%hist start_line stop_line|}
 
-Swapping values:\\
-{\ex \lstinline|    a, b = b, a|}
+saving history to a file:\\
+{\ex \lstinline|    \%save file_path line_numbers|}
+
+running a script:\\
+{\ex \lstinline|    \%run -i file_path|}
+
--- a/advanced-features-functions/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/advanced-features-functions/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -17,6 +17,9 @@
    #. only keyword arguments can be in any order, but should be called
       at the end.
 
+   Answer: only keyword arguments can be in any order, but should be called
+           at the end.
+
 #. Given the following function, identify the keywords with default
    values. 
    ::
@@ -101,8 +104,6 @@
 Larger Questions
 ----------------
 
-.. A minimum of 2 questions here (along with answers)
-
 1. 
 
 2. 
--- a/dictionaries/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/dictionaries/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -35,6 +35,8 @@
 
 {{{ start ipython interpreter by issuing command ipython -pylab }}}
 
+{{{ switch to next slide, Creating dictionary }}}
+
 Let us start by creating an empty dictionary, type the following in
 your IPython interpreter.
 ::
@@ -74,6 +76,8 @@
 in dictionaries the order cannot be predicted and you can see that the
 values are not in the order that we entered in.
 
+{{{ switch to next slide, accessing elements }}}
+
 Like in lists, the elements in a dictionary can be accessed using the
 index, here the index is the key. Try,
 ::
@@ -153,14 +157,16 @@
 exercise }}}
 
 Now let us try to print the data in the dictionary. We can use ``for``
-loop to iterate.
+loop to iterate. Pause here and try to do it yourself.
+
+It can be solved as,
 ::
 
     for each in extensions.keys():
         print each, "-->", extensions[each]
 
 
-{{{ switch to next slide, recap }}}
+{{{ switch to next slide, summary }}}
 
 This brings us to the end of this tutorial, we learned dictionaries
 and saw how to create an empty dictionary, build a dictionary with
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dictionaries/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,117 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Dictionaries
+#+AUTHOR: FOSSEE
+#+EMAIL: info@fossee.in   
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Creating dictionaries
+    - empty dictionaries
+    - with data
+  - Keys and values
+  - Checking for elements
+  - Iterating over elements
+
+* Overview of Dictionaries
+  - A dictionary contains meaning of words
+    - /Word/ is the /key/ here.
+    - /Meaning/ is the /value/ here.
+  - A Key-Value pair data structure
+    - Provide key-value mappings
+
+* Creating dictionary
+  - Empty dictionary
+    - ~mt_dict = {}~
+      - ~[]~ - lists
+      - ~{}~ - dictionaries
+  - With data
+    #+begin_src python
+        extensions = {'jpg' : 'JPEG Image', 
+	              'py' : 'Python script',
+                      'html' : 'Html document', 
+                      'pdf' : 'Portable Document Format'}
+    #+end_src
+
+   *Note* - ordering in dictionaries cannot be relied on
+* Accessing Elements
+  - syntax
+    : extensions[key]
+  
+  : In []: print extensions['jpg']
+  : Out []: JPEG Image
+  : In []: print extensions['zip']
+* Adding and Deleting values
+  - Adding a new value
+    : In []: extension['cpp'] = 'C++ code'
+    adds a new key /cpp/ with /C++ code/ as value
+  - Deleting values
+    : In []: del extensions['pdf']
+    deletes the key-value pair identified by /pdf/
+  - Changing value associated with a key
+    : In []: extension['cpp'] = 'C++ source code'
+    changes the value of the existing key
+* Checking for container-ship of keys
+  : In []: 'py' in extensions
+  : Out []: True
+  Returns *True* if the /key/ is found.
+  : In []: 'odt' in extensions
+  : Out []: False
+  Returns *False* if the /key/ is not found.
+
+* Retrieve keys and values
+  - ~.keys()~ method
+    : In []: extensions.keys()
+    Returns a list of keys in the dictionary.
+  - ~.values()~ method
+    : In []: extensions.values()
+    Returns the list of values in the dictionary.
+* Exercise 1
+  Print the keys and values in the dictionary one by one.
+* Summary
+  - Creating dictionaries
+    - empty dictionaries
+    - with data
+  - ~.keys()~ method
+  - ~.values()~ method
+  - Iterating over dictionaries
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dictionaries/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,229 @@
+% Created 2010-10-11 Mon 23:02
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Dictionaries}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Creating dictionaries
+
+\begin{itemize}
+\item empty dictionaries
+\item with data
+\end{itemize}
+
+\item Keys and values
+\item Checking for elements
+\item Iterating over elements
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Overview of Dictionaries}
+\label{sec-2}
+
+\begin{itemize}
+\item A dictionary contains meaning of words
+
+\begin{itemize}
+\item \emph{Word} is the \emph{key} here.
+\item \emph{Meaning} is the \emph{value} here.
+\end{itemize}
+
+\item A Key-Value pair data structure
+
+\begin{itemize}
+\item Provide key-value mappings
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Creating dictionary}
+\label{sec-3}
+
+\begin{itemize}
+\item Empty dictionary
+
+\begin{itemize}
+\item \texttt{mt\_dict = \{\}}
+
+\begin{itemize}
+\item \texttt{[]} - lists
+\item \texttt{\{\}} - dictionaries
+\end{itemize}
+
+\end{itemize}
+
+\item With data
+\begin{verbatim}
+extensions = {'jpg' : 'JPEG Image', 
+              'py' : 'Python script',
+              'html' : 'Html document', 
+              'pdf' : 'Portable Document Format'}
+\end{verbatim}
+
+   \textbf{Note} - ordering in dictionaries cannot be relied on
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Accessing Elements}
+\label{sec-4}
+
+\begin{itemize}
+\item syntax
+\begin{verbatim}
+     extensions[key]
+\end{verbatim}
+
+\end{itemize}
+
+  
+\begin{verbatim}
+   In []: print extensions['jpg']
+   Out []: JPEG Image
+   In []: print extensions['zip']
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Adding and Deleting values}
+\label{sec-5}
+
+\begin{itemize}
+\item Adding a new value
+\begin{verbatim}
+     In []: extension['cpp'] = 'C++ code'
+\end{verbatim}
+
+    adds a new key \emph{cpp} with \emph{C++ code} as value
+\item Deleting values
+\begin{verbatim}
+     In []: del extensions['pdf']
+\end{verbatim}
+
+    deletes the key-value pair identified by \emph{pdf}
+\item Changing value associated with a key
+\begin{verbatim}
+     In []: extension['cpp'] = 'C++ source code'
+\end{verbatim}
+
+    changes the value of the existing key
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Checking for container-ship of keys}
+\label{sec-6}
+
+\begin{verbatim}
+   In []: 'py' in extensions
+   Out []: True
+\end{verbatim}
+
+  Returns \textbf{True} if the \emph{key} is found.
+\begin{verbatim}
+   In []: 'odt' in extensions
+   Out []: False
+\end{verbatim}
+
+  Returns \textbf{False} if the \emph{key} is not found.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Retrieve keys and values}
+\label{sec-7}
+
+\begin{itemize}
+\item \texttt{.keys()} method
+\begin{verbatim}
+     In []: extensions.keys()
+\end{verbatim}
+
+    Returns a list of keys in the dictionary.
+\item \texttt{.values()} method
+\begin{verbatim}
+     In []: extensions.values()
+\end{verbatim}
+
+    Returns the list of values in the dictionary.
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-8}
+
+  Print the keys and values in the dictionary one by one.
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-9}
+
+\begin{itemize}
+\item Creating dictionaries
+
+\begin{itemize}
+\item empty dictionaries
+\item with data
+\end{itemize}
+
+\item \texttt{.keys()} method
+\item \texttt{.values()} method
+\item Iterating over dictionaries
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-10}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/getting-started-files/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/getting-started-files/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -37,7 +37,7 @@
    What is the value of content, at the end of this code block::
 
      f = open('hello.txt')
-     content = f.read()
+     pre_content = f.read()
      content = f.read()
      f.close()
 
@@ -126,7 +126,7 @@
 
 .. A minimum of 2 questions here. 
 
-1. f.read(size)
+1. What does ``f.read(size)`` do?
 
 #. Print every alternate line of a file, starting at the first line. 
 
--- a/getting-started-with-arrays/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/getting-started-with-arrays/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -71,6 +71,8 @@
 here and try to do it yourself, try ``ar.tab`` and find a suitable
 method for that.
 
+{{{ switch to next slide, reshape() method }}}
+
 We can use the function ``reshape()`` for that purpose and it can be
 done as,
 ::
@@ -79,6 +81,8 @@
     ar.reshape(4,2)
     ar = ar.reshape(2,4)
 
+{{{ switch to next slide, creating array from list}}}
+
 Now, let us see how to convert a list object to an array. As you have
 already seen, in both of the previous statements we have passed a
 list, so creating an array can be done so, first let us create a list
@@ -110,7 +114,7 @@
 
 {{{ switch to the next slide, unsolved exercise 2 }}}
 
-Find out the shape of the other two arrays that we have created.
+Find out the shape of the other arrays that we have created.
 
 {{{ Array can have only a single type of data }}}
 
@@ -129,6 +133,8 @@
 
 Did you notice it, 
 
+{{{ switch to next slide, implicit type casting }}}
+
 {{{ highlight all the array elements one by one using mouse 
 movements }}}
 
@@ -226,7 +232,7 @@
 Returns an array with element by element multiplication, notice that
 it does not perform matrix multiplication.
 
-{{{ switch to next slide, recap slide }}}
+{{{ switch to next slide, summary slide }}}
 
 So this brings us to the end of this tutorial, in this tutorial we
 covered basics of arrays, how to create an array, converting a list to
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-arrays/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,132 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Getting started with arrays
+#+AUTHOR: FOSSEE
+#+EMAIL: info@fossee.in
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Arrays
+    - why arrays over lists
+  - Creating arrays
+  - Array operations
+
+* Overview of Arrays
+  - Arrays are homogeneous data structures.
+    - elements have to the same data type
+  - Arrays are faster compared to lists
+    - at least /80-100 times/ faster than lists
+
+* Creating Arrays
+  - Creating a 1-dimensional array
+  : In []: a1 = array([1, 2, 3, 4])
+  - Creating a 2-dimensional array
+  : In []: a2 = array([[1,2,3,4],[5,6,7,8]])
+  - Easier method of creating array with consecutive elements.
+  : In []: ar = arange(1,9)
+* ~reshape()~ method
+  - To reshape an array
+  : In []: ar.reshape(2, 4)
+  : In []: ar.reshape(4, 2)
+  : In []: ar = ar.reshape(2, 4)
+
+* Creating ~array~ from ~list~.
+  - ~array()~ method accepts list as argument
+  - Creating a list
+   : In []: l1 = [1, 2, 3, 4]
+  - Creating an array
+    : In []: a3 = array(l1)
+
+* Exercise 1
+  Create a 3-dimensional array of the order (2, 2, 4).
+
+* ~.shape~ of array
+  - ~.shape~
+    To find the shape of the array
+    : In []: a1.shape
+  - ~.shape~
+    returns a tuple of shape
+* Exercise 2
+  Find out the shape of the other arrays(a2, a3, ar) that we have created.
+* Homogeneous data
+  - All elements in array should be of same type
+    : In []: a4 = array([1,2,3,'a string'])
+* Implicit type casting 
+   : In []: a4
+    All elements are type casted to string type
+* ~identity()~, ~zeros()~ methods
+  - ~identity(n)~
+    Creates an identity matrix, a square matrix of order (n, n) with diagonal elements 1 and others 0.
+  - ~zeros((m, n))~
+    Creates an ~m X n~ matrix with all elements 0.
+
+* Learning exercise
+  - Find out about
+    - ~zeros_like()~
+    - ~ones()~
+    - ~ones_like()~
+
+* Array operations
+  - ~a1 * 2~
+    returns a new array with all elements of ~a1~ multiplied by ~2~.
+    - Similarly ~+~, ~-~ \& ~/~.
+  - ~a1 + 2~
+    returns a new array with all elements of ~a1~ summed with ~2~.
+  - ~a1 += 2~
+    adds ~2~ to all elements of array ~a1~.
+    - Similarly ~-=~, ~*=~ \& ~/=~.
+  - ~a1 + a2~
+    does elements-wise addition.
+    - Similarly ~-~, ~*~ \& ~/~.
+  - ~a1 * a2~
+    does element-wise multiplication
+
+  *Note* - array(A) * array(B) does element wise multiplication and not matrix multiplication
+
+* Summary
+  In this tutorial we covered,
+  - Basics of arrays
+  - Creating arrays
+  - Arrays from lists
+  - Basic array operations
+
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-arrays/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,277 @@
+% Created 2010-10-12 Tue 00:20
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Getting started with arrays}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Arrays
+
+\begin{itemize}
+\item why arrays over lists
+\end{itemize}
+
+\item Creating arrays
+\item Array operations
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Overview of Arrays}
+\label{sec-2}
+
+\begin{itemize}
+\item Arrays are homogeneous data structures.
+
+\begin{itemize}
+\item elements have to the same data type
+\end{itemize}
+
+\item Arrays are faster compared to lists
+
+\begin{itemize}
+\item at least \emph{80-100 times} faster than lists
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Creating Arrays}
+\label{sec-3}
+
+\begin{itemize}
+\item Creating a 1-dimensional array
+\end{itemize}
+
+\begin{verbatim}
+   In []: a1 = array([1, 2, 3, 4])
+\end{verbatim}
+
+\begin{itemize}
+\item Creating a 2-dimensional array
+\end{itemize}
+
+\begin{verbatim}
+   In []: a2 = array([[1,2,3,4],[5,6,7,8]])
+\end{verbatim}
+
+\begin{itemize}
+\item Easier method of creating array with consecutive elements.
+\end{itemize}
+
+\begin{verbatim}
+   In []: ar = arange(1,9)
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{reshape()} method}
+\label{sec-4}
+
+\begin{itemize}
+\item To reshape an array
+\end{itemize}
+
+\begin{verbatim}
+   In []: ar.reshape(2, 4)
+   In []: ar.reshape(4, 2)
+   In []: ar = ar.reshape(2, 4)
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Creating \texttt{array} from \texttt{list}.}
+\label{sec-5}
+
+\begin{itemize}
+\item \texttt{array()} method accepts list as argument
+\item Creating a list
+\begin{verbatim}
+    In []: l1 = [1, 2, 3, 4]
+\end{verbatim}
+
+\item Creating an array
+\begin{verbatim}
+     In []: a3 = array(l1)
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-6}
+
+  Create a 3-dimensional array of the order (2, 2, 4).
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{.shape} of array}
+\label{sec-7}
+
+\begin{itemize}
+\item \texttt{.shape}
+    To find the shape of the array
+\begin{verbatim}
+     In []: a1.shape
+\end{verbatim}
+
+\item \texttt{.shape}
+    returns a tuple of shape
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 2}
+\label{sec-8}
+
+  Find out the shape of the other arrays(a2, a3, ar) that we have created.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Homogeneous data}
+\label{sec-9}
+
+\begin{itemize}
+\item All elements in array should be of same type
+\begin{verbatim}
+     In []: a4 = array([1,2,3,'a string'])
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Implicit type casting}
+\label{sec-10}
+
+\begin{verbatim}
+    In []: a4
+\end{verbatim}
+
+    All elements are type casted to string type
+\end{frame}
+\begin{frame}
+\frametitle{\texttt{identity()}, \texttt{zeros()} methods}
+\label{sec-11}
+
+\begin{itemize}
+\item \texttt{identity(n)}
+    Creates an identity matrix, a square matrix of order (n, n) with diagonal elements 1 and others 0.
+\item \texttt{zeros((m, n))}
+    Creates an \texttt{m X n} matrix with all elements 0.
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Learning exercise}
+\label{sec-12}
+
+\begin{itemize}
+\item Find out about
+
+\begin{itemize}
+\item \texttt{zeros\_like()}
+\item \texttt{ones()}
+\item \texttt{ones\_like()}
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Array operations}
+\label{sec-13}
+
+\begin{itemize}
+\item \texttt{a1 * 2}
+    returns a new array with all elements of \texttt{a1} multiplied by \texttt{2}.
+
+\begin{itemize}
+\item Similarly \texttt{+}, \texttt{-} \& \texttt{/}.
+\end{itemize}
+
+\item \texttt{a1 + 2}
+    returns a new array with all elements of \texttt{a1} summed with \texttt{2}.
+\item \texttt{a1 += 2}
+    adds \texttt{2} to all elements of array \texttt{a1}.
+
+\begin{itemize}
+\item Similarly \texttt{-=}, \texttt{*=} \& \texttt{/=}.
+\end{itemize}
+
+\item \texttt{a1 + a2}
+    does elements-wise addition.
+
+\begin{itemize}
+\item Similarly \texttt{-}, \texttt{*} \& \texttt{/}.
+\end{itemize}
+
+\item \texttt{a1 * a2}
+    does element-wise multiplication
+\end{itemize}
+
+
+  \textbf{Note} - array(A) * array(B) does element wise multiplication and not matrix multiplication
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-14}
+
+  In this tutorial we covered,
+\begin{itemize}
+\item Basics of arrays
+\item Creating arrays
+\item Arrays from lists
+\item Basic array operations
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-15}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/getting-started-with-for/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/getting-started-with-for/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -43,6 +43,11 @@
                 for indentation. Do that while typing so that they can
                 actually see what is being typed.
 
+As you can see in the slide, ``Block B`` is an inner block and it is
+indented using 4 spaces, and after ``Block B`` the next statement in
+``Block A`` starts from the same indentation level of other ``Block
+A`` statements.
+
 Now let us move straight into ``for`` loop.
 
 {{{ switch to next slide, problem statement of exercise 1 }}}
@@ -85,6 +90,8 @@
                 square_roots. It is only complicating stuff.
                 Simply iterate and print.
 
+{{{ switch to next slide, save and run script }}}
+
 {{{ save the script }}}
 
 Now save the script, and run it from your IPython interpreter. I
@@ -151,6 +158,8 @@
 the list. And this time let us do it right in the IPython
 interpreter. 
 
+{{{ switch to next slide, Indentation in ``ipython`` }}}
+
 {{{ switch focus to the IPython interpreter }}}
 
 So let us start with making a list. Type the following
@@ -166,11 +175,14 @@
 four dots tell you that you are inside a block. Now type the rest of
 the ``for`` loop,
 
+{{{ switch to next slide, Indentation in ``ipython`` (cont'd) }}}
+
 .. #[Nishanth]: Tell that IPython does auto indentation.
 
 ::
 
-        print "Square root of", each, "is", sqrt(each)
+        print "Square root of", each,
+	print "is", sqrt(each)
 
 Now we have finished the statements in the block, and still the
 interpreter is showing four dots, which means you are still inside the
@@ -178,6 +190,8 @@
 without entering anything else. It printed the square root of each
 number in the list, and that is executed in a ``for`` loop.
 
+{{{ switch to next slide, Indentation in ``python`` interpreter }}}
+
 Now, let us find the cube of all the numbers from one to ten. But this
 time let us try it in the vanilla version of Python interpreter.
 
@@ -187,6 +201,9 @@
 {{{ open the python interpreter in the terminal using the command
 python to start the vanilla Python interpreter }}}
 
+{{{ switch to next slide, Indentation in ``python`` interpreter
+(cont'd) }}}
+
 Start with,
 ::
     
@@ -214,6 +231,8 @@
                 Then say this list can also be generated using
                 the range function and hence introduce range.
 
+{{{ switch to the next slide, ``range()`` function }}}
+
 Okay! so the main thing here we learned is how to use Python
 interpreter and IPython interpreter to specify blocks. But while we
 were generating the multiplication table we used something new,
@@ -225,12 +244,14 @@
 .. #[Nishanth]: Show some examples of range without the step argument
                 May be give an exercise with negative numbers as arguments
 
-Now, let us print all the odd numbers from 1 to 50. Let us do it in
-our IPython interpreter for ease of use.
-
 {{{ switch to next slide, problem statement of the next problem in
 solved exercises }}}
 
+Now, let us print all the odd numbers from 1 to 50. Pause here and try
+to solve the problem yourself.
+
+Let us do it in our IPython interpreter for ease of use.
+
 {{{ switch focus to ipython interpreter }}}
 
 The problem can be solved by just using the ``range()`` function.
@@ -248,7 +269,7 @@
 number. The third parameter is for stepping through the sequence. Here
 we gave two which means we are skipping every alternate element.
 
-{{{ switch to next slide, recap slide }}}
+{{{ switch to next slide, summary slide }}}
 
 Thus we come to the end of this tutorial. We learned about blocks in
 Python, indentation, blocks in IPython, for loop, iterating over a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-for/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,146 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Getting started with for
+#+AUTHOR: FOSSEE
+#+EMAIL:     
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - ~for~ loop in Python.
+  - Blocks of code in Python.
+    - Indentation
+* Whitespace in Python
+  - Whitespace is significant
+    - blocks are visually separated
+  - Blocks are indented using 4 spaces
+    : Block A
+    : Block A
+    :     Block B
+    :     Block B
+    : Block A
+    ~Block B~ is an inner block and is indented using 4 spaces
+* Exercise 1
+  Write a ~for~ loop which iterates through a list of numbers and find
+  the square root of each number.
+  : 
+  The numbers are,
+  : 1369, 7225, 3364, 7056, 5625, 729, 7056, 
+  : 576, 2916
+* Solution 1
+  - Open text editor and type the following code
+  #+begin_src python
+    numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 
+               576, 2916]
+
+    for each in numbers:
+        print "Square root of", each, "is", sqrt(each)
+
+    print "This is not in for loop!"
+  #+end_src
+* Save \& run script
+  - Save the script as ~list_roots.py~
+  - Run in ~ipython~ interpreter as,
+    : In []: %run -i list_roots.py
+* Exercise 2
+  From the given numbers make a list of perfect squares and a list of those which are not.
+  : 
+  The numbers are,
+  : 7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 
+  : 7056, 576, 2916
+* Exercise 3 (indentation in ~ipython~)
+  Print the square root of numbers in the list.
+  : 
+  Numbers are,
+  : 7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 
+  : 7056, 576, 2916
+* Indentation in ~ipython~
+  : In []: numbers = [1369, 7225, 3364, 7056, 5625, 
+  :   ...:  729, 7056, 576, 2916]
+
+  : In []: for each in numbers:
+  :   ...:     
+  Note the four spaces here
+  : 
+  : 
+  : 
+  : 
+  : 
+  : 
+* Indentation in ~ipython~ (cont'd)
+  : In []: numbers = [1369, 7225, 3364, 7056, 5625, 
+  :   ...:  729, 7056, 576, 2916]
+  : In []: for each in numbers:
+  :   ...:     
+  Note the four spaces here
+  : 
+  Now type the rest of the code
+  :   ...:     print "Square root of", each, 
+  :   ...:     print "is", sqrt(each)
+  :   ...:     
+  :   ...:     
+* Indentation in ~python~ interpreter
+  Find out the cube of all the numbers from 1 to 10.
+  : 
+  /do it in the python interpreter/
+* Indentation in ~python~ interpreter (cont'd)
+  #+begin_src python
+  >>> for i in range(1, 11):
+  ...     print i, "cube is", i**3
+  ... 
+  #+end_src
+* ~range()~ function
+  - in built function in Python
+  - generates a list of integers
+    - /syntax:/ range([start,] stop[, step])
+    - /example:/
+      - range(1, 20) - /generates integers from 1 to 20/
+      - range(20) - /generates integers from 0 to 20/
+* Exercise 4
+  Print all the odd numbers from 1 to 50.
+* Summary
+  - blocks in ~python~
+  - indentation
+  - blocks in ~ipython~ interpreter
+  - ~for~ loop
+  - iterating over list using ~for~ loop
+  - ~range()~ function
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-for/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,285 @@
+% Created 2010-10-12 Tue 12:55
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Getting started with for}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item \texttt{for} loop in Python.
+\item Blocks of code in Python.
+
+\begin{itemize}
+\item Indentation
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Whitespace in Python}
+\label{sec-2}
+
+\begin{itemize}
+\item Whitespace is significant
+
+\begin{itemize}
+\item blocks are visually separated
+\end{itemize}
+
+\item Blocks are indented using 4 spaces
+\begin{verbatim}
+     Block A
+     Block A
+         Block B
+         Block B
+     Block A
+\end{verbatim}
+
+    \texttt{Block B} is an inner block and is indented using 4 spaces
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 1}
+\label{sec-3}
+
+  Write a \texttt{for} loop which iterates through a list of numbers and find
+  the square root of each number.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  The numbers are,
+\begin{verbatim}
+   1369, 7225, 3364, 7056, 5625, 729, 7056, 
+   576, 2916
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 1}
+\label{sec-4}
+
+\begin{itemize}
+\item Open text editor and type the following code
+\end{itemize}
+
+\begin{verbatim}
+numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 
+           576, 2916]
+
+for each in numbers:
+    print "Square root of", each, "is", sqrt(each)
+
+print "This is not in for loop!"
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Save \& run script}
+\label{sec-5}
+
+\begin{itemize}
+\item Save the script as \texttt{list\_roots.py}
+\item Run in \texttt{ipython} interpreter as,
+\begin{verbatim}
+     In []: %run -i list_roots.py
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 2}
+\label{sec-6}
+
+  From the given numbers make a list of perfect squares and a list of those which are not.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  The numbers are,
+\begin{verbatim}
+   7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 
+   7056, 576, 2916
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 3 (indentation in \texttt{ipython})}
+\label{sec-7}
+
+  Print the square root of numbers in the list.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  Numbers are,
+\begin{verbatim}
+   7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 
+   7056, 576, 2916
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Indentation in \texttt{ipython}}
+\label{sec-8}
+
+\begin{verbatim}
+   In []: numbers = [1369, 7225, 3364, 7056, 5625, 
+     ...:  729, 7056, 576, 2916]
+\end{verbatim}
+
+
+\begin{verbatim}
+   In []: for each in numbers:
+     ...:     
+\end{verbatim}
+
+  Note the four spaces here
+\begin{verbatim}
+   
+   
+   
+   
+   
+   
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Indentation in \texttt{ipython} (cont'd)}
+\label{sec-9}
+
+\begin{verbatim}
+   In []: numbers = [1369, 7225, 3364, 7056, 5625, 
+     ...:  729, 7056, 576, 2916]
+   In []: for each in numbers:
+     ...:     
+\end{verbatim}
+
+  Note the four spaces here
+\begin{verbatim}
+   
+\end{verbatim}
+
+  Now type the rest of the code
+\begin{verbatim}
+     ...:     print "Square root of", each, 
+     ...:     print "is", sqrt(each)
+     ...:     
+     ...:     
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Indentation in \texttt{python} interpreter}
+\label{sec-10}
+
+  Find out the cube of all the numbers from 1 to 10.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  \emph{do it in the python interpreter}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Indentation in \texttt{python} interpreter (cont'd)}
+\label{sec-11}
+
+\begin{verbatim}
+>>> for i in range(1, 11):
+...     print i, "cube is", i**3
+...
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{\texttt{range()} function}
+\label{sec-12}
+
+\begin{itemize}
+\item in built function in Python
+\item generates a list of integers
+
+\begin{itemize}
+\item \emph{syntax:} range([start,] stop[, step])
+\item \emph{example:}
+
+\begin{itemize}
+\item range(1, 20) - \emph{generates integers from 1 to 20}
+\item range(20) - \emph{generates integers from 0 to 20}
+\end{itemize}
+
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 4}
+\label{sec-13}
+
+  Print all the odd numbers from 1 to 50.
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-14}
+
+\begin{itemize}
+\item blocks in \texttt{python}
+\item indentation
+\item blocks in \texttt{ipython} interpreter
+\item \texttt{for} loop
+\item iterating over list using \texttt{for} loop
+\item \texttt{range()} function
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-15}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/loading-data-from-files/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/loading-data-from-files/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -56,8 +56,12 @@
 
 1. What will happen if one of the cells is empty?
 
-#. Read a column with text? 
-
 #. Given a file with 3 columns of data but two different delimiters,
    what do you think will happen?
 
+#. Read a column with text? 
+
+#. An input file contains 5 columns of data. Use only the second and fourth
+   columns of data and load into two different variables.
+   [hint: read the documentation, use the argument ``usecols``]
+
--- a/loops/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/loops/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -71,12 +71,6 @@
 
    Answer::
      
-     1
-     2
-     3
-     2
-     4
-     6
      3
      6
      9
@@ -94,5 +88,6 @@
 Larger Questions
 ----------------
 
-.. A minimum of 2 questions here. 
+1. A number is called Armstrong number if the sum of cubes of its digits is
+   equal to the number itself. Find all the three digit Armstrong numbers.
 
--- a/manipulating-strings/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/manipulating-strings/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -47,11 +47,11 @@
 #. Given a line from a CSV file (comma separated values), convert it
    to a space separated line. 
 
-   Answer: line.replace(',' ' ')
+   Answer: line.replace(',', ' ')
 
-#. Given the string "F.R.I.E.N.D.S" in s, obtain the friends. 
+#. Given the string "F.R.I.E.N.D.S" in s, obtain the "friends".
 
-   Answer: ``s[::2].lower()
+   Answer: ``s[::2].lower()``
 
 Larger Questions
 ----------------
--- a/matrices/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/matrices/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -3,6 +3,82 @@
 
 .. A mininum of 8 questions here (along with answers)
 
+1. ``matrix(A) * matrix(B)`` and ``array(A) * array(B)`` are the same.
+
+    a. True
+    #. False
+
+Answer: False
+
+2. ``matrix(A) * array(B)`` does,
+
+   a. Element wise multiplication.
+   #. Matrix multiplication.
+   #. Cannot multiply a matrix object and array object.
+   #. Depends on the shape of A and B, if compatible matrix
+      multiplication will be done, otherwise element wise
+      multiplication.
+
+Answer: Matrix multiplication
+
+3. A and B are two matrix objects. Element wise multiplication in
+   matrices are done by,
+
+   a. A * B
+   #. ``multiply(A, B)``
+   #. ``dot(A, B)``
+   #. ``element_multiply(A,B)``
+
+Answer: multiply(A, B)
+
+4. ``norm(A)`` method determines the,
+
+   a. Frobenius norm
+   #. Infinity norm
+   #. Induced norm
+   #. Schatten norm
+
+Answer: Frobenius norm
+
+5. ``eig(A)[1]`` and ``eigvals(A)`` are the same.
+
+   a. True
+   #. False
+
+Answer: False
+
+6. The code snippet will work without an error,
+   ::
+
+       A = matrix([[1, 2, 3, 4], [5, 6, 7, 8]])
+       inv(A)
+
+   a. True
+   #. False
+
+Answer: False
+
+7. What is the output of the following code,
+   ::
+
+      x = matrix([[1, 2, 3], ['a', 2, 'c']])
+      identity(x.shape)
+
+   a. Will create an identity matrix of shape (2, 3).
+   #. ``identity()`` function takes an integer as argument and a tuple
+      is passed.
+   #. Will return, matrix([[1,0,1],[0,1,0]])
+   #. Will return, matrix([[0,1,0],[0,1,0]])
+
+Answer: ``identity()`` function takes an integer as argument and a
+      	tuple is passed.
+
+8. ``norm(A,ord='fro')`` is the same as ``norm(A)``
+
+   a. True
+   #. False
+
+Answer: True
 
 Larger Questions
 ----------------
@@ -30,3 +106,11 @@
    What will be the array after 22 such operations starting with [1,
    2, 3, 4, 5, 6, 7, 8, 9, 10]
 
+2. Find the infinity norm and the determinant of the inverse of the
+   product of matrices A and B. 
+   ::
+
+      A = [[ 1,  2,  3,  4],     B = [[16, 15, 14, 13],
+      	   [ 5,  6,  7,  8],          [12, 11, 10,  9],
+	   [ 9, 10, 11, 12],          [ 8,  7,  6,  5],
+	   [13, 14, 15, 16]]          [ 4,  3,  2,  1]]
--- a/matrices/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/matrices/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -22,8 +22,10 @@
 
 {{{ switch to next slide, outline slide }}}
 
-In this tutorial we will learn about matrices, creating matrices and
-matrix operations.
+In this tutorial we will learn about matrices, creating matrices using
+direct data, by converting a list, matrix operations. Finding inverse
+of a matrix, determinant of a matrix, eigen values and eigen vectors
+of a matrix, norm and singular value decomposition of matrices.
 
 {{{ creating a matrix }}}
 
@@ -70,6 +72,8 @@
 
 it does matrix subtraction, that is element by element
 subtraction. Now let us try,
+
+{{{ Switch to next slide, Matrix multiplication }}}
 ::
 
     m3 * m2
@@ -86,6 +90,8 @@
 
     multiply(m3,m2)
 
+{{{ switch to next slide, Matrix multiplication (cont'd) }}}
+
 Now let us see an example for matrix multiplication. For doing matrix
 multiplication we need to have two matrices of the order n by m and m
 by r and the resulting matrix will be of the order n by r. Thus let us
@@ -106,11 +112,15 @@
 
 {{{ switch to next slide, recall from arrays }}}
 
-As we already saw in arrays, the functions ``identity()``,
-``zeros()``, ``zeros_like()``, ``ones()``, ``ones_like()`` may also be
-used with matrices.
+As we already saw in arrays, the functions ``identity()`` which
+creates an identity matrix of the order n by n, ``zeros()`` which
+creates a matrix of the order m by n with all zeros, ``zeros_like()``
+which creates a matrix with zeros with the shape of the matrix passed,
+``ones()`` which creates a matrix of order m by n with all ones,
+``ones_like()`` which creates a matrix with ones with the shape of the
+matrix passed. These functions can also be used with matrices.
 
-{{{ switch to next slide, matrix operations }}}
+{{{ switch to next slide, more matrix operations }}}
 
 To find out the transpose of a matrix we can do,
 ::
@@ -120,9 +130,9 @@
 
 Matrix name dot capital T will give the transpose of a matrix
 
-{{{ switch to next slide, Euclidean norm of inverse of matrix }}}
+{{{ switch to next slide, Frobenius norm of inverse of matrix }}}
 
-Now let us try to find out the Euclidean norm of inverse of a 4 by 4
+Now let us try to find out the Frobenius norm of inverse of a 4 by 4
 matrix, the matrix being,
 ::
 
@@ -131,17 +141,17 @@
 
 The inverse of a matrix A, A raise to minus one is also called the
 reciprocal matrix such that A multiplied by A inverse will give 1. The
-Euclidean norm or the Frobenius norm of a matrix is defined as square
-root of sum of squares of elements in the matrix. Pause here and try
-to solve the problem yourself, the inverse of a matrix can be found
-using the function ``inv(A)``.
+Frobenius norm of a matrix is defined as square root of sum of squares
+of elements in the matrix. Pause here and try to solve the problem
+yourself, the inverse of a matrix can be found using the function
+``inv(A)``.
 
 And here is the solution, first let us find the inverse of matrix m5.
 ::
 
     im5 = inv(m5)
 
-And the euclidean norm of the matrix ``im5`` can be found out as,
+And the Frobenius norm of the matrix ``im5`` can be found out as,
 ::
 
     sum = 0
@@ -166,11 +176,11 @@
 
 {{{ switch to slide the ``norm()`` method }}}
 
-Well! to find the Euclidean norm and Infinity norm we have an even easier
+Well! to find the Frobenius norm and Infinity norm we have an even easier
 method, and let us see that now.
 
 The norm of a matrix can be found out using the method
-``norm()``. Inorder to find out the Euclidean norm of the matrix im5,
+``norm()``. Inorder to find out the Frobenius norm of the matrix im5,
 we do,
 ::
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/matrices/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,176 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Matrices
+#+AUTHOR: FOSSEE
+#+EMAIL:     
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Creating Matrices
+    - using direct data
+    - converting a list
+  - Matrix operations
+  - Inverse of matrix
+  - Determinant of matrix
+  - Eigen values and Eigen vectors of matrices
+  - Norm of matrix
+  - Singular Value Decomposition of matrices
+
+* Creating a matrix
+  - Creating a matrix using direct data
+  : In []: m1 = matrix([1, 2, 3, 4])
+  - Creating a matrix using lists
+  : In []: l1 = [[1,2,3,4],[5,6,7,8]]
+  : In []: m2 = matrix(l1)
+  - A matrix is basically an array
+  : In []: m3 = array([[5,6,7,8],[9,10,11,12]])
+
+* Matrix operations
+  - Element-wise addition (both matrix should be of order ~mXn~)
+    : In []: m3 + m2
+  - Element-wise subtraction (both matrix should be of order ~mXn~)
+    : In []: m3 - m2
+* Matrix Multiplication
+  - Matrix Multiplication
+    : In []: m3 * m2
+    : Out []: ValueError: objects are not aligned
+  - Element-wise multiplication using ~multiply()~
+    : multiply(m3, m2)
+
+* Matrix Multiplication (cont'd)
+  - Create two compatible matrices of order ~nXm~ and ~mXr~
+    : In []: m1.shape
+    - matrix m1 is of order ~1 X 4~
+  - Creating another matrix of order ~4 X 2~
+    : In []: m4 = matrix([[1,2],[3,4],[5,6],[7,8]])
+  - Matrix multiplication
+    : In []: m1 * m4
+* Recall from ~array~
+  - The functions 
+    - ~identity(n)~ - 
+      creates an identity matrix of order ~nXn~
+    - ~zeros((m,n))~ - 
+      creates a matrix of order ~mXn~ with 0's
+    - ~zeros_like(A)~ - 
+      creates a matrix with 0's similar to the shape of matrix ~A~
+    - ~ones((m,n))~
+      creates a matrix of order ~mXn~ with 1's
+    - ~ones_like(A)~
+      creates a matrix with 1's similar to the shape of matrix ~A~
+  Can also be used with matrices
+
+* More matrix operations
+  Transpose of a matrix
+  : In []: m4.T
+* Exercise 1 : Frobenius norm \& inverse
+  Find out the Frobenius norm of inverse of a ~4 X 4~ matrix.
+  : 
+  The matrix is
+  : m5 = matrix(arange(1,17).reshape(4,4))
+  - Inverse of A, 
+    - 
+     #+begin_latex
+       $A^{-1} = inv(A)$
+     #+end_latex
+  - Frobenius norm is defined as,
+    - 
+      #+begin_latex
+        $||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}$
+      #+end_latex
+
+* Exercise 2: Infinity norm
+  Find the infinity norm of the matrix ~im5~
+  : 
+  - Infinity norm is defined as,
+    #+begin_latex
+       $max([\sum_{i} abs(a_{i})^2])$
+    #+end_latex
+* ~norm()~ method
+  - Frobenius norm
+    : In []: norm(im5)
+  - Infinity norm
+    : In []: norm(im5, ord=inf)
+* Determinant
+  Find out the determinant of the matrix m5
+  : 
+  - determinant can be found out using
+    - ~det(A)~ - returns the determinant of matrix ~A~
+* eigen values \& eigen vectors
+  Find out the eigen values and eigen vectors of the matrix ~m5~.
+  : 
+  - eigen values and vectors can be found out using
+    : In []: eig(m5)
+    returns a tuple of /eigen values/ and /eigen vectors/
+  - /eigen values/ in tuple
+    - ~In []: eig(m5)[0]~
+  - /eigen vectors/ in tuple
+    - ~In []: eig(m5)[1]~
+  - Computing /eigen values/ using ~eigvals()~
+    : In []: eigvals(m5)
+* Singular Value Decomposition (~svd~)
+  #+begin_latex
+    $M = U \Sigma V^*$
+  #+end_latex
+    - U, an ~mXm~ unitary matrix over K.
+    - 
+      #+begin_latex
+        $\Sigma$
+      #+end_latex
+	, an ~mXn~ diagonal matrix with non-negative real numbers on diagonal.
+    - 
+      #+begin_latex
+        $V^*$
+      #+end_latex
+	, an ~nXn~ unitary matrix over K, denotes the conjugate transpose of V.
+  - SVD of matrix ~m5~ can be found out as,
+    : In []: svd(m5)
+* Summary
+  - Matrices
+    - creating matrices
+  - Matrix operations
+  - Inverse (~inv()~)
+  - Determinant (~det()~)
+  - Norm (~norm()~)
+  - Eigen values \& vectors (~eig(), eigvals()~)
+  - Singular Value Decomposition (~svd()~)
+
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/matrices/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,357 @@
+% Created 2010-10-12 Tue 14:28
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Matrices}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Creating Matrices
+
+\begin{itemize}
+\item using direct data
+\item converting a list
+\end{itemize}
+
+\item Matrix operations
+\item Inverse of matrix
+\item Determinant of matrix
+\item Eigen values and Eigen vectors of matrices
+\item Norm of matrix
+\item Singular Value Decomposition of matrices
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Creating a matrix}
+\label{sec-2}
+
+\begin{itemize}
+\item Creating a matrix using direct data
+\end{itemize}
+
+\begin{verbatim}
+   In []: m1 = matrix([1, 2, 3, 4])
+\end{verbatim}
+
+\begin{itemize}
+\item Creating a matrix using lists
+\end{itemize}
+
+\begin{verbatim}
+   In []: l1 = [[1,2,3,4],[5,6,7,8]]
+   In []: m2 = matrix(l1)
+\end{verbatim}
+
+\begin{itemize}
+\item A matrix is basically an array
+\end{itemize}
+
+\begin{verbatim}
+   In []: m3 = array([[5,6,7,8],[9,10,11,12]])
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Matrix operations}
+\label{sec-3}
+
+\begin{itemize}
+\item Element-wise addition (both matrix should be of order \texttt{mXn})
+\begin{verbatim}
+     In []: m3 + m2
+\end{verbatim}
+
+\item Element-wise subtraction (both matrix should be of order \texttt{mXn})
+\begin{verbatim}
+     In []: m3 - m2
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Matrix Multiplication}
+\label{sec-4}
+
+\begin{itemize}
+\item Matrix Multiplication
+\begin{verbatim}
+     In []: m3 * m2
+     Out []: ValueError: objects are not aligned
+\end{verbatim}
+
+\item Element-wise multiplication using \texttt{multiply()}
+\begin{verbatim}
+     multiply(m3, m2)
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Matrix Multiplication (cont'd)}
+\label{sec-5}
+
+\begin{itemize}
+\item Create two compatible matrices of order \texttt{nXm} and \texttt{mXr}
+\begin{verbatim}
+     In []: m1.shape
+\end{verbatim}
+
+
+\begin{itemize}
+\item matrix m1 is of order \texttt{1 X 4}
+\end{itemize}
+
+\item Creating another matrix of order \texttt{4 X 2}
+\begin{verbatim}
+     In []: m4 = matrix([[1,2],[3,4],[5,6],[7,8]])
+\end{verbatim}
+
+\item Matrix multiplication
+\begin{verbatim}
+     In []: m1 * m4
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Recall from \texttt{array}}
+\label{sec-6}
+
+\begin{itemize}
+\item The functions
+
+\begin{itemize}
+\item \texttt{identity(n)} - 
+      creates an identity matrix of order \texttt{nXn}
+\item \texttt{zeros((m,n))} - 
+      creates a matrix of order \texttt{mXn} with 0's
+\item \texttt{zeros\_like(A)} - 
+      creates a matrix with 0's similar to the shape of matrix \texttt{A}
+\item \texttt{ones((m,n))}
+      creates a matrix of order \texttt{mXn} with 1's
+\item \texttt{ones\_like(A)}
+      creates a matrix with 1's similar to the shape of matrix \texttt{A}
+\end{itemize}
+
+\end{itemize}
+
+  Can also be used with matrices
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{More matrix operations}
+\label{sec-7}
+
+  Transpose of a matrix
+\begin{verbatim}
+   In []: m4.T
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 1 : Frobenius norm \& inverse}
+\label{sec-8}
+
+  Find out the Frobenius norm of inverse of a \texttt{4 X 4} matrix.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  The matrix is
+\begin{verbatim}
+   m5 = matrix(arange(1,17).reshape(4,4))
+\end{verbatim}
+
+\begin{itemize}
+\item Inverse of A,
+
+\begin{itemize}
+\item $A^{-1} = inv(A)$
+\end{itemize}
+
+\item Frobenius norm is defined as,
+
+\begin{itemize}
+\item $||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}$
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 2: Infinity norm}
+\label{sec-9}
+
+  Find the infinity norm of the matrix \texttt{im5}
+\begin{verbatim}
+   
+\end{verbatim}
+
+\begin{itemize}
+\item Infinity norm is defined as,
+       $max([\sum_{i} abs(a_{i})^2])$
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{norm()} method}
+\label{sec-10}
+
+\begin{itemize}
+\item Frobenius norm
+\begin{verbatim}
+     In []: norm(im5)
+\end{verbatim}
+
+\item Infinity norm
+\begin{verbatim}
+     In []: norm(im5, ord=inf)
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Determinant}
+\label{sec-11}
+
+  Find out the determinant of the matrix m5
+\begin{verbatim}
+   
+\end{verbatim}
+
+\begin{itemize}
+\item determinant can be found out using
+
+\begin{itemize}
+\item \texttt{det(A)} - returns the determinant of matrix \texttt{A}
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{eigen values \& eigen vectors}
+\label{sec-12}
+
+  Find out the eigen values and eigen vectors of the matrix \texttt{m5}.
+\begin{verbatim}
+   
+\end{verbatim}
+
+\begin{itemize}
+\item eigen values and vectors can be found out using
+\begin{verbatim}
+     In []: eig(m5)
+\end{verbatim}
+
+    returns a tuple of \emph{eigen values} and \emph{eigen vectors}
+\item \emph{eigen values} in tuple
+
+\begin{itemize}
+\item \texttt{In []: eig(m5)[0]}
+\end{itemize}
+
+\item \emph{eigen vectors} in tuple
+
+\begin{itemize}
+\item \texttt{In []: eig(m5)[1]}
+\end{itemize}
+
+\item Computing \emph{eigen values} using \texttt{eigvals()}
+\begin{verbatim}
+     In []: eigvals(m5)
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Singular Value Decomposition (\texttt{svd})}
+\label{sec-13}
+
+    $M = U \Sigma V^*$
+\begin{itemize}
+\item U, an \texttt{mXm} unitary matrix over K.
+\item $\Sigma$
+        , an \texttt{mXn} diagonal matrix with non-negative real numbers on diagonal.
+\item $V^*$
+        , an \texttt{nXn} unitary matrix over K, denotes the conjugate transpose of V.
+\item SVD of matrix \texttt{m5} can be found out as,
+\end{itemize}
+
+\begin{verbatim}
+     In []: svd(m5)
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-14}
+
+\begin{itemize}
+\item Matrices
+
+\begin{itemize}
+\item creating matrices
+\end{itemize}
+
+\item Matrix operations
+\item Inverse (\texttt{inv()})
+\item Determinant (\texttt{det()})
+\item Norm (\texttt{norm()})
+\item Eigen values \& vectors (\texttt{eig(), eigvals()})
+\item Singular Value Decomposition (\texttt{svd()})
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-15}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+
+  
+\end{frame}
+
+\end{document}
Binary file other-type-of-plots/bar-chart-hatch.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/other-type-of-plots/company-a-data.txt	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,2 @@
+2.000000000000000000e+03 2.001000000000000000e+03 2.002000000000000000e+03 2.003000000000000000e+03 2.004000000000000000e+03 2.005000000000000000e+03 2.006000000000000000e+03 2.007000000000000000e+03 2.008000000000000000e+03 2.009000000000000000e+03 2.010000000000000000e+03
+2.300000000000000000e+01 5.500000000000000000e+01 3.200000000000000000e+01 6.500000000000000000e+01 8.800000000000000000e+01 5.000000000000000000e+00 1.400000000000000000e+01 6.700000000000000000e+01 2.300000000000000000e+01 2.300000000000000000e+01 1.200000000000000000e+01
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/other-type-of-plots/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,85 @@
+Objective Questions
+-------------------
+
+.. A mininum of 8 questions here (along with answers)
+
+1. What is a log-log chart?
+
+   a. A straight line graph
+   #. A graph on the logarithmic scale
+   #. A graph on the logarithmic scale with different scales for x and
+      y axes
+   #. A graph in which x axis is represented in logarithmic scale.
+
+Answer: A graph on the logarithmic scale with different scales for x
+ 	and y axes
+
+2. We have two lists with us ``years`` and ``profit``, what statement
+   can be issued to plot a pie chart to plot the profit for each year,
+   and each wedge has to be labelled with the corresponding year.
+
+Answer: pie(profit, labels=years)
+
+3. We have two lists with us ``years`` and profit``, what statement
+   can be issued to plot a scatter plot of the data in blue colored
+   diamonds. ``years`` has to be plotted along x-axis.
+
+Answer: scatter(year,profit,color='blue',marker='d')
+
+4. ``scatter(x, y, color='blue', marker='d')`` and ``plot(x, y,
+   color='b', marker='d')`` does exactly the same.
+
+   a. True
+   #. False
+
+Answer: False
+
+5. ``plot(x, y, 'bd')`` creates a scattered plot in blue color and
+   diamond markers?
+
+   a. True
+   #. False
+
+Answer: True
+
+6. ``scatter(x, y, 'bd')`` creates a scatter plot in blue color with
+   diamond markers.
+
+   a. True
+   #. False
+
+Answer: False
+
+7. What statement can be issued to generate a bar chart with 135\
+   :sup:`o` hatched bar filled with white.
+
+   a. bar(x, y, color='w', hatch='/')
+   #. bar(x, y, color='w', hatch='\\')
+   #. bar(x, y, color='w', hatch='\')
+   #. bar(x, y, color='w', hatch='|')
+
+Answer: bar(x, y, color='w', hatch='\\')
+
+8. What statement can be issued to generate a bar chart with vertical
+   line hatching.
+
+   a. bar(x, y, color='w', hatch='/')
+   #. bar(x, y, fill=False, hatch='\\')
+   #. bar(x, y, fill=False, hatch='|')
+   #. bar(x, y, color='w', hatch='\')
+
+Answer: bar(x, y, fill=False, hatch='|')
+
+Larger Questions
+----------------
+
+.. A minimum of 2 questions here (along with answers)
+
+1. Plot a log-log chart of the equation y=4*x\ :sup:`2` + 3*x for x
+   from -50 to 50.
+
+2. Plot a bar chart which is filled with white color and which is
+   hatched with 135\ :sup:`o` slanting lines for the data given in the
+   `file(company A data) <company-a-data.txt>`_ which has years and
+   profit percentage for each year.
+
--- a/other-type-of-plots/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/other-type-of-plots/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -3,7 +3,7 @@
 .. * scatter 
 .. * pie chart 
 .. * bar chart 
-.. * log 
+.. * loglog
 .. * illustration of other plots, matplotlib help
 
 ===================
@@ -17,13 +17,12 @@
 {{{ show the outline slide }}}
 
 In this tutorial we will cover scatter plot, pie chart, bar chart and
-log plot. We will also see few other plots and also introduce you to
+loglog plot. We will also see few other plots and also introduce you to
 the matplotlib help.
 
-
 Let us start with scatter plot. 
 
-{{{ switch to the next slide }}}
+{{{ switch to the next slide, scatter plot }}}
 
 In a scatter plot, the data is displayed as a collection of points,
 each having the value of one variable determining the position on the
@@ -55,11 +54,14 @@
 
 {{{ close the file and switch to the terminal }}}
 
-To product the scatter plot first we need to load the data from the
-file using ``loadtxt``. We learned in one of the previous sessions,
+To produce the scatter plot first we need to load the data from the
+file using ``loadtxt``. We learned it in one of the previous sessions,
 and it can be done as ::
 
-    year,profit = loadtxt('/home/fossee/other-plot/company-a-data.txt',dtype=type(int()))
+    year,profit =
+    loadtxt('/home/fossee/other-plot/company-a-data.txt',dtype=type(int()))
+
+{{{ switch to next slide, ``scatter`` function }}}
 
 Now in-order to generate the scatter graph we will use the function 
 ``scatter()`` 
@@ -75,9 +77,11 @@
 problem to be tried out }}}
 
 Now here is a question for you to try out, plot the same data with red
-diamonds. 
+diamonds markers. 
 
-**Clue** - *try scatter? in your ipython interpreter* 
+.. **Clue** - *try scatter? in your ipython interpreter* 
+
+Pause here and solve the question before moving on.
 
 .. scatter(year,profit,color='r',marker='d')
 
@@ -95,14 +99,16 @@
 the same data from file ``company-a-data.txt``. So let us reuse the
 data we have loaded from the file previously.
 
+{{{ switch to next slide, ``pie()`` function }}}
+
 We can plot the pie chart using the function ``pie()``.
 ::
 
    pie(profit,labels=year)
 
-Notice that we passed two arguments to the function ``pie()``. The
-first one the values and the next one the set of labels to be used in
-the pie chart.
+Notice that we passed two arguments to the function ``pie()``. First
+one the values and the next one the set of labels to be used in the
+pie chart.
 
 {{{ switch to the next slide which has the problem statement of
 problem to be tried out }}}
@@ -111,7 +117,9 @@
 same data with colors for each wedges as white, red, black, magenta,
 yellow, blue, green, cyan, yellow, magenta and blue respectively.
 
-**Clue** - *try pie? in your ipython interpreter* 
+.. **Clue** - *try pie? in your ipython interpreter* 
+
+Pause here and solve the question before moving on.
 
 .. pie(t,labels=s,colors=('w','r','k','m','y','b','g','c','y','m','b'))
 
@@ -121,7 +129,7 @@
 with rectangular bars with lengths proportional to the values that
 they represent.
 
-{{{ switch to the slide showing the problem statement of third
+{{{ switch to the slide showing the problem statement of fifth
 exercise question }}}
 
 Plot a bar chart representing the profit percentage of company A, with
@@ -129,6 +137,8 @@
 
 So let us reuse the data we have loaded from the file previously.
 
+{{{ switch to the next slide, ``bar()`` function }}}
+
 We can plot the bar chart using the function ``bar()``.
 ::
 
@@ -143,13 +153,14 @@
 
 Now here is a question for you to try, plot a bar chart which is not
 filled and which is hatched with 45\ :sup:`o` slanting lines as shown
-in the image in the slide.
+in the image in the slide. The data for the chart may be obtained from
+the file ``company-a-data.txt``.
 
-**Clue** - *try bar? in your ipython interpreter* 
+.. **Clue** - *try bar? in your ipython interpreter* 
 
 .. bar(year,profit,fill=False,hatch='/')
 
-{{{ switch to the slide which says about bar chart }}}
+{{{ switch to the slide which says about log-log graph }}}
 
 Now let us move on to log-log plot. A log-log graph or log-log plot is
 a two-dimensional graph of numerical data that uses logarithmic scales
@@ -170,6 +181,8 @@
     x = linspace(1,20,100)
     y = 5*x**3
 
+{{{ switch to next slide, ``loglog()`` function }}}
+
 Now we can plot the log-log chart using ``loglog()`` function,
 ::
 
@@ -195,16 +208,12 @@
 Help about matplotlib can be obtained from
 matplotlib.sourceforge.net/contents.html
 
-.. #[[Anoop: I am not so sure how to do the rest of it, so I guess we
-   can just browse through the side and tell them few. What is your
-   opinion??]]
 
-Now let us see few plots from
-matplotlib.sourceforge.net/users/screenshots.html
+More plots can be seen at
+matplotlib.sourceforge.net/users/screenshots.html and also at
+matplotlib.sourceforge.net/gallery.html
 
-{{{ browse through the site quickly }}}
-
-{{{ switch to recap slide }}}
+{{{ switch to summary slide }}}
 
 Now we have come to the end of this tutorial. We have covered scatter
 plot, pie chart, bar chart, log-log plot and also saw few other plots
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/other-type-of-plots/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,137 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Other type of plots
+#+AUTHOR:    FOSSEE
+#+EMAIL:     
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Scatter plot
+  - Pie chart
+  - Bar chart
+  - Log-log Plot
+  - ~matplotlib~ help
+* Exercise 1: Scatter plot
+  Plot a scatter plot showing the percentage profit of Company A from the year 2000
+  to 2010. The data for the same is available in the file ~company-a-data.txt~.
+* ~scatter()~ function
+  - /Syntax :/ scatter(x,y)
+    - x, a sequence of data
+    - y, a sequence of data, the same length of x
+  : In []: scatter(year, profit)
+* Exercise 2: Scatter plot
+  Plot a scatter plot of the same data in ~company-a-data.txt~ with red diamond markers.
+  : 
+  *Clue* - /try scatter? in your ipython interpreter/
+* Pie chart
+  Pie chart - a circle graph divided into sectors, illustrating proportion. 
+* Exercise 3: Pie chart
+  Plot a pie chart representing the profit percentage of company A, with the data 
+  from the file ~company-a-data.txt~.
+  : 
+  /(we can reuse the data in lists year and profit)/
+* ~pie()~ function
+  - /Syntax :/ pie(values, labels=labels)
+    - values, the data to be plotted
+    - labels, the label for each wedge in the pie chart
+  : In []: pie(profit, labels=year)
+* Exercise 4: Pie chart
+  Plot a pie chart with the same data with colors for each wedges as white, red, 
+  magenta, yellow, blue, green, cyan, yellow, magenta, and blue.
+  : 
+  *Clue* - /try pie? in your ipython interpreter/
+* Bar chart
+  Bar chart - a chart with rectangular bars with lengths proportional 
+  to the values that they represent.
+* Exercise 5: Bar chart
+  Plot a bar chart representing the profit percentage of company A, with the data 
+  from the file ~company-a-data.txt~.
+  : 
+  /(we can reuse the data in lists year and profit)/
+* ~bar()~ function
+  - /Syntax :/ bar(x, y)
+    - x, a sequence of data
+    - y, a sequence of data, the same length of x
+  : In []: bar(year, profit)
+* Exercise 6: Bar chart
+  Plot a bar chart which is not filled and which is hatched with 
+  #+begin_latex
+    $45^o$
+  #+end_latex
+  slanting lines as shown in the image. The data for the chart may be
+  obtained from the file ~company-a-data.txt~.
+  #+begin_latex
+   \begin{center}
+      \includegraphics[scale=0.3]{bar-chart-hatch}    
+    \end{center}
+  #+end_latex
+  *Clue* - /try bar? in your ipython interpreter/
+* Log-log graph
+  - Log-log graph
+    - 2-dimensional graph.
+    - uses logarithmic scales on both axes.
+    - graph appears as straight line due to non-linear scaling.
+* Exercise 7:
+  Plot a log-log chart of 
+  #+begin_latex
+    $y = 5x^3$
+  #+end_latex
+  for x from 1-20.
+* ~loglog()~ function
+  - /Syntax :/ loglog(x, y)
+    - x, a sequence of data
+    - y, a sequence of data, the same length of x
+  : In []: loglog(x, y)
+* Getting help on ~matplotlib~
+  - Help 
+    - [[matplotlib.sourceforge.net/contents.html]]
+  - More plots
+    - [[matplotlib.sourceforge.net/users/screenshots.html]]
+    - [[matplotlib.sourceforge.net/gallery.html]]
+
+* Summary
+  - Scatter plot (~scatter()~)
+  - Pie chart (~pie()~)
+  - Bar chart (~bar()~)
+  - Log-log plot (~loglog()~)
+  - ~matplotlib~ online help
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/other-type-of-plots/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,280 @@
+% Created 2010-10-12 Tue 16:22
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Other type of plots}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Scatter plot
+\item Pie chart
+\item Bar chart
+\item Log-log Plot
+\item \texttt{matplotlib} help
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1: Scatter plot}
+\label{sec-2}
+
+  Plot a scatter plot showing the percentage profit of Company A from the year 2000
+  to 2010. The data for the same is available in the file \texttt{company-a-data.txt}.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{scatter()} function}
+\label{sec-3}
+
+\begin{itemize}
+\item \emph{Syntax :} scatter(x,y)
+
+\begin{itemize}
+\item x, a sequence of data
+\item y, a sequence of data, the same length of x
+\end{itemize}
+
+\end{itemize}
+
+\begin{verbatim}
+   In []: scatter(year, profit)
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 2: Scatter plot}
+\label{sec-4}
+
+  Plot a scatter plot of the same data in \texttt{company-a-data.txt} with red diamond markers.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  \textbf{Clue} - \emph{try scatter? in your ipython interpreter}
+\end{frame}
+\begin{frame}
+\frametitle{Pie chart}
+\label{sec-5}
+
+  Pie chart - a circle graph divided into sectors, illustrating proportion. 
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 3: Pie chart}
+\label{sec-6}
+
+  Plot a pie chart representing the profit percentage of company A, with the data 
+  from the file \texttt{company-a-data.txt}.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  \emph{(we can reuse the data in lists year and profit)}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{pie()} function}
+\label{sec-7}
+
+\begin{itemize}
+\item \emph{Syntax :} pie(values, labels=labels)
+
+\begin{itemize}
+\item values, the data to be plotted
+\item labels, the label for each wedge in the pie chart
+\end{itemize}
+
+\end{itemize}
+
+\begin{verbatim}
+   In []: pie(profit, labels=year)
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 4: Pie chart}
+\label{sec-8}
+
+  Plot a pie chart with the same data with colors for each wedges as white, red, 
+  magenta, yellow, blue, green, cyan, yellow, magenta, and blue.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  \textbf{Clue} - \emph{try pie? in your ipython interpreter}
+\end{frame}
+\begin{frame}
+\frametitle{Bar chart}
+\label{sec-9}
+
+  Bar chart - a chart with rectangular bars with lengths proportional 
+  to the values that they represent.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Exercise 5: Bar chart}
+\label{sec-10}
+
+  Plot a bar chart representing the profit percentage of company A, with the data 
+  from the file \texttt{company-a-data.txt}.
+\begin{verbatim}
+   
+\end{verbatim}
+
+  \emph{(we can reuse the data in lists year and profit)}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{bar()} function}
+\label{sec-11}
+
+\begin{itemize}
+\item \emph{Syntax :} bar(x, y)
+
+\begin{itemize}
+\item x, a sequence of data
+\item y, a sequence of data, the same length of x
+\end{itemize}
+
+\end{itemize}
+
+\begin{verbatim}
+   In []: bar(year, profit)
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 6: Bar chart}
+\label{sec-12}
+
+  Plot a bar chart which is not filled and which is hatched with 
+    $45^o$
+  slanting lines as shown in the image. The data for the chart may be
+  obtained from the file \texttt{company-a-data.txt}.
+   \begin{center}
+      \includegraphics[scale=0.3]{bar-chart-hatch}    
+    \end{center}
+  \textbf{Clue} - \emph{try bar? in your ipython interpreter}
+\end{frame}
+\begin{frame}
+\frametitle{Log-log graph}
+\label{sec-13}
+
+\begin{itemize}
+\item Log-log graph
+
+\begin{itemize}
+\item 2-dimensional graph.
+\item uses logarithmic scales on both axes.
+\item graph appears as straight line due to non-linear scaling.
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 7:}
+\label{sec-14}
+
+  Plot a log-log chart of 
+    $y = 5x^3$
+  for x from 1-20.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{loglog()} function}
+\label{sec-15}
+
+\begin{itemize}
+\item \emph{Syntax :} loglog(x, y)
+
+\begin{itemize}
+\item x, a sequence of data
+\item y, a sequence of data, the same length of x
+\end{itemize}
+
+\end{itemize}
+
+\begin{verbatim}
+   In []: loglog(x, y)
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Getting help on \texttt{matplotlib}}
+\label{sec-16}
+
+\begin{itemize}
+\item Help
+
+\begin{itemize}
+\item \hyperref[sec-16]{matplotlib.sourceforge.net/contents.html}
+\end{itemize}
+
+\item More plots
+
+\begin{itemize}
+\item \hyperref[sec-16]{matplotlib.sourceforge.net/users/screenshots.html}
+\item \hyperref[sec-16]{matplotlib.sourceforge.net/gallery.html}
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-17}
+
+\begin{itemize}
+\item Scatter plot (\texttt{scatter()})
+\item Pie chart (\texttt{pie()})
+\item Bar chart (\texttt{bar()})
+\item Log-log plot (\texttt{loglog()})
+\item \texttt{matplotlib} online help
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-18}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/savefig/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/savefig/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -9,8 +9,16 @@
 Savefig
 =======
 
-Hello and welcome to the tutorial. In this tutorial you will learn how
-to save plots using Python.
+{{{ Show the first slide }}}
+
+Hello and welcome to the tutorial saving plots.
+
+{{{ switch to next slide, outline slide }}}
+
+In this tutorial you will learn how to save plots using Python. And
+saving in different formats, and locating the file in the file system.
+
+{{{ switch to next slide, a sine wave}}}
 
 Start your IPython interpreter with the command ::
 
@@ -38,9 +46,11 @@
 the plot for future use so that you can embed the plot in your
 reports.
 
+{{{ switch to next slide, savefig() }}}
+
 {{{ Switch the focus to IPython interpreter window }}}
 
-For saving the plot, we will use savefig function, and it has to be
+For saving the plot, we will use ``savefig()`` function, and it has to be
 done with the plot window open. The statement is, ::
 
   savefig('/home/fossee/sine.png')
@@ -73,6 +83,8 @@
 close it and return to IPython interpreter, make sure the plot window
 is still open, also don't close the file browser window }}}
 
+{{{ switch to next slide, More on savefig() }}}
+
 So in-order to save a plot, we use ``savefig`` function. ``savefig``
 can save the plot in many formats, such as pdf - portable document
 format, ps - post script, eps - encapsulated post script, svg -
@@ -81,15 +93,19 @@
 
 .. #[[slide must give the extensions for the files - Anoop]]
 
+{{{ switch to next slide, exercise 1 }}}
+
 Let us now try to save the plot in eps format. ``eps`` stands for
 encapsulated post script, and it can be embedded in your latex
-documents.
+documents. Pause here and try to figure it out yourself.
 
 {{{ Switch focus to the already open plot window }}}
 
 We still have the sine plot with us, and now let us save the plot as
 ``sine.eps``.
 
+{{{ switch to next slide, solution 1 }}}
+
 {{{ Switch focus to IPython interpreter }}}
 
 Now, We will save the plot using the function ``savefig`` ::
@@ -105,10 +121,17 @@
 
 Yes! the new file ``sine.eps`` is here.
 
+{{{ switch to next slide, exercise 2 }}}
+
 Now you may try saving the same in pdf, ps, svg formats.
 
-Let us review what we have learned in this session! We have learned to
-save plots in different formats using the function ``savefig()``.
+{{{ Switch to summary slide }}}
+
+This brings us to the end of this tutorial, in this tutorial we
+learned to save plots using the function ``savefig()``. Saving the
+plots in different formats and locating the files in the file system.
+
+{{{ switch to Thank you slide }}}
 
 Thank you!
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/savefig/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,99 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Savefig
+#+AUTHOR: FOSSEE
+#+EMAIL: info@fossee.in    
+#+DATE: 2010-10-11 Mon
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Saving plots.
+  - Plotting in different formats.
+  - Locating the file in the file system.
+
+* Creating a basic plot
+  Plot a sine wave from -3pi to 3pi.
+  #+begin_src python
+    In []: x = linspace(-3*pi,3*pi,100)
+    
+    In []: plot(x, sin(x))
+  #+end_src
+* savefig()
+** savefig() - to save plots
+   : syntax: savefig(fname)
+** example
+*** savefig('/home/fossee/sine.png')    
+   - file sine.png saved to the folder /home/fossee
+   - .png - file type
+
+* More on savefig()
+** Recall
+   - .png - file type
+** File types supported
+*** .pdf - PDF(Portable Document Format)
+*** .ps - PS(Post Script)
+*** .eps - Encapsulated Post Script
+    ~to be used with~ LaTeX ~documents~
+*** .svg - Scalable Vector Graphics
+    ~vector graphics~
+*** .png - Portable Network Graphics
+    ~supports transparency~
+* Exercise 1
+  Save the sine plot in the format EPS which can be embedded in LaTeX documents.
+* Solution 1
+  #+begin_src python
+    savefig('/home/fossee/sine.eps')
+  #+end_src
+* Exercise 2
+  Save the sine plot in PDF, PS and SVG formats.
+
+* Summary
+  You should now be able to
+  - Use ~savefig()~ function
+  - Save plots in different formats
+      - PDF
+      - PS
+      - PNG
+      -	SVG
+      - EPS
+  - Locating the files in file system.
+    
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/savefig/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,185 @@
+% Created 2010-10-11 Mon 17:08
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Savefig}
+\author{FOSSEE}
+\date{2010-10-11 Mon}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Saving plots.
+\item Plotting in different formats.
+\item Locating the file in the file system.
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Creating a basic plot}
+\label{sec-2}
+
+  Plot a sine wave from -3pi to 3pi.
+\begin{verbatim}
+In []: x = linspace(-3*pi,3*pi,100)
+
+In []: plot(x, sin(x))
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{savefig()}
+\label{sec-3}
+\begin{itemize}
+
+\item savefig() - to save plots
+\label{sec-3_1}%
+\begin{verbatim}
+    syntax: savefig(fname)
+\end{verbatim}
+
+
+\item example
+\label{sec-3_2}%
+\begin{itemize}
+
+\item savefig('/home/fossee/sine.png')
+\label{sec-3_2_1}%
+\begin{itemize}
+\item file sine.png saved to the folder /home/fossee
+\item .png - file type
+\end{itemize}
+
+
+\end{itemize} % ends low level
+\end{itemize} % ends low level
+\end{frame}
+\begin{frame}
+\frametitle{More on savefig()}
+\label{sec-4}
+\begin{itemize}
+
+\item Recall
+\label{sec-4_1}%
+\begin{itemize}
+\item .png - file type
+\end{itemize}
+
+
+\item File types supported
+\label{sec-4_2}%
+\begin{itemize}
+
+\item .pdf - PDF(Portable Document Format)\\
+\label{sec-4_2_1}%
+\item .ps - PS(Post Script)\\
+\label{sec-4_2_2}%
+\item .eps - Encapsulated Post Script\\
+\label{sec-4_2_3}%
+\texttt{to be used with} \LaTeX{} \texttt{documents}
+
+\item .svg - Scalable Vector Graphics\\
+\label{sec-4_2_4}%
+\texttt{vector graphics}
+
+\item .png - Portable Network Graphics\\
+\label{sec-4_2_5}%
+\texttt{supports transparency}
+\end{itemize} % ends low level
+\end{itemize} % ends low level
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-5}
+
+  Save the sine plot in the format EPS which can be embedded in \LaTeX{} documents.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 1}
+\label{sec-6}
+
+\begin{verbatim}
+savefig('/home/fossee/sine.eps')
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 2}
+\label{sec-7}
+
+  Save the sine plot in PDF, PS and SVG formats.
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-8}
+
+  You should now be able to
+\begin{itemize}
+\item Use \texttt{savefig()} function
+\item Save plots in different formats
+
+\begin{itemize}
+\item PDF
+\item PS
+\item PNG
+\item SVG
+\item EPS
+\end{itemize}
+
+\item Locating the files in file system.
+\end{itemize}
+
+    
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-9}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/using python modules/script.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/using python modules/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -17,7 +17,8 @@
 {{{ switch to next slide, outline slide }}}
 
 In this tutorial, we will see how to run python scripts from command
-line, importing modules, importing scipy and pylab modules.
+line, importing modules, importing scipy and pylab modules. And also
+see the Python standard library.
 
 {{{ switch to next slide on executing python scripts from command line }}}
 
@@ -48,6 +49,8 @@
 
 {{{ open terminal and navigate to directory where hello.py was saved }}}
 
+{{{ switch to next slide }}}
+
 now run the Python script as,
 ::
 
@@ -59,6 +62,8 @@
 
 The syntax is python space filename.
 
+{{{ switch to next slide, four plot problem }}}
+
 Now recall the four plot problem where we plotted four plots in a single
 figure. Let us run that script from command line.
 
@@ -87,6 +92,8 @@
 So now let us try to fix the problem and run the script in command
 line,
 
+{{{ switch to next slide, fix ``linspace`` problem }}}
+
 add the following line as the first line in the script,
 {{{ add the line as first line in four_plot.py and save }}}
 ::
@@ -100,6 +107,9 @@
 
 Now it gave another error plot not defined, let us edit the file again
 and add the line below the line we just added,
+
+{{{ switch to next slide, fix ``plot`` problem }}}
+
 {{{ add the line as second line in four_plot.py and save }}}
 ::
 
@@ -115,6 +125,8 @@
 We actually imported the required modules using the keyword ``import``.
 It could have also be done as,
 
+{{{ switch to next slide, better way of fixing }}}
+
 {{{ highlight the following in slide and say it loud }}}
 ::
 
@@ -130,29 +142,26 @@
 module then it will replace any existing functions with the same name
 in our name-space.
 
+{{{ switch to next slide, Instead of ``*`` }}}
+
 So let us modify four_plot.py as,
 {{{ delete the first two lines and add the following }}}
 ::
 
     from scipy import linspace, pi, sin
-    from pylab import plot, legend, annotate, title, show
-    from pylab import xlim, ylim
+    from pylab import plot, legend, annotate
+    from pylab import xlim, ylim, title, show
+
+Now let us try running the code again as,
+::
+
+    python four_plot.py
+
+It works! In this method we actually imported the functions to the
+current name-space, and there is another method of doing it. And that
+is,
 
 {{{ switch to next slide }}}
-it could also be done as,
-
-..     import scipy
-..     import pylab
-..     x = scipy.linspace(-5*scipy.pi, 5*scipy.pi, 500)
-..     pylab.plot(x, x, 'b')
-..     pylab.plot(x, -x, 'b')
-..     pylab.plot(x, scipy.sin(x), 'g', linewidth=2)
-..     pylab.plot(x, x*scipy.sin(x), 'r', linewidth=3)
-..     pylab.legend(['x', '-x', 'sin(x)', 'xsin(x)'])
-..     pylab.annotate('origin', xy = (0, 0))
-..     pylab.xlim(-5*scipy.pi, 5*scipy.pi)
-..     pylab.ylim(-5*scipy.pi, 5*scipy.pi)
-
 
 Notice that we use ``scipy.pi`` instead of just ``pi`` as in the
 previous method, and the functions are called as ``pylab.plot()`` and
@@ -211,7 +220,7 @@
 The modules pylab, scipy, Mayavi are not part of the standard python
 library.
 
-{{{ switch to next slide, recap }}}
+{{{ switch to next slide, summary }}}
 
 This brings us to the end of this tutorial, in this tutorial we
 learned running scripts from command line, learned about modules, saw
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/using python modules/slides.org	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,125 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE: Using python modules
+#+AUTHOR: FOSSEE
+#+EMAIL:     
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Running python scripts from command line
+  - Importing python modules
+  - Importing scipy \& pylab modules
+  - About python standard library.
+* Running Python script from command line
+  - Create a script, open text editor and type the following
+    : print "hello world!"
+    : print 
+  - Save the script as ~hello.py~
+* Running Python script from command line (cont'd)
+  - Run the script
+    : $ python hello.py
+  /Syntax :/ *python filename*
+* Four plot problem
+  #+begin_latex
+    \begin{center}
+      \includegraphics[scale=0.4]{four_plot}    
+    \end{center}
+  #+end_latex   
+* Fix ~linspace()~ problem
+  : from scipy import *
+* Fix ~plot()~ problem
+  : from pylab import *
+* Better way of fixing
+  : from scipy import linspace
+  instead of
+  : from scipy import *
+    ~*~ means import all functions from name-space ~scipy~.
+* Instead of ~*~
+  :  from scipy import linspace, pi, sin
+  :  from pylab import plot, legend, annotate
+  :  from pylab import xlim, ylim, title, show
+  Is better than, ~from scipy import *~ \& ~from pylab import *~.
+* Another Fix
+  #+begin_src python
+    import scipy
+    import pylab
+    x = scipy.linspace(-5*scipy.pi, 5*scipy.pi, 500)
+    pylab.plot(x, x, 'b')
+    pylab.plot(x, -x, 'b')
+    pylab.plot(x, scipy.sin(x), 'g', linewidth=2)
+    pylab.plot(x, x*scipy.sin(x), 'r', linewidth=3)
+    pylab.legend(['x', '-x', 'sin(x)', 'xsin(x)'])
+    pylab.annotate('origin', xy = (0, 0))
+    pylab.xlim(-5*scipy.pi, 5*scipy.pi)
+    pylab.ylim(-5*scipy.pi, 5*scipy.pi)
+  #+end_src
+* Exercise 1
+  Write a python script to plot a sine wave from 
+  #+begin_latex
+    $-2\Pi$
+  #+end_latex
+  to 
+  #+begin_latex
+    $2\Pi$
+  #+end_latex
+  .
+* What is a module?
+  Module is simply a file containing Python definitions and
+  statements. Definitions from a module can be imported into other
+  modules or into the main module.
+* Python standard library
+  Python has a very rich standard library of modules.
+  - Few libraries
+    - Math: ~math~, ~random~
+    - Internet access: ~urllib2~, ~smtplib~
+    - System, Command line arguments: ~sys~
+    - Operating system interface: ~os~
+    - regular expressions: ~re~
+    - compression: ~gzip~, ~zipfile~, ~tarfile~
+  - More information
+    - [[http://docs.python.org/library]]
+* Summary
+  - Running scripts from command line
+  - Learned about modules
+    - importing modules
+  - Python standard library
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/using python modules/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,227 @@
+% Created 2010-10-12 Tue 17:12
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Using python modules}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Running python scripts from command line
+\item Importing python modules
+\item Importing scipy \& pylab modules
+\item About python standard library.
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Running Python script from command line}
+\label{sec-2}
+
+\begin{itemize}
+\item Create a script, open text editor and type the following
+\begin{verbatim}
+     print "hello world!"
+     print
+\end{verbatim}
+
+\item Save the script as \texttt{hello.py}
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Running Python script from command line (cont'd)}
+\label{sec-3}
+
+\begin{itemize}
+\item Run the script
+\begin{verbatim}
+     $ python hello.py
+\end{verbatim}
+
+\end{itemize}
+
+  \emph{Syntax :} \textbf{python filename}
+\end{frame}
+\begin{frame}
+\frametitle{Four plot problem}
+\label{sec-4}
+
+    \begin{center}
+      \includegraphics[scale=0.4]{four_plot}    
+    \end{center}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Fix \texttt{linspace()} problem}
+\label{sec-5}
+
+\begin{verbatim}
+   from scipy import *
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Fix \texttt{plot()} problem}
+\label{sec-6}
+
+\begin{verbatim}
+   from pylab import *
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Better way of fixing}
+\label{sec-7}
+
+\begin{verbatim}
+   from scipy import linspace
+\end{verbatim}
+
+  instead of
+\begin{verbatim}
+   from scipy import *
+\end{verbatim}
+
+    \texttt{*} means import all functions from name-space \texttt{scipy}.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Instead of \texttt{*}}
+\label{sec-8}
+
+\begin{verbatim}
+    from scipy import linspace, pi, sin
+    from pylab import plot, legend, annotate
+    from pylab import xlim, ylim, title, show
+\end{verbatim}
+
+  Is better than, \texttt{from scipy import *} \& \texttt{from pylab import *}.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Another Fix}
+\label{sec-9}
+
+\begin{verbatim}
+import scipy
+import pylab
+x = scipy.linspace(-5*scipy.pi, 5*scipy.pi, 500)
+pylab.plot(x, x, 'b')
+pylab.plot(x, -x, 'b')
+pylab.plot(x, scipy.sin(x), 'g', linewidth=2)
+pylab.plot(x, x*scipy.sin(x), 'r', linewidth=3)
+pylab.legend(['x', '-x', 'sin(x)', 'xsin(x)'])
+pylab.annotate('origin', xy = (0, 0))
+pylab.xlim(-5*scipy.pi, 5*scipy.pi)
+pylab.ylim(-5*scipy.pi, 5*scipy.pi)
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-10}
+
+  Write a python script to plot a sine wave from 
+    $-2\Pi$
+  to 
+    $2\Pi$
+  .
+\end{frame}
+\begin{frame}
+\frametitle{What is a module?}
+\label{sec-11}
+
+  Module is simply a file containing Python definitions and
+  statements. Definitions from a module can be imported into other
+  modules or into the main module.
+\end{frame}
+\begin{frame}
+\frametitle{Python standard library}
+\label{sec-12}
+
+  Python has a very rich standard library of modules.
+\begin{itemize}
+\item Few libraries
+
+\begin{itemize}
+\item Math: \texttt{math}, \texttt{random}
+\item Internet access: \texttt{urllib2}, \texttt{smtplib}
+\item System, Command line arguments: \texttt{sys}
+\item Operating system interface: \texttt{os}
+\item regular expressions: \texttt{re}
+\item compression: \texttt{gzip}, \texttt{zipfile}, \texttt{tarfile}
+\end{itemize}
+
+\item More information
+
+\begin{itemize}
+\item \href{http://docs.python.org/library}{http://docs.python.org/library}
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-13}
+
+\begin{itemize}
+\item Running scripts from command line
+\item Learned about modules
+
+\begin{itemize}
+\item importing modules
+\end{itemize}
+
+\item Python standard library
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-14}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}
--- a/using-sage/questions.rst	Wed Oct 13 11:15:18 2010 +0530
+++ b/using-sage/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -1,17 +1,81 @@
 Objective
 ---------
 
-.. A mininum of 8 questions here. 
+1. How do you find the limit of the function ``x/sin(x)`` as ``x`` tends to
+   ``0`` from the negative side.
+
+   Answer: lim(x/sin(x), x=0, dir="below")
+
+#. Find the third differential of the function ``exp(sin(x)*cos(x^2))``
+ 
+   Answer: diff(exp(sin(x)*cos(x^2), x, 3)
+
+#. Solve the system of linear equations::
+
+     x-2y+3z = 7
+     2x+3y-z = 5
+     x+2y+4z = 9
+
+   Answer::
+
+     A = Matrix([[1, -2, 3], 
+                 [2, 3, -1], 
+                 [1, 2, 4]])
+
+     b = vector([7, 5, 9])
+
+     solve_right(A, b)
+
+#. How do you get the factorized form of ``x^4 - 4x^2 + x^3 + 2x + 7`` 
+
+   Answer::
 
-1. Question 1
-2. Question 2
-3. Question 3
+      factor( x^4 + x^3 - 4*x^2 + 2*x + 7 )
+
+#. list all the primes between 2009 and 2900
+
+   Answer: prime_range(2009, 2901)
+
+#. Which function is used to check primality
+
+   a. isPrime
+   #. isprime
+   #. is_prime
+   #. prime
+
+   Answer: is_prime
+
+#. How do you list all the combinations of ``[1, 2, 3, 4]``
+
+
+   Answer::
+
+     c1 = Combinations([1, 2, 3, 4])
+     c1.list()
+
+#. How do you list all the permutations of ``[1, 3, 2, 3]``
+
+    Answer::
+
+      p1 = Permutations([1, 3, 2, 3])
+      p2.list()
 
 
 Programming
 -----------
 
-.. A minimum of 2 questions here. 
+1. What is the out put of the following code::
+
+     c1 = Combinations([1, 2, 3, 4])
+     c2 = Combinations([1, 2, 4, 3])
+
+     l1 = c1.list()
+     l2 = c2.list()
 
-1. Programming Assignment 1
-2. Programming Assignment 2
+     for i in l2:
+         l1.remove(i)
+
+     print l2
+
+   Answer: []
+
--- a/using_sage_to_teach.rst	Wed Oct 13 11:15:18 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-Hello friends and welcome to the tutorial on "How to use SAGE for teaching"
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall learn
-
- * How to use SAGE for 2D and 3D plotting 
- * How to use interactive features of SAGE for better demonstration
- * How to use SAGE worksheets for collaborative learning
- * How to use typesetting in sage for neater outputs
-
-2D
- * plot
- * parametric_plot
- * polygon
- * line
-3D
- * plot3d
- * parametric_plot3d
-{{{ Pause here and try out the following exercises }}}
-
-%% 2 %% change the label on y-axis to "y" and save the lines of code
-        accordingly
-
-{{{ continue from paused state }}}
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * how to use loadtxt to read files
- * how to generate a least square fit
-
-{{{ Show the "sponsored by FOSSEE" slide }}}
-
-#[Nishanth]: Will add this line after all of us fix on one.
-This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India
-
-Hope you have enjoyed and found it useful.
-Thankyou
- 
-.. Author              : Nishanth
-   Internal Reviewer 1 : 
-   Internal Reviewer 2 : 
-   External Reviewer   :
--- a/writing_python_scripts.rst	Wed Oct 13 11:15:18 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-Hello friends and welcome to the tutorial on "Writing Python scripts"
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall learn
-
- * How write Python scripts 
-
-Often we will have to reuse the code that we haave written. We do that by
-writing functions. Functions are bundled into packages and are imported as and
-required in the script.
-
-Let us first write a function that computes the gcd of two numbers and save it
-in a script.
-
-{{{ Open an editor and start typing out the following code }}}
-::
-
-    def gcd(a, b):
-
-        while b:
-            a, b = b, a%b
-
-        return a
-
-We shall write an test function in the script that tests the gcd function every
-time the script is run.
-
-{{{ Add to the script }}}
-
-::
-
-    if gcd(40, 12) == 4:
-        print "Everything OK"
-    else:
-        print "The GCD function is wrong"
-
-Let us save the file as script.py in /home/fossee/gcd_script.py
-
-We shall run the script by doing
-::
-
-    $ python /home/fossee/gcd_script.py
-
-We can see that the script is executed and everything is fine.
-
-What if we want to use the gcd function in some of our later scripts. This
-is also possible since every python file can be used as a module.
-
-But first, we shall understand what happens when you import a module.
-
-Open IPython and type
-::
-
-    import sys
-    sys.path
-
-This is a list of locations where python searches for a module when it
-encounters an import statement.
-
-hence when we just did =import sys=, python searches for a file named sys.py or
-a folder named sys in all these locations one by one, until it finds one.
-
-We can place our script in any one of these locations and can import it.
-
-The first item in the list is an empty string which means the current working
-directory is also searched. 
-
-Alternatively, we can also import the module if we are working in same 
-directory where the script exists.
-
-Since we are in /home/fossee, we can simply do
-::
-
-    import gcd_script
-    
-We can see that the gcd_script is imported. But the test code that we added at
-the end of the file is also executed.
-
-But we want the test code to be executed only when the file is run as a python 
-script and not when it is imported.
-
-This is possible by using =__name__= variable.
-
-First we shall look at how to use the idiom and then understand how it works.
-
-Go to the file and add
-::
-
-    if __name__ == "__main__":
-        
-before the test code and indent the test code.
-
-Let us first run the code.
-::
-
-    $ python gcd_script.py
-
-We can see that the test runs successfully.
-
-Now we shall import the file
-::
-    
-    import gcd_script
-
-We see that now the test code is not executed.
-
-The __name__ variable is local to every module and it is equal to __main__ only
-when the file is run as a script.
-
-hence all the code that goes after __name__ == "__main__" is executed only when
-the file is run as a python script.
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * What happens when we import a module
- * How to use a script as a module
- * How to write test functions using the __name__ idiom 
-
-{{{ Show the "sponsored by FOSSEE" slide }}}
-
-#[Nishanth]: Will add this line after all of us fix on one.
-This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India
-
-Hope you have enjoyed and found it useful.
-Thankyou
- 
-.. Author              : Nishanth
-   Internal Reviewer 1 : 
-   Internal Reviewer 2 : 
-   External Reviewer   :
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/writing_python_scripts/questions.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,90 @@
+Objective Questions
+-------------------
+
+ 1. If ``a = [1, 1, 2, 3, 3, 5, 5, 8]``. What is set(a)
+
+   a. set([1, 1, 2, 3, 3, 5, 5, 8])
+   #. set([1, 2, 3, 5, 8])
+   #. set([1, 2, 3, 3, 5, 5])
+   #. Error
+
+   Answer: set([1, 2, 3, 5, 8])
+
+ 2. ``a = set([1, 3, 5])``. How do you find the length of a?
+
+   Answer: len(a)
+
+ 3. ``a = set([1, 3, 5])``. What does a[2] produce?
+
+   a. 1
+   #. 3
+   #. 5
+   #. Error
+
+   Answer: Error
+
+ 4. ``odd = set([1, 3, 5, 7, 9])`` and ``squares = set([1, 4, 9, 16])``. What
+    is the value of ``odd | squares``?
+
+   Answer: set([1, 3, 4, 5, 7, 9, 16])
+
+ 5. ``odd = set([1, 3, 5, 7, 9])`` and ``squares = set([1, 4, 9, 16])``. What
+    is the value of ``odd - squares``?
+
+   Answer: set([3, 5, 7])
+
+ 6. ``odd = set([1, 3, 5, 7, 9])`` and ``squares = set([1, 4, 9, 16])``. What
+    is the value of ``odd ^ squares``?
+
+   Answer: set([3, 4, 5, 7, 16])
+
+ 7. ``odd = set([1, 3, 5, 7, 9])`` and ``squares = set([1, 4, 9, 16])``. What
+    does ``odd * squares`` give?
+
+   a. set([1, 12, 45, 112, 9])
+   #. set([1, 3, 4, 5, 7, 9, 16])
+   #. set([])
+   #. Error
+
+   Answer: Error
+
+ 8. ``a = set([1, 2, 3, 4])`` and ``b = set([5, 6, 7, 8])``. What is ``a + b``
+
+   a. set([1, 2, 3, 4, 5, 6, 7, 8])
+   #. set([6, 8, 10, 12])
+   #. set([5, 12, 21, 32])
+   #. Error
+
+ 9. ``a`` is a set. how do you check if if a varaible ``b`` exists in ``a``?
+
+   Answer: b in a
+
+ 10. ``a`` and ``b`` are two sets. What is ``a ^ b == (a - b) | (b - a)``?
+
+   a. True
+   #. False
+
+   Answer: False
+
+
+Larger Questions
+----------------
+
+ 1. Given that mat_marks is a list of maths marks of a class. Find out the
+    no.of duplicates marks in the list.
+
+   Answer::
+
+     unique_marks = set(mat_marks)
+     no_of_duplicates = len(mat_marks) - len(unique_marks)
+
+ 2. Given that mat_marks is a list of maths marks of a class. Find how many
+    duplicates of each mark exist.
+
+   Answer::
+
+     marks_set = set(mat_marks)
+     for mark in marks_set:
+         occurences = mat_marks.count(mark)
+         print occurences - 1, "duplicates of", mark, "exist"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/writing_python_scripts/quickref.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,11 @@
+Creating a tuple:\\
+{\ex \lstinline|    t = (1, "hello", 2.5)|}
+
+Accessing elements of tuples:\\
+{\ex \lstinline|    t[index] Ex: t[2]|}
+
+Accessing slices of tuples:\\
+{\ex \lstinline|    t[start:stop:step]|}
+
+Swapping values:\\
+{\ex \lstinline|    a, b = b, a|}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/writing_python_scripts/script.rst	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,146 @@
+.. Objectives
+.. ----------
+
+.. Prerequisites
+.. -------------
+     
+.. Author              : Nishanth Amuluru
+   Internal Reviewer   : 
+   External Reviewer   :
+   Checklist OK?       : <put date stamp here, if OK> [2010-10-05]
+
+Script
+------
+
+Hello friends and welcome to the tutorial on "Writing Python scripts"
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall learn
+
+ * How write Python scripts 
+
+Often we will have to reuse the code that we haave written. We do that by
+writing functions. Functions are bundled into packages and are imported as and
+required in the script.
+
+Let us first write a function that computes the gcd of two numbers and save it
+in a script.
+
+{{{ Open an editor and start typing out the following code }}}
+::
+
+    def gcd(a, b):
+
+        while b:
+            a, b = b, a%b
+
+        return a
+
+We shall write an test function in the script that tests the gcd function every
+time the script is run.
+
+{{{ Add to the script }}}
+
+::
+
+    if gcd(40, 12) == 4:
+        print "Everything OK"
+    else:
+        print "The GCD function is wrong"
+
+Let us save the file as script.py in /home/fossee/gcd_script.py
+
+We shall run the script by doing
+::
+
+    $ python /home/fossee/gcd_script.py
+
+We can see that the script is executed and everything is fine.
+
+What if we want to use the gcd function in some of our later scripts. This
+is also possible since every python file can be used as a module.
+
+But first, we shall understand what happens when you import a module.
+
+Open IPython and type
+::
+
+    import sys
+    sys.path
+
+This is a list of locations where python searches for a module when it
+encounters an import statement.
+
+hence when we just did =import sys=, python searches for a file named sys.py or
+a folder named sys in all these locations one by one, until it finds one.
+
+We can place our script in any one of these locations and can import it.
+
+The first item in the list is an empty string which means the current working
+directory is also searched. 
+
+Alternatively, we can also import the module if we are working in same 
+directory where the script exists.
+
+Since we are in /home/fossee, we can simply do
+::
+
+    import gcd_script
+    
+We can see that the gcd_script is imported. But the test code that we added at
+the end of the file is also executed.
+
+But we want the test code to be executed only when the file is run as a python 
+script and not when it is imported.
+
+This is possible by using =__name__= variable.
+
+First we shall look at how to use the idiom and then understand how it works.
+
+Go to the file and add
+::
+
+    if __name__ == "__main__":
+        
+before the test code and indent the test code.
+
+Let us first run the code.
+::
+
+    $ python gcd_script.py
+
+We can see that the test runs successfully.
+
+Now we shall import the file
+::
+    
+    import gcd_script
+
+We see that now the test code is not executed.
+
+The __name__ variable is local to every module and it is equal to __main__ only
+when the file is run as a script.
+
+hence all the code that goes after __name__ == "__main__" is executed only when
+the file is run as a python script.
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * What happens when we import a module
+ * How to use a script as a module
+ * How to write test functions using the __name__ idiom 
+
+{{{ Show the "sponsored by FOSSEE" slide }}}
+
+#[Nishanth]: Will add this line after all of us fix on one.
+This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India
+
+Hope you have enjoyed and found it useful.
+Thankyou
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/writing_python_scripts/slides.tex	Wed Oct 13 11:15:37 2010 +0530
@@ -0,0 +1,104 @@
+% Created 2010-10-10 Sun 23:53
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Sets}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Defining Sets
+\item Operations on sets
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Question 1}
+\label{sec-2}
+
+  Given a list of marks, \texttt{marks = [20, 23, 22, 23, 20, 21, 23]} list
+  all the duplicates
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 1}
+\label{sec-3}
+
+\lstset{language=Python}
+\begin{lstlisting}
+marks = [20, 23, 22, 23, 20, 21, 23] 
+marks_set = set(marks)
+for mark in marks_set:
+    marks.remove(mark)
+
+# we are now left with only duplicates in the list marks
+duplicates = set(marks)
+\end{lstlisting}
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-4}
+
+  You should now be able to --
+\begin{itemize}
+\item make sets from lists
+\item input sets directly
+\item perform operations like union, intersection, symmetric difference
+\item check if a subset of another
+\item check containership, length and other properties similar to lists
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-5}
+
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+\end{frame}
+
+\end{document}