Merged heads.
authorPuneeth Chaganti <punchagan@fossee.in>
Fri, 08 Oct 2010 11:32:09 +0530
changeset 252 0ff3f1a97068
parent 251 9bc78792904b (current diff)
parent 238 c507e9c413c6 (diff)
child 253 8a117c6e75f1
Merged heads.
additional_ipython.rst
embellishing_a_plot.rst
input_output.rst
lstsq.rst
parsing_data.rst
sets.rst
tuples.rst
--- a/additional_ipython.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-.. Author              : Nishanth
-   Internal Reviewer 1 : 
-   Internal Reviewer 2 : 
-   External Reviewer   :
-
-.. Prerequisites: Embellinshing plots
-
-Script
-======
-
-
-Hello friends and welcome to the tutorial on Additional Features of IPython
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall look at additional features of IPython that help us
-to retreive the commands that we type on the interpreter and then save them
-into a file and run it.
-
-Let us start ipython with pylab loaded, by typing
-::
-
-    $ ipython -pylab
-
-on the terminal
-
-{{{ shit to terminal and type ipython -pylab }}}
-
-We shall first make a plot and then view the history and save it.
-::
-
-    x = linspace(-2*pi, 2*pi, 100)
-    plot(x, xsinx(x))
-
-xsin(x) is actually x * sin(x)
-::
-
-    plot(x, x*sin(x))
-    plot(x, sin(x))
-    xlabel("x")
-    ylabel("$f(x)$")   
-    title("x and xsin")
-
-We now have the plot. Let us look at the commands that we have typed in. The
-history can be retreived by using =%hist= command. Type
-::
-
-    %hist
-
-As you can see, it displays a list of recent commands that we typed. Every
-command has a number in front, to specify in which order and when it was typed.
-
-Please note that there is a % sign before the hist command. This implies that 
-%hist is a command that is specific to IPython and not available in vannila 
-Python interpreter. These type of commands are called as magic commands.
-
-Also note that, the =%hist= itself is a command and is displayed as the most
-recent command. This implies that anything we type in is stored as history, 
-irrespective of whether it is command or an error or IPython magic command.
-
-If we want only the recent 5 to be displayed, we pass the number as an argument
-to =%hist= command. Hence
-::
-
-    %hist 5 
-
-displays the recent 5 commands, inclusive of the =%hist= command.
-The default number is 40.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 1 %% Read through the %hist documenatation and find out how can we list all
-        the commands between 5 and 10
-
-{{{ continue from paused state }}}
-
-As we can see from =%hist= documentation,
-::
-
-    %hist 5 10
-
-displays the commands from 5 to 10
-
-Now that we have the history, we would like to save the required line of code
-from history. This is possible by using the =%save= command.
-
-Before we do that, let us first look at history and identify what lines of code
-we require.Type
-::
-
-    %hist
-
-
-{{{ point to the lines }}}
-
-The first command is linspace. But second command is a command that gave us an
-error. Hence we do not need seconf. The commands from third to sixth are 
-required. The seventh command although is correct, we do not need it since we
-are setting the title correctly in the eigthth command.
-
-So we need first third to sixth and the eigthth command for our program.
-Hence the syntax of =%save= is
-::
-
-    %save /home/fossee/plot_script.py 1 3-6 8
-
-{{{ point to the output of the command }}}
-
-The command saves first and then third to sixth and eighth lines of code into
-the specified file.
-
-The first argument to %save is the path of file to save the commands and the
-arguments there after are the commands to be saved in the given order.
-
-{{{ goto the file and open it and show it }}}
-
-{{{ 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 }}}
-
-we use the command =ylabel= on interpreter as
-::
-
-    ylabel("y")
-
-and then do
-::
-
-    %save /home/fossee/example_plot.py 1 3-6 10
-
-Now that we have the required lines of code in a file, let us learn how to run
-the file as a python script.
-
-We use the IPython magic command =%run= to do this. Type
-::
-
-   %run -i /home/fossee/plot_script.py
-
-The script runs but we do not see the plot. This happens because we are running
-a script and we are not in interactive mode anymore.
-
-Hence on your terminal type
-::
-
-    show()
-
-to show the plot.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 3 %% Use %hist and %save and create a script that has show in it and run it
-        to produce and show the plot.
-
-{{{ continue from paused state }}}
-
-We first look at the history using
-::
-
-    %hist 20
-
-Then save the script using
-::
-
-    %save /home/fossee/show_included.py 1 3-6 8 10 13
-    %run -i /home/fossee/show_included.py
-
-We get the desired plot.
-
-The reason for including a -i after run is to tell the interpreter that if any
-name is not found in script, search for it in the interpreter. Hence all these
-sin, plot, pi and show which are not available in script, are taken from the
-interpreter and used to run the script.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 4 %% Run the script without using the -i option. Do you find any difference?
-
-{{{ continue from paused state }}}
-
-We see that it raises nameerror saying the name linspace is not found.
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have looked at 
-
- * Retreiving history using =%hist= command
- * Vieweing only a part of history by passing an argument to %hist
- * saving the required lines of code in required order using %save
- * using %run -i command to run the saved script
-
-{{{ 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
- 
-Questions
-=========
-
- 1. How do you retrieve the recent 5 commands
-
-    a. ``%hist``
-    #. ``%hist -5``
-    #. ``%hist 5``
-    #. ``%hist 5-10``
-
-    Answer: ``%hist 5``
-    
- 2. If there were 20 commands typed and ``%hist`` is used. How many commands 
-    will be displayed.
-
-    a. 10
-    #. 20
-    #. 21
-    #. 19
-
-    Answer: 21
-
- 3. is ``%hist`` considered as a command
-
-    a. True
-    #. False
-
-    Answer: True
-
- 4. how do you retreive the commands from 20 to 50 (inclusive of 20 and 50)
-
-    a. ``%hist 20 50``
-    #. ``%hist 19 50``
-    #. ``%hist 19 51``
-    #. ``%hist 21 50``
-
-    Answer: ``%hist 20 50``
-
- 5. What does the ``%hist 2 5 7`` command do
-
-    a. lists the second, fifth and seventh commands
-    #. lists the commands from 2 to 5 and the seventh command
-    #. raises an error
-    #. lists the commands 2 to 7
-
-    Answer: raises an error
-
- 6. How many commands are displayed when lot of coomands were typed and 
-    ``%hist`` is used.
-
-    a. 20
-    #. 10
-    #. 50
-    #. 40
-
-    Answer: 40
-
- 7. How do you save the lines 2 3 4 5 7 9 10 11
-
-    a. ``%save filepath 2-5 7 9-11``
-    #. ``%save filepath 2-11``
-    #. ``%save filepath``
-    #. ``%save 2-5 7 9 10 11``
-
-    Answer: ``%save filepath 2-5 7 9-11``
-
- 8. You are working in /home/user. Where is the file saved when you do
-    ``%save hello.py 1-3`` 
-
-    a. /home/user/hello.py
-    #. /hello.py
-    #. /home/hello.py
-    #. /home/user/ipython/hello.py
-
-    Answer: /home/user/hello.py
-
- 9. Which lines are saved by the command ``%save filepath 2-5 7 1`` and in
-    which order
-
-    a. 2 3 4 5 7 1
-    #. 1 2 3 4 5 6 7
-    #. 2 5 7 1
-    #. 1 2 5 7
-
- 10. What happens when ``%save filepath line_numbers`` is used and a file
-     already exists in that path.
-
-    a. It is overwritten
-    #. The commands are added to the file
-    #. It raises an error
-    #. A prompt to confirm overwriting is displayed 
-
-    Answer: A prompt to confirm overwriting is displayed 
-
- 11. Read through the documentation of ``%hist`` and find its alternative name
-
-    Answer: ``%history``
-
- 12. Are ``%run /home/user/saved.py`` and ``%run /home/user/saved`` the same
-
-   a. Yes
-   #. No
-
-   Answer: Yes
-
- 13. The file hello.py contains only one command ``x = x + 1``. What happens
-     when you do ``%run hello.py``
-
-    Answer: Raises a nameerror
-
-  14. The file hello.py contains only one command ``x = x + 1``. If value of x
-      is 5 and what does ``%run -i hello.py`` do.
-
-    a. raises an error
-    #. increments value of x by 1
-    #. Does nothing
-    
-    Answer: increments the value of x by 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/additional_ipython/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,118 @@
+Objective Questions
+-------------------
+
+ 1. How do you retrieve the recent 5 commands
+
+    a. ``%hist``
+    #. ``%hist -5``
+    #. ``%hist 5``
+    #. ``%hist 5-10``
+
+    Answer: ``%hist 5``
+    
+ 2. If there were 20 commands typed and ``%hist`` is used. How many commands 
+    will be displayed.
+
+    a. 10
+    #. 20
+    #. 21
+    #. 19
+
+    Answer: 21
+
+ 3. is ``%hist`` considered as a command
+
+    a. True
+    #. False
+
+    Answer: True
+
+ 4. how do you retreive the commands from 20 to 50 (inclusive of 20 and 50)
+
+    a. ``%hist 20 50``
+    #. ``%hist 19 50``
+    #. ``%hist 19 51``
+    #. ``%hist 21 50``
+
+    Answer: ``%hist 20 50``
+
+ 5. What does the ``%hist 2 5 7`` command do
+
+    a. lists the second, fifth and seventh commands
+    #. lists the commands from 2 to 5 and the seventh command
+    #. raises an error
+    #. lists the commands 2 to 7
+
+    Answer: raises an error
+
+ 6. How many commands are displayed when lot of coomands were typed and 
+    ``%hist`` is used.
+
+    a. 20
+    #. 10
+    #. 50
+    #. 40
+
+    Answer: 40
+
+ 7. How do you save the lines 2 3 4 5 7 9 10 11
+
+    a. ``%save filepath 2-5 7 9-11``
+    #. ``%save filepath 2-11``
+    #. ``%save filepath``
+    #. ``%save 2-5 7 9 10 11``
+
+    Answer: ``%save filepath 2-5 7 9-11``
+
+ 8. You are working in /home/user. Where is the file saved when you do
+    ``%save hello.py 1-3`` 
+
+    a. /home/user/hello.py
+    #. /hello.py
+    #. /home/hello.py
+    #. /home/user/ipython/hello.py
+
+    Answer: /home/user/hello.py
+
+ 9. Which lines are saved by the command ``%save filepath 2-5 7 1`` and in
+    which order
+
+    a. 2 3 4 5 7 1
+    #. 1 2 3 4 5 6 7
+    #. 2 5 7 1
+    #. 1 2 5 7
+
+ 10. What happens when ``%save filepath line_numbers`` is used and a file
+     already exists in that path.
+
+    a. It is overwritten
+    #. The commands are added to the file
+    #. It raises an error
+    #. A prompt to confirm overwriting is displayed 
+
+    Answer: A prompt to confirm overwriting is displayed 
+
+ 11. Read through the documentation of ``%hist`` and find its alternative name
+
+    Answer: ``%history``
+
+ 12. Are ``%run /home/user/saved.py`` and ``%run /home/user/saved`` the same
+
+   a. Yes
+   #. No
+
+   Answer: Yes
+
+ 13. The file hello.py contains only one command ``x = x + 1``. What happens
+     when you do ``%run hello.py``
+
+    Answer: Raises a nameerror
+
+  14. The file hello.py contains only one command ``x = x + 1``. If value of x
+      is 5 and what does ``%run -i hello.py`` do.
+
+    a. raises an error
+    #. increments value of x by 1
+    #. Does nothing
+    
+    Answer: increments the value of x by 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/additional_ipython/quickref.tex	Fri Oct 08 11:32:09 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/additional_ipython/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,214 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - 
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Embellishing Plots
+     
+.. 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 Additional Features of IPython
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall look at additional features of IPython that help us
+to retreive the commands that we type on the interpreter and then save them
+into a file and run it.
+
+Let us start ipython with pylab loaded, by typing
+::
+
+    $ ipython -pylab
+
+on the terminal
+
+{{{ shit to terminal and type ipython -pylab }}}
+
+We shall first make a plot and then view the history and save it.
+::
+
+    x = linspace(-2*pi, 2*pi, 100)
+    plot(x, xsinx(x))
+
+xsin(x) is actually x * sin(x)
+::
+
+    plot(x, x*sin(x))
+    plot(x, sin(x))
+    xlabel("x")
+    ylabel("$f(x)$")   
+    title("x and xsin")
+
+We now have the plot. Let us look at the commands that we have typed in. The
+history can be retreived by using =%hist= command. Type
+::
+
+    %hist
+
+As you can see, it displays a list of recent commands that we typed. Every
+command has a number in front, to specify in which order and when it was typed.
+
+Please note that there is a % sign before the hist command. This implies that 
+%hist is a command that is specific to IPython and not available in vannila 
+Python interpreter. These type of commands are called as magic commands.
+
+Also note that, the =%hist= itself is a command and is displayed as the most
+recent command. This implies that anything we type in is stored as history, 
+irrespective of whether it is command or an error or IPython magic command.
+
+If we want only the recent 5 to be displayed, we pass the number as an argument
+to =%hist= command. Hence
+::
+
+    %hist 5 
+
+displays the recent 5 commands, inclusive of the =%hist= command.
+The default number is 40.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 1 %% Read through the %hist documenatation and find out how can we list all
+        the commands between 5 and 10
+
+{{{ continue from paused state }}}
+
+As we can see from =%hist= documentation,
+::
+
+    %hist 5 10
+
+displays the commands from 5 to 10
+
+Now that we have the history, we would like to save the required line of code
+from history. This is possible by using the =%save= command.
+
+Before we do that, let us first look at history and identify what lines of code
+we require.Type
+::
+
+    %hist
+
+
+{{{ point to the lines }}}
+
+The first command is linspace. But second command is a command that gave us an
+error. Hence we do not need seconf. The commands from third to sixth are 
+required. The seventh command although is correct, we do not need it since we
+are setting the title correctly in the eigthth command.
+
+So we need first third to sixth and the eigthth command for our program.
+Hence the syntax of =%save= is
+::
+
+    %save /home/fossee/plot_script.py 1 3-6 8
+
+{{{ point to the output of the command }}}
+
+The command saves first and then third to sixth and eighth lines of code into
+the specified file.
+
+The first argument to %save is the path of file to save the commands and the
+arguments there after are the commands to be saved in the given order.
+
+{{{ goto the file and open it and show it }}}
+
+{{{ 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 }}}
+
+we use the command =ylabel= on interpreter as
+::
+
+    ylabel("y")
+
+and then do
+::
+
+    %save /home/fossee/example_plot.py 1 3-6 10
+
+Now that we have the required lines of code in a file, let us learn how to run
+the file as a python script.
+
+We use the IPython magic command =%run= to do this. Type
+::
+
+   %run -i /home/fossee/plot_script.py
+
+The script runs but we do not see the plot. This happens because we are running
+a script and we are not in interactive mode anymore.
+
+Hence on your terminal type
+::
+
+    show()
+
+to show the plot.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 3 %% Use %hist and %save and create a script that has show in it and run it
+        to produce and show the plot.
+
+{{{ continue from paused state }}}
+
+We first look at the history using
+::
+
+    %hist 20
+
+Then save the script using
+::
+
+    %save /home/fossee/show_included.py 1 3-6 8 10 13
+    %run -i /home/fossee/show_included.py
+
+We get the desired plot.
+
+The reason for including a -i after run is to tell the interpreter that if any
+name is not found in script, search for it in the interpreter. Hence all these
+sin, plot, pi and show which are not available in script, are taken from the
+interpreter and used to run the script.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 4 %% Run the script without using the -i option. Do you find any difference?
+
+{{{ continue from paused state }}}
+
+We see that it raises nameerror saying the name linspace is not found.
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have looked at 
+
+ * Retreiving history using =%hist= command
+ * Vieweing only a part of history by passing an argument to %hist
+ * saving the required lines of code in required order using %save
+ * using %run -i command to run the saved script
+
+{{{ 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/additional_ipython/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/embellishing_a_plot.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
-.. Author              : Nishanth
-   Internal Reviewer 1 : Anoop
-   Internal Reviewer 2 : Madhu
-   External Reviewer   :
-
-.. Prerequisites: using ``plot`` command
-
-Hello friends and welcome to the tutorial on Embellishing Plots.
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline }}}
-
-In this tutorial, we shall look at how to modify the colour, thickness and 
-linestyle of the plot. We shall then learn how to add title to the plot and 
-then look at adding labels to x and y axes. we shall also look at adding 
-annotations to the plot and setting the limits of axes.
-
-Let us start ipython with pylab loaded, by typing on the terminal
-
-{{{ shift to terminal and type ipython -pylab }}}
-
-::
-
-    ipython -pylab
-
-.. #[madhu: I feel the instructions should precede the actual action,
-
-since while recording we need to know before hand what we need to do]
-
-We shall first make a simple plot and start decorating it.
-
-.. #[madhu: start decorating it should be fine, with is not necessary]
-
-::
-
-    x = linspace(-2, 4, 20)
-    plot(x, sin(x))
-
-.. #[madhu: Standard is to choose between -50 to 50 or 0 to 50 with 100
-     points right?]
-
-As we can see, the default colour and the default thickness of the
-line is as decided by pylab. Wouldn't be nice if we could control
-these parameters in the plot? This is possible by passing additional
-arguments to the plot command.
-
-.. #[[Anoop: I think it will be good to rephrase the sentence]]
-.. #[madhu: Why "you" here? Shouldn't this be "we" as decided? Also I
-     added "the default" check the diff]
-
-The additional argument that we shall be passing in here now is the
-colour argument. We shall first clear the figure and plot the same in
-red colour. Hence
-
-.. #[Madhu: Note the diff for changes]
- ::
-
-    clf()
-    plot(x, sin(x), 'r')
-
-As we can see we have the same plot but now in red colour.
-
-.. #[Madhu: diff again]
-
-To alter the thickness of the line, we use the ``linewidth`` argument in the plot
-command. Hence
-::
-
-    plot(x, cos(x), linewidth=2)
-
-produces a plot with a thicker line, to be more precise plot with line
-thickness 2.
-
-.. #[[Anoop: I guess it will be good if you say that it affects the
-   same plot, as you have not cleared the figure]]
-.. #[Madhu: To Anoop, not necessary I feel since they can see it?]
-
-{{{ Show the plot and compare the sine and cos plots }}}
-
-{{{ Pause here and try out the following exercises }}}
-
-.. #[[Anoop: is the above a context switch for the person who does the
-   recording, other wise if it an instruction to the person viewing
-   the video, then I guess the three braces can be removed.]]
-
-%% 1 %% Plot sin(x) in blue colour and with linewidth as 3
-
-{{{ continue from paused state }}}
-
-A combination of colour and linewidth would do the job for us. Hence
-::
-
-    clf()
-    plot(x, sin(x), 'b', linewidth=3)
-
-.. #[[Anoop: add clf()]]
-
-produces the required plot
-
-.. #[Nishanth]: I could not think of a SIMPLE recipe approach for
-             introducing linestyle. Hence the naive approach.
-
-.. #[[Anoop: I guess the recipe is fine, but would be better if you
-   add the problem statement rather than just saying "let's do a simple
-   plot"]]
-
-.. #[Madhu: It is good enough.]
-
-Occasionally we would also want to alter the style of line. Sometimes
-all we want is just a bunch of points not joined. This is possible by
-passing the linestyle argument along with or instead of the colour
-argument. Hence ::
-
-    clf()
-    plot(x, sin(x), '.')
-
-produces a plot with only points.
-
-To produce the same plot but now in blue colour, we do
-::
-
-    clf()
-    plot(x, sin(x), 'b.')
-
-Other available options can be seen in the documentation of plot.
-::
-
-    plot?
-
-{{{ Run through the documentation and show the options available }}}
-
-{{{ Show the options available for line style and colors }}}
-
-.. #[Madhu: The script needs to tell what needs to be shown or
-     explained.]
-
-{{{ Pause here and try out the following exercises }}}
-
-.. #[[Anoop: same question as above, should it be read out?]]
-
-%% 2 %% Plot the sine curve with green filled circles.
-
-{{{ continue from paused state }}}
-
-All we have to do is use a combination of linestyle and colour to acheive this.
-Hence
-::
-
-    clf()
-    plot(x, cos(x), 'go')
-
-produces the required plot.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 3 %% Plot the curve of x vs tan(x) in red dashed line and linewidth 3
-
-{{{ continue from paused state }}}
-
-.. #[Madhu: I did not understand the question]
-
-Now that we know how to produce a bare minimum plot with colour, style
-and thickness of our interest, we shall look at decorating the plot.
-
-Let us start with a plot of the function -x^2 + 4x - 5.
-::
-
-    plot(x, -x*x + 4*x - 5, 'r', linewidth=2)
-
-{{{ Show the plot window and switch back to terminal }}}
-
-We now have the plot in a colour and linewidth of our interest. As you can see,
-the figure does not have any description describing the plot.
-
-.. #[Madhu: Added "not". See the diff]
-
-We will now add a title to the plot by using the ``title`` command.
-::
-
-    title("Parabolic function -x^2+4x-5") 
-
-{{{ Show the plot window and point to the title }}}
-
-The figure now has a title which describes what the plot is. The
-``title`` command as you can see, takes a string as an argument and sets
-the title accordingly.
-
-.. #[Madhu: See the diff]
-
-The formatting in title is messed and it does not look clean. You can imagine
-what would be the situation if there were fractions and more complex functions
-like log and exp. Wouldn't it be good if there was LaTex like formatting?
-
-That is also possible by adding a $ sign before and after the part of the 
-string that should be in LaTex style.
-
-for instance, we can use
-::
-
-    title("Parabolic function $-x^2+4x-5$")
-
-and we get the polynomial formatted properly.
-
-.. #[Nishanth]: Unsure if I have to give this exercise since enclosing the whole
-             string in LaTex style is not good
-
-.. #[[Anoop: I guess you can go ahead with the LaTex thing, it's
-     cool!]]
-.. #[Madhu: Instead of saying LaTeX style you can say Typeset math
-     since that is how it is called as. I am not sure as well. It
-     doesn't really solve the purpose]
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 4 %% Change the title of the figure such that the whole title is formatted
-        in LaTex style
-
-{{{ continue from the paused state }}}
-
-The solution is to enclose the whole string in between $. Hence,
-::
-
-    title("$Parabolic function -x^2+4x-5$")
-
-gives a title that looks neatly formatted.
-
-Although we have title, the plot is not complete without labelling x
-and y axes. Hence we shall label x-axis to "x" and y-axis to "f(x)" ::
-
-    xlabel("x")
-
-{{{ Switch to plot window and show the xlabel }}}
-
-As you can see, ``xlabel`` command takes a string as an argument,
-similar to the ``title`` command and sets it as the label to x-axis.
-
-.. #[See the diff]
-
-Similarly,
-::
-
-    ylabel("f(x)")
-
-sets the name of the y-axis as "f(x)"
-
-{{{ Show the plot window and point to ylabel and switch back to the terminal }}}
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 5 %% Set the x and y labels as "x" and "f(x)" in LaTex style.
-
-{{{ continue from paused state }}}
-
-Since we need LaTex style formatting, all we have to do is enclose the string
-in between two $. Hence,
-::
-
-    xlabel("$x$")
-    yalbel("$f(x)$")
-
-does the job for us.
-
-{{{ Show the plot window with clean labels }}}
-
-The plot is now almost complete. Except that we have still not seen how to 
-name the points. For example the point (2, -1) is the local maxima. We would
-like to name the point accordingly. We can do this by using
-::
-
-    annotate("local maxima", xy=(2, -1))
-
-{{{ Show the annotation that has appeared on the plot }}}
-
-As you can see, the first argument to ``annotate`` command is the name we would
-like to mark the point as and the second argument is the co-ordinates of the
-point at which the name should appear. It is a sequence containing two numbers.
-The first is x co-ordinate and second is y co-ordinate.
-
-.. #[[Anoop: I think we should tell explicitely that xy takes a
-   sequence or a tuple]]
-.. #[Madhu: Agreed to what anoop says and also that xy= is the point
-     part should be rephrased I think.]
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 6 %% Make an annotation called "root" at the point (-4, 0)
-        What happens to the first annotation ?
-
-{{{ continue from paused state }}}
-
-As we can see, every annotate command makes a new annotation on the figure.
-
-Now we have everything we need to decorate a plot. but the plot would be
-incomplete if we can not set the limits of axes. This is possible using the
-button on the plot window.
-
-we shall look at how to get and set them from the script.
-::
-
-    xlim()
-    ylim()
-
-We see that ``xlim`` function returns the current x axis limits and ylim
-function returns the current y-axis limits.
-
-Let us look at how to set the limits.
-::
-
-    xlim(-4, 5)
-
-We see the limits of x-axis are now set to -4 and 5.
-Similarly
-::
-
-    ylim(-15, 2)
-
-sets the limits of y-axis appropriately.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 7 %% Set the limits of axes such that the area of interest is the rectangle
-        (-1, -15) and (3, 0)
-
-{{{ continue from paused state }}}
-
-As we can see, the lower upper limits of x-axis in the question are -1 and 3.
-The limits of y-axis are -15 and 0.
-
-::
-
-    xlim(-1, 3)
-    ylim(-15, 0)
-
-Gives us the required rectangle.
-
-{{{ Show summary slide }}}
-
-we have looked at 
-
- * Modifying the attributes of plot by passing additional arguments
- * How to add title
- * How to incorporate LaTex style formatting
- * How to label x and y axes
- * How to add annotations
- * How to set the limits of axes
-
-{{{ 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
-
-Questions
-=========
-
- 1. Draw a plot of cosine graph between -2pi to 2pi with line thickness 4
-
-    Answer::
-
-    x = linspace(-2*pi, 2*pi)
-    plot(x, cos(x), linewidth=4)
-
- 2. Draw a plot of the polynomial x^2-5x+6 in the range 0 to 5 in blue dotted
-    line
-
-    Answer::
-
-    x = linspace(-2*pi, 2*pi)
-    plot(x, x**2 - 5*x + 6, 'r.')
-
- 3. Which marker is used to get circles
-
-    a. '.'
-    #. '^'
-    #. 'o'
-    #. '--'
-
- 4. What does the '^' marker produce
-
-    Answer: Triangle up marker
-
- 5. How do you set the title as x^2-5x+6 in LaTex style formatting
-
-    Answer: title("$x^2-5x+6$")
-
-6. What happens when the following code is executed::
-
-    xlabel("First label")
-    xlabel("Second label")
-
-   Answer: The label of x-axis is set to "Second label"
-
- 7. Read thorugh the documentation and find out is there a way to modify the
-    alignment of text in the command ``ylabel``
-
-   a. Yes
-   #. No
-
-   Answer: No
-
- 8. How to add the annotation "Maxima" at the point (1, 2)
-
-   Answer: annotate("Maxima", xy=(1, 2))
-
- 9. Is the command ``annotate("max", (1, 2))`` same as ``annotate("max",
-    xy=(1, 2)``
-
-    a. True
-    b. False
-
-    Answer: True
-
- 10. When a new annotation is made at a point, what happens to the old one
-
-    a. It is replaced
-    b. It is overwritten
-    c. The new annotation is combined with old one
-
-    Answer: It is overwritten
-
- 11. What happens when xlim is used without arguments
-
-    Answer: It gives the current limits of x-axis
-
- 12. What happens when ``ylim(0, 5)`` is used
-
-    Answer: It sets the lower and upper limits of y-axis to 0 and 5
-
- 13. Draw a cosine plot from 0 to 2*pi with green dots. annotate the origin as
-     "origin" and set x and y labels to "x" and cos(x) and x limits to 0 and
-     2pi and y limits to -1.2 and 1.2
-
-    Answer::
-
-      x = linspace(0, 2*pi)
-      plot(x, cos(x), 'g.')
-      annotate("origin", (0, 0))
-      xlabel("$x$")
-      ylabel("$cos(x)$")
-      xlim(0, 2*pi)
-      ylim(-1.2, 1.2)
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/embellishing_a_plot/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,90 @@
+Objective Questions
+-------------------
+
+ 1. Draw a plot of cosine graph between -2pi to 2pi with line thickness 4
+
+    Answer::
+
+    x = linspace(-2*pi, 2*pi)
+    plot(x, cos(x), linewidth=4)
+
+ 2. Draw a plot of the polynomial x^2-5x+6 in the range 0 to 5 in blue dotted
+    line
+
+    Answer::
+
+    x = linspace(-2*pi, 2*pi)
+    plot(x, x**2 - 5*x + 6, 'r.')
+
+ 3. Which marker is used to get circles
+
+    a. '.'
+    #. '^'
+    #. 'o'
+    #. '--'
+
+ 4. What does the '^' marker produce
+
+    Answer: Triangle up marker
+
+ 5. How do you set the title as x^2-5x+6 in LaTex style formatting
+
+    Answer: title("$x^2-5x+6$")
+
+6. What happens when the following code is executed::
+
+    xlabel("First label")
+    xlabel("Second label")
+
+   Answer: The label of x-axis is set to "Second label"
+
+ 7. Read thorugh the documentation and find out is there a way to modify the
+    alignment of text in the command ``ylabel``
+
+   a. Yes
+   #. No
+
+   Answer: No
+
+ 8. How to add the annotation "Maxima" at the point (1, 2)
+
+   Answer: annotate("Maxima", xy=(1, 2))
+
+ 9. Is the command ``annotate("max", (1, 2))`` same as ``annotate("max",
+    xy=(1, 2)``
+
+    a. True
+    b. False
+
+    Answer: True
+
+ 10. When a new annotation is made at a point, what happens to the old one
+
+    a. It is replaced
+    b. It is overwritten
+    c. The new annotation is combined with old one
+
+    Answer: It is overwritten
+
+ 11. What happens when xlim is used without arguments
+
+    Answer: It gives the current limits of x-axis
+
+ 12. What happens when ``ylim(0, 5)`` is used
+
+    Answer: It sets the lower and upper limits of y-axis to 0 and 5
+
+ 13. Draw a cosine plot from 0 to 2*pi with green dots. annotate the origin as
+     "origin" and set x and y labels to "x" and cos(x) and x limits to 0 and
+     2pi and y limits to -1.2 and 1.2
+
+    Answer::
+
+      x = linspace(0, 2*pi)
+      plot(x, cos(x), 'g.')
+      annotate("origin", (0, 0))
+      xlabel("$x$")
+      ylabel("$cos(x)$")
+      xlim(0, 2*pi)
+      ylim(-1.2, 1.2)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/embellishing_a_plot/quickref.tex	Fri Oct 08 11:32:09 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/embellishing_a_plot/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,371 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - 
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Using the ``plot`` command interactively
+     
+.. 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 Embellishing Plots.
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline }}}
+
+In this tutorial, we shall look at how to modify the colour, thickness and 
+linestyle of the plot. We shall then learn how to add title to the plot and 
+then look at adding labels to x and y axes. we shall also look at adding 
+annotations to the plot and setting the limits of axes.
+
+Let us start ipython with pylab loaded, by typing on the terminal
+
+{{{ shift to terminal and type ipython -pylab }}}
+
+::
+
+    ipython -pylab
+
+.. #[madhu: I feel the instructions should precede the actual action,
+
+since while recording we need to know before hand what we need to do]
+
+We shall first make a simple plot and start decorating it.
+
+.. #[madhu: start decorating it should be fine, with is not necessary]
+
+::
+
+    x = linspace(-2, 4, 20)
+    plot(x, sin(x))
+
+.. #[madhu: Standard is to choose between -50 to 50 or 0 to 50 with 100
+     points right?]
+
+As we can see, the default colour and the default thickness of the
+line is as decided by pylab. Wouldn't be nice if we could control
+these parameters in the plot? This is possible by passing additional
+arguments to the plot command.
+
+.. #[[Anoop: I think it will be good to rephrase the sentence]]
+.. #[madhu: Why "you" here? Shouldn't this be "we" as decided? Also I
+     added "the default" check the diff]
+
+The additional argument that we shall be passing in here now is the
+colour argument. We shall first clear the figure and plot the same in
+red colour. Hence
+
+.. #[Madhu: Note the diff for changes]
+ ::
+
+    clf()
+    plot(x, sin(x), 'r')
+
+As we can see we have the same plot but now in red colour.
+
+.. #[Madhu: diff again]
+
+To alter the thickness of the line, we use the ``linewidth`` argument in the plot
+command. Hence
+::
+
+    plot(x, cos(x), linewidth=2)
+
+produces a plot with a thicker line, to be more precise plot with line
+thickness 2.
+
+.. #[[Anoop: I guess it will be good if you say that it affects the
+   same plot, as you have not cleared the figure]]
+.. #[Madhu: To Anoop, not necessary I feel since they can see it?]
+
+{{{ Show the plot and compare the sine and cos plots }}}
+
+{{{ Pause here and try out the following exercises }}}
+
+.. #[[Anoop: is the above a context switch for the person who does the
+   recording, other wise if it an instruction to the person viewing
+   the video, then I guess the three braces can be removed.]]
+
+%% 1 %% Plot sin(x) in blue colour and with linewidth as 3
+
+{{{ continue from paused state }}}
+
+A combination of colour and linewidth would do the job for us. Hence
+::
+
+    clf()
+    plot(x, sin(x), 'b', linewidth=3)
+
+.. #[[Anoop: add clf()]]
+
+produces the required plot
+
+.. #[Nishanth]: I could not think of a SIMPLE recipe approach for
+             introducing linestyle. Hence the naive approach.
+
+.. #[[Anoop: I guess the recipe is fine, but would be better if you
+   add the problem statement rather than just saying "let's do a simple
+   plot"]]
+
+.. #[Madhu: It is good enough.]
+
+Occasionally we would also want to alter the style of line. Sometimes
+all we want is just a bunch of points not joined. This is possible by
+passing the linestyle argument along with or instead of the colour
+argument. Hence ::
+
+    clf()
+    plot(x, sin(x), '.')
+
+produces a plot with only points.
+
+To produce the same plot but now in blue colour, we do
+::
+
+    clf()
+    plot(x, sin(x), 'b.')
+
+Other available options can be seen in the documentation of plot.
+::
+
+    plot?
+
+{{{ Run through the documentation and show the options available }}}
+
+{{{ Show the options available for line style and colors }}}
+
+.. #[Madhu: The script needs to tell what needs to be shown or
+     explained.]
+
+{{{ Pause here and try out the following exercises }}}
+
+.. #[[Anoop: same question as above, should it be read out?]]
+
+%% 2 %% Plot the sine curve with green filled circles.
+
+{{{ continue from paused state }}}
+
+All we have to do is use a combination of linestyle and colour to acheive this.
+Hence
+::
+
+    clf()
+    plot(x, cos(x), 'go')
+
+produces the required plot.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 3 %% Plot the curve of x vs tan(x) in red dashed line and linewidth 3
+
+{{{ continue from paused state }}}
+
+.. #[Madhu: I did not understand the question]
+
+Now that we know how to produce a bare minimum plot with colour, style
+and thickness of our interest, we shall look at decorating the plot.
+
+Let us start with a plot of the function -x^2 + 4x - 5.
+::
+
+    plot(x, -x*x + 4*x - 5, 'r', linewidth=2)
+
+{{{ Show the plot window and switch back to terminal }}}
+
+We now have the plot in a colour and linewidth of our interest. As you can see,
+the figure does not have any description describing the plot.
+
+.. #[Madhu: Added "not". See the diff]
+
+We will now add a title to the plot by using the ``title`` command.
+::
+
+    title("Parabolic function -x^2+4x-5") 
+
+{{{ Show the plot window and point to the title }}}
+
+The figure now has a title which describes what the plot is. The
+``title`` command as you can see, takes a string as an argument and sets
+the title accordingly.
+
+.. #[Madhu: See the diff]
+
+The formatting in title is messed and it does not look clean. You can imagine
+what would be the situation if there were fractions and more complex functions
+like log and exp. Wouldn't it be good if there was LaTex like formatting?
+
+That is also possible by adding a $ sign before and after the part of the 
+string that should be in LaTex style.
+
+for instance, we can use
+::
+
+    title("Parabolic function $-x^2+4x-5$")
+
+and we get the polynomial formatted properly.
+
+.. #[Nishanth]: Unsure if I have to give this exercise since enclosing the whole
+             string in LaTex style is not good
+
+.. #[[Anoop: I guess you can go ahead with the LaTex thing, it's
+     cool!]]
+.. #[Madhu: Instead of saying LaTeX style you can say Typeset math
+     since that is how it is called as. I am not sure as well. It
+     doesn't really solve the purpose]
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 4 %% Change the title of the figure such that the whole title is formatted
+        in LaTex style
+
+{{{ continue from the paused state }}}
+
+The solution is to enclose the whole string in between $. Hence,
+::
+
+    title("$Parabolic function -x^2+4x-5$")
+
+gives a title that looks neatly formatted.
+
+Although we have title, the plot is not complete without labelling x
+and y axes. Hence we shall label x-axis to "x" and y-axis to "f(x)" ::
+
+    xlabel("x")
+
+{{{ Switch to plot window and show the xlabel }}}
+
+As you can see, ``xlabel`` command takes a string as an argument,
+similar to the ``title`` command and sets it as the label to x-axis.
+
+.. #[See the diff]
+
+Similarly,
+::
+
+    ylabel("f(x)")
+
+sets the name of the y-axis as "f(x)"
+
+{{{ Show the plot window and point to ylabel and switch back to the terminal }}}
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 5 %% Set the x and y labels as "x" and "f(x)" in LaTex style.
+
+{{{ continue from paused state }}}
+
+Since we need LaTex style formatting, all we have to do is enclose the string
+in between two $. Hence,
+::
+
+    xlabel("$x$")
+    yalbel("$f(x)$")
+
+does the job for us.
+
+{{{ Show the plot window with clean labels }}}
+
+The plot is now almost complete. Except that we have still not seen how to 
+name the points. For example the point (2, -1) is the local maxima. We would
+like to name the point accordingly. We can do this by using
+::
+
+    annotate("local maxima", xy=(2, -1))
+
+{{{ Show the annotation that has appeared on the plot }}}
+
+As you can see, the first argument to ``annotate`` command is the name we would
+like to mark the point as and the second argument is the co-ordinates of the
+point at which the name should appear. It is a sequence containing two numbers.
+The first is x co-ordinate and second is y co-ordinate.
+
+.. #[[Anoop: I think we should tell explicitely that xy takes a
+   sequence or a tuple]]
+.. #[Madhu: Agreed to what anoop says and also that xy= is the point
+     part should be rephrased I think.]
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 6 %% Make an annotation called "root" at the point (-4, 0)
+        What happens to the first annotation ?
+
+{{{ continue from paused state }}}
+
+As we can see, every annotate command makes a new annotation on the figure.
+
+Now we have everything we need to decorate a plot. but the plot would be
+incomplete if we can not set the limits of axes. This is possible using the
+button on the plot window.
+
+we shall look at how to get and set them from the script.
+::
+
+    xlim()
+    ylim()
+
+We see that ``xlim`` function returns the current x axis limits and ylim
+function returns the current y-axis limits.
+
+Let us look at how to set the limits.
+::
+
+    xlim(-4, 5)
+
+We see the limits of x-axis are now set to -4 and 5.
+Similarly
+::
+
+    ylim(-15, 2)
+
+sets the limits of y-axis appropriately.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 7 %% Set the limits of axes such that the area of interest is the rectangle
+        (-1, -15) and (3, 0)
+
+{{{ continue from paused state }}}
+
+As we can see, the lower upper limits of x-axis in the question are -1 and 3.
+The limits of y-axis are -15 and 0.
+
+::
+
+    xlim(-1, 3)
+    ylim(-15, 0)
+
+Gives us the required rectangle.
+
+{{{ Show summary slide }}}
+
+we have looked at 
+
+ * Modifying the attributes of plot by passing additional arguments
+ * How to add title
+ * How to incorporate LaTex style formatting
+ * How to label x and y axes
+ * How to add annotations
+ * How to set the limits of axes
+
+{{{ 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/embellishing_a_plot/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/input_output.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-Hello friends and welcome to the tutorial on Input/Output
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-Input and Output are used in almost every program we use.
-In this tutorial, we shall learn
-
- * Outputting data
- * Taking input from the user
-
-type
-::
- 
-    a = "This is a string"
-    a
-    print a
-     
-print a prints the value of a which is obvious.
-As you can see, even when you type just a, the value of a is shown.
-But there is a difference.
-
-Typing a shows the value of a while print a prints the string. This difference
-becomes more evident when we use strings with newlines in them.
-type
-::
-
-    b = "A line \n New line"
-    b
-    print b
-
-As you can see, just typing b shows that b contains a newline character.
-While typing print b prints the string and hence the newline.
-
-Moreover when we type just a, the value a is shown only in interactive mode and
-does not have any effect on the program while running it as a script.
-
-We shall look at different ways of outputting the data.
-
-print statement also accepts the syntax of C's printf statement.
-Various arguments can be passed to print using modifiers.
-type
-::
-
-    x = 1.5
-    y = 2
-    z = "zed"
-    print "x is %2.1f y is %d z is %s"%(x,y)
-
-As you can see, the values of x and y are substituted in place of %2.1f and %d
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 1 %% What happens when you do print "x is %d y is %f"%(x)
-
-{{{ continue from paused state }}}
-
-We see that the int value of x and float value of y are printed corresponding
-to the modifiers used in the print statement.
-
-We can also see that print statement prints a new line character at the end of
-line, everytime it is called. This can be suppressed by using a "," at the end
-print statement.
-
-Let us see this by typing out following code on an editor as print_example.py
-
-{{{ open an editor }}}
-type
-::
-
-    print "Hello"
-    print "World"
-
-    print "Hello",
-    print "World"
-
-Now we run the script using %run /home/fossee/print_example.py
-
-As we can see, the print statement when used with comma in the end, prints a
-space instead of a new line.
-
-Now we shall look at taking input from the user.
-We will use the ~~raw_input~~ for this.
-type
-::
-
-    ip = raw_input()
-
-The cursor is blinking indicating that it is waiting for input    
-type
-::
-
-    an input
-
-and hit enter.
-Now let us see what is the value of ip by typing.
-::
-
-    ip
-
-We can see that it contains the string "an input"
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 2 %% enter the number 5.6 as input and store it in a variable called c.
-
-{{{ continue from paused state }}}
-
-We have to use the raw_input command with variable c.
-type
-::
-
-    c = raw_input()
-    5.6
-    c
-
-Now let us see the type of c.
-
-::
-
-    type(c)
-
-We see that c is a string. This implies that anything you enter as input, will
-be taken as a string no matter what you enter.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 3 %% What happens when you do not enter anything and hit enter
-
-{{{ continue from paused state }}}
-
-::
-
-    d = raw_input()
-    <RET>
-    d
-
-We see that when nothing is entered, an empty string is considered as input.
-
-raw_input also can display a prompt to assist the user.
-::
-
-    name = raw_input("Please enter your name: ")
-
-prints the string given as argument and then waits for the user input.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 4 %% How do you display a prompt and let the user enter input in a new line
-
-{{{ continue from paused state }}}
-
-The trick is to include a newline character at the end of the prompt string.
-::
-
-    ip = raw_input("Please enter a number in the next line\n> ")
-
-prints the newline character and hence the user enters input in the new line
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * How to print some value
- * How to print using modifiers
- * How to take input from user
- * How to display a prompt to the user before taking the input
-
-{{{ 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   :
-
-Questions
-=========
-
- 1. ``a = 2.5``. What is the output of ``print "a is %d"%(a)``
-
-   a. a is 2.5
-   #. a is 2.0
-   #. 2.0
-   #. a is 2
-
-   Answer: a is 2
-
- 2. What does ``print "This is",     "a line ", "with  spaces"`` print?
-
-   a. This is a line with spaces
-   #. This is a line with  spaces
-   #. This is     a line   with   spaces
-   #. This is a line  with  spaces
-
-   Answer: This is a line  with  spaces
-
- 3. What does ``print "%2.5f"%(1.2)`` print?
-
-   a. 1.2
-   #. 1.20
-   #. 1.20000
-   #. 00001.2
-
-   Answer: 1.20000
-
- 4. What is the output of the following code::
-
-     for i in range(1,10,2):
-         print i,
-
-    Answer::
-
-      1 3 5 7 9
-
- 5. ``a = 2`` and ``b = 4.5``. What does ``print "a is %d and b is %2.1f"%(b, a)``
-    print?
-
-   a. a is 2 and b is 4.5
-   #. a is 4 and b is 2
-   #. a is 4 and b is 2.0
-   #. a is 4.5 and b is 2
-
-   Answer: a is 4 and b is 2.0
-
- 6. What is the prompt displayed by ``raw_input("Say something\nType here:")``
-
-   Answer::
-
-     Say something 
-     Type here:
-
- 6. What is the prompt displayed by ``raw_input("value of a is %d\nInput b
-    value:"a)`` and ``a = 2.5``
-
-   Answer::
-
-     value of a is 2
-     Input ba value:
-
- 7. ``a = raw_input()`` and user enters ``2.5``. What is the type of a?
-
-   a. str
-   #. int
-   #. float
-   #. char
-
-   Answer: str
-
- 8. ``a = int(raw_input())`` and user enters ``4.5``. What happens?
-
-   a. a = 4.5
-   #. a = 4
-   #. a = 4.0
-   #. Error
-
-   Answer: Error
-
- 9. ``a = raw_input()`` and user enters ``"this is a string"``. What does 
-    ``print a`` produce?
-
-   a. 'this is a string'
-   b. 'this is a string"
-   c. "this is a string"
-   #. this is a string
-
-   Answer: "this is a string"
-
-Problems
-========
-
- 1. Answer to universe and everything. Keep taking input from user and print it
-    back until the input is 42.
-
-  Answer::
-
-    ip = raw_input()
-    while ip != "42":
-        print ip
-
- 2. 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input_output/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,105 @@
+Objective Questions
+-------------------
+
+ 1. ``a = 2.5``. What is the output of ``print "a is %d"%(a)``
+
+   a. a is 2.5
+   #. a is 2.0
+   #. 2.0
+   #. a is 2
+
+   Answer: a is 2
+
+ 2. What does ``print "This is",     "a line ", "with  spaces"`` print?
+
+   a. This is a line with spaces
+   #. This is a line with  spaces
+   #. This is     a line   with   spaces
+   #. This is a line  with  spaces
+
+   Answer: This is a line  with  spaces
+
+ 3. What does ``print "%2.5f"%(1.2)`` print?
+
+   a. 1.2
+   #. 1.20
+   #. 1.20000
+   #. 00001.2
+
+   Answer: 1.20000
+
+ 4. What is the output of the following code::
+
+     for i in range(1,10,2):
+         print i,
+
+    Answer::
+
+      1 3 5 7 9
+
+ 5. ``a = 2`` and ``b = 4.5``. What does ``print "a is %d and b is %2.1f"%(b, a)``
+    print?
+
+   a. a is 2 and b is 4.5
+   #. a is 4 and b is 2
+   #. a is 4 and b is 2.0
+   #. a is 4.5 and b is 2
+
+   Answer: a is 4 and b is 2.0
+
+ 6. What is the prompt displayed by ``raw_input("Say something\nType here:")``
+
+   Answer::
+
+     Say something 
+     Type here:
+
+ 6. What is the prompt displayed by ``raw_input("value of a is %d\nInput b
+    value:"a)`` and ``a = 2.5``
+
+   Answer::
+
+     value of a is 2
+     Input ba value:
+
+ 7. ``a = raw_input()`` and user enters ``2.5``. What is the type of a?
+
+   a. str
+   #. int
+   #. float
+   #. char
+
+   Answer: str
+
+ 8. ``a = int(raw_input())`` and user enters ``4.5``. What happens?
+
+   a. a = 4.5
+   #. a = 4
+   #. a = 4.0
+   #. Error
+
+   Answer: Error
+
+ 9. ``a = raw_input()`` and user enters ``"this is a string"``. What does 
+    ``print a`` produce?
+
+   a. 'this is a string'
+   b. 'this is a string"
+   c. "this is a string"
+   #. this is a string
+
+   Answer: "this is a string"
+
+Larger Questions
+================
+
+ 1. Answer to universe and everything. Keep taking input from user and print it
+    back until the input is 42.
+
+  Answer::
+
+    ip = raw_input()
+    while ip != "42":
+        print ip
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input_output/quickref.tex	Fri Oct 08 11:32:09 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/input_output/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,199 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - 
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Loops
+     
+.. 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 Input/Output
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+Input and Output are used in almost every program we use.
+In this tutorial, we shall learn
+
+ * Outputting data
+ * Taking input from the user
+
+type
+::
+ 
+    a = "This is a string"
+    a
+    print a
+     
+print a prints the value of a which is obvious.
+As you can see, even when you type just a, the value of a is shown.
+But there is a difference.
+
+Typing a shows the value of a while print a prints the string. This difference
+becomes more evident when we use strings with newlines in them.
+type
+::
+
+    b = "A line \n New line"
+    b
+    print b
+
+As you can see, just typing b shows that b contains a newline character.
+While typing print b prints the string and hence the newline.
+
+Moreover when we type just a, the value a is shown only in interactive mode and
+does not have any effect on the program while running it as a script.
+
+We shall look at different ways of outputting the data.
+
+print statement also accepts the syntax of C's printf statement.
+Various arguments can be passed to print using modifiers.
+type
+::
+
+    x = 1.5
+    y = 2
+    z = "zed"
+    print "x is %2.1f y is %d z is %s"%(x,y)
+
+As you can see, the values of x and y are substituted in place of %2.1f and %d
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 1 %% What happens when you do print "x is %d y is %f"%(x)
+
+{{{ continue from paused state }}}
+
+We see that the int value of x and float value of y are printed corresponding
+to the modifiers used in the print statement.
+
+We can also see that print statement prints a new line character at the end of
+line, everytime it is called. This can be suppressed by using a "," at the end
+print statement.
+
+Let us see this by typing out following code on an editor as print_example.py
+
+{{{ open an editor }}}
+type
+::
+
+    print "Hello"
+    print "World"
+
+    print "Hello",
+    print "World"
+
+Now we run the script using %run /home/fossee/print_example.py
+
+As we can see, the print statement when used with comma in the end, prints a
+space instead of a new line.
+
+Now we shall look at taking input from the user.
+We will use the ~~raw_input~~ for this.
+type
+::
+
+    ip = raw_input()
+
+The cursor is blinking indicating that it is waiting for input    
+type
+::
+
+    an input
+
+and hit enter.
+Now let us see what is the value of ip by typing.
+::
+
+    ip
+
+We can see that it contains the string "an input"
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 2 %% enter the number 5.6 as input and store it in a variable called c.
+
+{{{ continue from paused state }}}
+
+We have to use the raw_input command with variable c.
+type
+::
+
+    c = raw_input()
+    5.6
+    c
+
+Now let us see the type of c.
+
+::
+
+    type(c)
+
+We see that c is a string. This implies that anything you enter as input, will
+be taken as a string no matter what you enter.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 3 %% What happens when you do not enter anything and hit enter
+
+{{{ continue from paused state }}}
+
+::
+
+    d = raw_input()
+    <RET>
+    d
+
+We see that when nothing is entered, an empty string is considered as input.
+
+raw_input also can display a prompt to assist the user.
+::
+
+    name = raw_input("Please enter your name: ")
+
+prints the string given as argument and then waits for the user input.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 4 %% How do you display a prompt and let the user enter input in a new line
+
+{{{ continue from paused state }}}
+
+The trick is to include a newline character at the end of the prompt string.
+::
+
+    ip = raw_input("Please enter a number in the next line\n> ")
+
+prints the newline character and hence the user enters input in the new line
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * How to print some value
+ * How to print using modifiers
+ * How to take input from user
+ * How to display a prompt to the user before taking the input
+
+{{{ 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/input_output/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/lstsq.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-.. Author              : Nishanth
-   Internal Reviewer 1 : Puneeth
-   Internal Reviewer 2 : 
-   External Reviewer   :
-
-Hello friends and welcome to the tutorial on Least Square Fit
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall look at generating the least square fit line for a
-given set of points.
-
-First let us have a look at the problem.
-
-{{{ Show the slide containing problem statement. }}}
-
-We have an input file generated from a simple pendulum experiment.
-
-It contains two columns of data. The first column is the length of the
-pendulum and the second is the corresponding time period of the pendulum.
-
-As we know, the square of time period of a pendulum is directly proportional to
-its length, we shall plot l vs t^2 and verify this. 
-
-#[Puneeth:] removed the explanation about loadtxt and unpack
- option. It's been done in another LO already. simple dependency 
- should work?
-
-To read the input file and parse the data, we are going to use the
-loadtxt function.  Type 
-::
-
-    l, t = loadtxt("/home/fossee/pendulum.txt", unpack=True)
-    l
-    t
-
-We can see that l and t are two sequences containing length and time values
-correspondingly.
-
-Let us first plot l vs t^2. Type
-::
-
-    tsq = t * t
-    plot(l, tsq, 'bo')
-
-{{{ switch to the plot window }}}
-
-#[Puneeth:] Moved explanation of least square fit here. seems more
-apt. 
-
-We can see that there is a visible linear trend, but we do not get a
-straight line connecting them. We shall, therefore, generate a least
-square fit line.
-
-{{{ show the slide containing explanation on least square fit }}}
-
-As shown in the slide, we are first going to generate the two matrices
-tsq and A. Then we are going to use the ``lstsq`` function to find the
-values of m and c.
-
-let us now generate the A matrix with l values.
-We shall first generate a 2 x 90 matrix with the first row as l values and the
-second row as ones. Then take the transpose of it. Type
-::
-
-    inter_mat = array((l, ones_like(l)))
-    inter_mat
-
-We see that we have intermediate matrix. Now we need the transpose. Type
-::
-
-    A = inter_mat.T
-    A
-
-Now we have both the matrices A and tsq. We only need to use the ``lstsq``
-Type
-::
-
-    result = lstsq(A, tsq)
-
-The result is a sequence of values. The first item in this sequence,
-is the matrix p i.e., the values of m and c. Hence, 
-::
-
-    m, c = result[0]
-    m
-    c
-
-Now that we have m and c, we need to generate the fitted values of t^2. Type
-::
-
-    tsq_fit = m * l + c
-    plot(l, tsq, 'bo')
-    plot(l, tsq_fit, 'r')
-
-We get the least square fit of l vs t^2
-
-{{{ 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 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.
-Thank you
-
-Questions
-=========
-
- 1. What does ones_like([1, 2, 3]) produce
-
-   a. array([1, 1, 1])
-   #. [1, 1, 1]
-   #. [1.0, 1.0, 1.0]
-   #. Error
-   
- 2. What does ones_like([1.2, 3, 4, 5]) produce
-
-   a. [1.2, 3, 4, 5]
-   #. array([1.0, 1.0, 1.0, 1.0])
-   #. array([1, 1, 1, 1])
-   #. array([1.2, 3, 4, 5])
-
- 3. What is the shape of the 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lstsq/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,18 @@
+Objective Questions
+-------------------
+
+ 1. What does ones_like([1, 2, 3]) produce
+
+   a. array([1, 1, 1])
+   #. [1, 1, 1]
+   #. [1.0, 1.0, 1.0]
+   #. Error
+   
+ 2. What does ones_like([1.2, 3, 4, 5]) produce
+
+   a. [1.2, 3, 4, 5]
+   #. array([1.0, 1.0, 1.0, 1.0])
+   #. array([1, 1, 1, 1])
+   #. array([1.2, 3, 4, 5])
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lstsq/quickref.tex	Fri Oct 08 11:32:09 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/lstsq/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,139 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - 
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Basic Plotting
+     2. Arrays
+     
+.. 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 Least Square Fit
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall look at generating the least square fit line for a
+given set of points.
+
+First let us have a look at the problem.
+
+{{{ Show the slide containing problem statement. }}}
+
+We have an input file generated from a simple pendulum experiment.
+
+It contains two columns of data. The first column is the length of the
+pendulum and the second is the corresponding time period of the pendulum.
+
+As we know, the square of time period of a pendulum is directly proportional to
+its length, we shall plot l vs t^2 and verify this. 
+
+#[Puneeth:] removed the explanation about loadtxt and unpack
+ option. It's been done in another LO already. simple dependency 
+ should work?
+
+To read the input file and parse the data, we are going to use the
+loadtxt function.  Type 
+::
+
+    l, t = loadtxt("/home/fossee/pendulum.txt", unpack=True)
+    l
+    t
+
+We can see that l and t are two sequences containing length and time values
+correspondingly.
+
+Let us first plot l vs t^2. Type
+::
+
+    tsq = t * t
+    plot(l, tsq, 'bo')
+
+{{{ switch to the plot window }}}
+
+#[Puneeth:] Moved explanation of least square fit here. seems more
+apt. 
+
+We can see that there is a visible linear trend, but we do not get a
+straight line connecting them. We shall, therefore, generate a least
+square fit line.
+
+{{{ show the slide containing explanation on least square fit }}}
+
+As shown in the slide, we are first going to generate the two matrices
+tsq and A. Then we are going to use the ``lstsq`` function to find the
+values of m and c.
+
+let us now generate the A matrix with l values.
+We shall first generate a 2 x 90 matrix with the first row as l values and the
+second row as ones. Then take the transpose of it. Type
+::
+
+    inter_mat = array((l, ones_like(l)))
+    inter_mat
+
+We see that we have intermediate matrix. Now we need the transpose. Type
+::
+
+    A = inter_mat.T
+    A
+
+Now we have both the matrices A and tsq. We only need to use the ``lstsq``
+Type
+::
+
+    result = lstsq(A, tsq)
+
+The result is a sequence of values. The first item in this sequence,
+is the matrix p i.e., the values of m and c. Hence, 
+::
+
+    m, c = result[0]
+    m
+    c
+
+Now that we have m and c, we need to generate the fitted values of t^2. Type
+::
+
+    tsq_fit = m * l + c
+    plot(l, tsq, 'bo')
+    plot(l, tsq_fit, 'r')
+
+We get the least square fit of l vs t^2
+
+{{{ 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 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.
+Thank you
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lstsq/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/parsing_data.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-.. Author              : Nishanth
-   Internal Reviewer 1 : 
-   Internal Reviewer 2 : 
-   External Reviewer   :
-
-Hello friends and welcome to the tutorial on Parsing Data
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall learn
-
- * What we mean by parsing data
- * the string operations required for parsing data
- * datatype conversion
-
-#[Puneeth]: Changed a few things, here.  
-
-#[Puneeth]: I don't like the way the term "parsing data" has been used, all
-through the script. See if that can be changed.
-
- Lets us have a look at the problem
-
-{{{ Show the slide containing problem statement. }}}
-
-There is an input file containing huge no. of records. Each record corresponds
-to a student.
-
-{{{ show the slide explaining record structure }}}
-As you can see, each record consists of fields seperated by a ";". The first
-record is region code, then roll number, then name, marks of second language,
-first language, maths, science and social, total marks, pass/fail indicatd by P
-or F and finally W if with held and empty otherwise.
-
-Our job is to calculate the mean of all the maths marks in the region "B".
-
-#[Nishanth]: Please note that I am not telling anything about AA since they do
-             not know about any if/else yet.
-
-#[Puneeth]: Should we talk pass/fail etc? I think we should make the problem
- simple and leave out all the columns after total marks. 
-
-Now what is parsing data.
-
-From the input file, we can see that the data we have is in the form of
-text. Parsing this data is all about reading it and converting it into a form
-which can be used for computations -- in our case, sequence of numbers.
-
-#[Puneeth]: should the word tokenizing, be used? Should it be defined before
- using it?
-
-We can clearly see that the problem involves reading files and tokenizing.
-
-#[Puneeth]: the sentence above seems kinda redundant. 
-
-Let us learn about tokenizing strings. Let us define a string first. Type
-::
-
-    line = "parse this           string"
-
-We are now going to split this string on whitespace.
-::
-
-    line.split()
-
-As you can see, we get a list of strings. Which means, when ``split`` is called
-without any arguments, it splits on whitespace. In simple words, all the spaces
-are treated as one big space.
-
-``split`` also can split on a string of our choice. This is acheived by passing
-that as an argument. But first lets define a sample record from the file.
-::
-
-    record = "A;015163;JOSEPH RAJ S;083;042;47;AA;72;244;;;"
-    record.split(';')
-
-We can see that the string is split on ';' and we get each field seperately.
-We can also observe that an empty string appears in the list since there are
-two semi colons without anything in between.
-
-To recap, ``split`` splits on whitespace if called without an argument and
-splits on the given argument if it is called with an argument.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 1 %% split the variable line using a space as argument. Is it same as
-        splitting without an argument ?
-
-{{{ continue from paused state }}}
-
-We see that when we split on space, multiple whitespaces are not clubbed as one
-and there is an empty string everytime there are two consecutive spaces.
-
-Now that we know how to split a string, we can split the record and retrieve
-each field seperately. But there is one problem. The region code "B" and a "B"
-surrounded by whitespace are treated as two different regions. We must find a
-way to remove all the whitespace around a string so that "B" and a "B" with
-white spaces are dealt as same.
-
-This is possible by using the ``strip`` method of strings. Let us define a
-string by typing
-::
-
-    unstripped = "     B    "
-    unstripped.strip()
-
-We can see that strip removes all the whitespace around the sentence
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 2 %% What happens to the white space inside the sentence when it is stripped
-
-{{{ continue from paused state }}}
-
-Type
-::
-
-    a_str = "         white      space            "
-    a_str.strip()
-
-We see that the whitespace inside the sentence is only removed and anything
-inside remains unaffected.
-
-By now we know enough to seperate fields from the record and to strip out any
-white space. The only road block we now have is conversion of string to float.
-
-The splitting and stripping operations are done on a string and their result is
-also a string. hence the marks that we have are still strings and mathematical
-operations are not possible on them. We must convert them into numbers
-(integers or floats), before we can perform mathematical operations on them. 
-
-We shall look at converting strings into floats. We define a float string
-first. Type 
-::
-
-    mark_str = "1.25"
-    mark = int(mark_str)
-    type(mark_str)
-    type(mark)
-
-We can see that string is converted to float. We can perform mathematical
-operations on them now.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 3 %% What happens if you do int("1.25")
-
-{{{ continue from paused state }}}
-
-It raises an error since converting a float string into integer directly is
-not possible. It involves an intermediate step of converting to float.
-::
-
-    dcml_str = "1.25"
-    flt = float(dcml_str)
-    flt
-    number = int(flt)
-    number
-
-Using ``int`` it is also possible to convert float into integers.
-
-Now that we have all the machinery required to parse the file, let us solve the
-problem. We first read the file line by line and parse each record. We see if
-the region code is B and store the marks accordingly.
-::
-
-    math_marks_B = [] # an empty list to store the marks
-    for line in open("/home/fossee/sslc1.txt"):
-        fields = line.split(";")
-
-        region_code = fields[0]
-        region_code_stripped = region_code.strip()
-
-        math_mark_str = fields[5]
-        math_mark = float(math_mark_str)
-
-        if region_code == "AA":
-            math_marks_B.append(math_mark)
-
-
-Now we have all the maths marks of region "B" in the list math_marks_B.
-To get the mean, we just have to sum the marks and divide by the length.
-::
-
-        math_marks_mean = sum(math_marks_B) / len(math_marks_B)
-        math_marks_mean
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * how to tokenize a string using various delimiters
- * how to get rid of extra white space around
- * how to convert from one type to another
- * how to parse input data and perform computations on it
-
-{{{ 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.
-Thank you
- 
-Questions
-=========
-
- 1. How do you split the string "Guido;Rossum;Python" to get the words
-
-   Answer: line.split(';')
-
- 2. line.split() and line.split(' ') are same
-
-   a. True
-   #. False
-
-   Answer: False
-
- 3. What is the output of the following code::
-
-      line = "Hello;;;World;;"
-      sub_strs = line.split()
-      print len(sub_strs)
-
-    Answer: 5
-
- 4. What is the output of "      Hello    World    ".strip()
-
-   a. "Hello World"
-   #. "Hello     World"
-   #. "      Hello World"
-   #. "Hello World     "
-   
-   Answer: "Hello    World"
-
- 5. What does "It is a cold night".strip("It") produce
-    Hint: Read the documentation of strip
-
-   a. "is a cold night"
-   #. " is a cold nigh" 
-   #. "It is a cold nigh"
-   #. "is a cold nigh"
-
-   Answer: " is a cold nigh"
-
- 6. What does int("20") produce
-
-   a. "20"
-   #. 20.0
-   #. 20
-   #. Error
-
-   Answer: 20
-
- 7. What does int("20.0") produce
-
-   a. 20
-   #. 20.0
-   #. Error
-   #. "20"
-
-   Answer: Error
-
- 8. What is the value of float(3/2)
-
-   a. 1.0
-   #. 1.5
-   #. 1
-   #. Error
-
-   Answer: 1.0
-
- 9. what doess float("3/2") produce
-
-   a. 1.0
-   #. 1.5
-   #. 1
-   #. Error
-
-   Answer: Error
-   
- 10. See if there is a function available in pylab to calculate the mean
-     Hint: Use tab completion
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/parsing_data/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,102 @@
+Objective Questions
+-------------------
+
+ 1. How do you split the string "Guido;Rossum;Python" to get the words
+
+   Answer: line.split(';')
+
+ 2. line.split() and line.split(' ') are same
+
+   a. True
+   #. False
+
+   Answer: False
+
+ 3. What is the output of the following code::
+
+      line = "Hello;;;World;;"
+      sub_strs = line.split()
+      print len(sub_strs)
+
+    Answer: 5
+
+ 4. What is the output of "      Hello    World    ".strip()
+
+   a. "Hello World"
+   #. "Hello     World"
+   #. "      Hello World"
+   #. "Hello World     "
+   
+   Answer: "Hello    World"
+
+ 5. What does "It is a cold night".strip("It") produce
+    Hint: Read the documentation of strip
+
+   a. "is a cold night"
+   #. " is a cold nigh" 
+   #. "It is a cold nigh"
+   #. "is a cold nigh"
+
+   Answer: " is a cold nigh"
+
+ 6. What does int("20") produce
+
+   a. "20"
+   #. 20.0
+   #. 20
+   #. Error
+
+   Answer: 20
+
+ 7. What does int("20.0") produce
+
+   a. 20
+   #. 20.0
+   #. Error
+   #. "20"
+
+   Answer: Error
+
+ 8. What is the value of float(3/2)
+
+   a. 1.0
+   #. 1.5
+   #. 1
+   #. Error
+
+   Answer: 1.0
+
+ 9. what doess float("3/2") produce
+
+   a. 1.0
+   #. 1.5
+   #. 1
+   #. Error
+
+   Answer: Error
+   
+ 10. See if there is a function available in pylab to calculate the mean
+     Hint: Use tab completion
+
+Larger Questions
+================
+
+ 1. The file ``pos.txt`` contains two columns of data. The first and second
+    columns are the x and y co-ordiantes of a particle in motion, respectively.
+    Plot the trajectory of the particle.
+
+   Answer::
+
+     x_values = []
+     y_values = []
+
+     for line in open("/home/fossee/pos.txt");
+         x_str, y_str = line.split()
+         x = int(x_str)
+         y = int(y_str)
+
+         x_values.append(x)
+         y_values.append(y)
+
+         plot(x, y, 'b.')
+   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/parsing_data/quickref.tex	Fri Oct 08 11:32:09 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/parsing_data/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,223 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - 
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Getting started with lists
+     
+.. 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 Parsing Data
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall learn
+
+ * What we mean by parsing data
+ * the string operations required for parsing data
+ * datatype conversion
+
+#[Puneeth]: Changed a few things, here.  
+
+#[Puneeth]: I don't like the way the term "parsing data" has been used, all
+through the script. See if that can be changed.
+
+ Lets us have a look at the problem
+
+{{{ Show the slide containing problem statement. }}}
+
+There is an input file containing huge no. of records. Each record corresponds
+to a student.
+
+{{{ show the slide explaining record structure }}}
+As you can see, each record consists of fields seperated by a ";". The first
+record is region code, then roll number, then name, marks of second language,
+first language, maths, science and social, total marks, pass/fail indicatd by P
+or F and finally W if with held and empty otherwise.
+
+Our job is to calculate the mean of all the maths marks in the region "B".
+
+#[Nishanth]: Please note that I am not telling anything about AA since they do
+             not know about any if/else yet.
+
+#[Puneeth]: Should we talk pass/fail etc? I think we should make the problem
+ simple and leave out all the columns after total marks. 
+
+Now what is parsing data.
+
+From the input file, we can see that the data we have is in the form of
+text. Parsing this data is all about reading it and converting it into a form
+which can be used for computations -- in our case, sequence of numbers.
+
+#[Puneeth]: should the word tokenizing, be used? Should it be defined before
+ using it?
+
+We can clearly see that the problem involves reading files and tokenizing.
+
+#[Puneeth]: the sentence above seems kinda redundant. 
+
+Let us learn about tokenizing strings. Let us define a string first. Type
+::
+
+    line = "parse this           string"
+
+We are now going to split this string on whitespace.
+::
+
+    line.split()
+
+As you can see, we get a list of strings. Which means, when ``split`` is called
+without any arguments, it splits on whitespace. In simple words, all the spaces
+are treated as one big space.
+
+``split`` also can split on a string of our choice. This is acheived by passing
+that as an argument. But first lets define a sample record from the file.
+::
+
+    record = "A;015163;JOSEPH RAJ S;083;042;47;AA;72;244;;;"
+    record.split(';')
+
+We can see that the string is split on ';' and we get each field seperately.
+We can also observe that an empty string appears in the list since there are
+two semi colons without anything in between.
+
+To recap, ``split`` splits on whitespace if called without an argument and
+splits on the given argument if it is called with an argument.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 1 %% split the variable line using a space as argument. Is it same as
+        splitting without an argument ?
+
+{{{ continue from paused state }}}
+
+We see that when we split on space, multiple whitespaces are not clubbed as one
+and there is an empty string everytime there are two consecutive spaces.
+
+Now that we know how to split a string, we can split the record and retrieve
+each field seperately. But there is one problem. The region code "B" and a "B"
+surrounded by whitespace are treated as two different regions. We must find a
+way to remove all the whitespace around a string so that "B" and a "B" with
+white spaces are dealt as same.
+
+This is possible by using the ``strip`` method of strings. Let us define a
+string by typing
+::
+
+    unstripped = "     B    "
+    unstripped.strip()
+
+We can see that strip removes all the whitespace around the sentence
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 2 %% What happens to the white space inside the sentence when it is stripped
+
+{{{ continue from paused state }}}
+
+Type
+::
+
+    a_str = "         white      space            "
+    a_str.strip()
+
+We see that the whitespace inside the sentence is only removed and anything
+inside remains unaffected.
+
+By now we know enough to seperate fields from the record and to strip out any
+white space. The only road block we now have is conversion of string to float.
+
+The splitting and stripping operations are done on a string and their result is
+also a string. hence the marks that we have are still strings and mathematical
+operations are not possible on them. We must convert them into numbers
+(integers or floats), before we can perform mathematical operations on them. 
+
+We shall look at converting strings into floats. We define a float string
+first. Type 
+::
+
+    mark_str = "1.25"
+    mark = int(mark_str)
+    type(mark_str)
+    type(mark)
+
+We can see that string is converted to float. We can perform mathematical
+operations on them now.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 3 %% What happens if you do int("1.25")
+
+{{{ continue from paused state }}}
+
+It raises an error since converting a float string into integer directly is
+not possible. It involves an intermediate step of converting to float.
+::
+
+    dcml_str = "1.25"
+    flt = float(dcml_str)
+    flt
+    number = int(flt)
+    number
+
+Using ``int`` it is also possible to convert float into integers.
+
+Now that we have all the machinery required to parse the file, let us solve the
+problem. We first read the file line by line and parse each record. We see if
+the region code is B and store the marks accordingly.
+::
+
+    math_marks_B = [] # an empty list to store the marks
+    for line in open("/home/fossee/sslc1.txt"):
+        fields = line.split(";")
+
+        region_code = fields[0]
+        region_code_stripped = region_code.strip()
+
+        math_mark_str = fields[5]
+        math_mark = float(math_mark_str)
+
+        if region_code == "AA":
+            math_marks_B.append(math_mark)
+
+
+Now we have all the maths marks of region "B" in the list math_marks_B.
+To get the mean, we just have to sum the marks and divide by the length.
+::
+
+        math_marks_mean = sum(math_marks_B) / len(math_marks_B)
+        math_marks_mean
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * how to tokenize a string using various delimiters
+ * how to get rid of extra white space around
+ * how to convert from one type to another
+ * how to parse input data and perform computations on it
+
+{{{ 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.
+Thank you
+ 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/parsing_data/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/sets.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-Hello friends and welcome to the tutorial on Sets
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall learn
-
- * sets
- * operations on sets
-
-Sets are data structures which contain unique elements. In other words,
-duplicates are not allowed in sets.
-
-Lets look at how to input sets.
-type
-::
- 
-    a_list = [1, 2, 1, 4, 5, 6, 7]
-    a = set(a_list)
-    a
-     
-We can see that duplicates are removed and the set contains only unique
-elements. 
-::
-
-    f10 = set([1, 2, 3, 5, 8])
-    p10 = set([2, 3, 5, 7])
-
-f10 is the set of fibonacci numbers from 1 to 10.
-p10 is the set of prime numbers from 1 to 10.
-
-Various operations that we do on sets are possible here also.
-The | character stands for union
-::
-
-    f10 | p10
-
-gives us the union of f10 and p10
-
-The & character stands for intersection.
-::
-
-    f10 & p10
-
-gives the intersection
-
-similarly,
-::
-
-    f10 - p10
-
-gives all the elements that are in f10 but not in p10
-
-::
-
-    f10 ^ p10
-
-is all the elements in f10 union p10 but not in f10 intersection p10. In
-mathematical terms, it gives the symmectric difference.
-
-Sets also support checking of subsets.
-::
-
-    b = set([1, 2])
-    b < f10
-
-gives a True since b is a proper subset of f10.
-Similarly,
-::
-
-    f10 < f10
-
-gives a False since f10 is not a proper subset.
-hence the right way to do would be
-::
-
-    f10 <= f10
-
-and we get a True since every set is a subset of itself.
-
-Sets can be iterated upon just like lists and tuples. 
-::
-
-    for i in f10:
-        print i,
-
-prints the elements of f10.
-
-The length and containership check on sets is similar as in lists and tuples.
-::
-
-    len(f10)
-
-shows 5. And
-::
-    
-    1 in f10
-    2 in f10
-
-prints True and False respectively
-
-The order in which elements are organised in a set is not to be relied upon 
-since sets do not support indexing. Hence, slicing and striding are not valid
-on sets.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 1 %% Given a list of marks, marks = [20, 23, 22, 23, 20, 21, 23] 
-        list all the duplicates
-
-{{{ continue from paused state }}}
-
-Duplicates marks are the marks left out when we remove each element of the 
-list exactly one time.
-
-::
-
-    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)
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * How to make sets from lists
- * How to input sets
- * How to perform union, intersection and symmectric difference operations
- * How to check if a set is a subset of other
- * The various similarities with lists like length and containership
-
-{{{ 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   :
-
-
-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
-
-
-Problems
-========
-
- 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/sets/questions.rst	Fri Oct 08 11:32:09 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/sets/quickref.tex	Fri Oct 08 11:32:09 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/sets/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,167 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - Will learn what are tuples and why they are needed
+       Will learn the various methods of accessing elements in tuples
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Getting started with lists
+     
+.. 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 Sets
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall learn
+
+ * sets
+ * operations on sets
+
+Sets are data structures which contain unique elements. In other words,
+duplicates are not allowed in sets.
+
+Lets look at how to input sets.
+type
+::
+ 
+    a_list = [1, 2, 1, 4, 5, 6, 7]
+    a = set(a_list)
+    a
+     
+We can see that duplicates are removed and the set contains only unique
+elements. 
+::
+
+    f10 = set([1, 2, 3, 5, 8])
+    p10 = set([2, 3, 5, 7])
+
+f10 is the set of fibonacci numbers from 1 to 10.
+p10 is the set of prime numbers from 1 to 10.
+
+Various operations that we do on sets are possible here also.
+The | character stands for union
+::
+
+    f10 | p10
+
+gives us the union of f10 and p10
+
+The & character stands for intersection.
+::
+
+    f10 & p10
+
+gives the intersection
+
+similarly,
+::
+
+    f10 - p10
+
+gives all the elements that are in f10 but not in p10
+
+::
+
+    f10 ^ p10
+
+is all the elements in f10 union p10 but not in f10 intersection p10. In
+mathematical terms, it gives the symmectric difference.
+
+Sets also support checking of subsets.
+::
+
+    b = set([1, 2])
+    b < f10
+
+gives a True since b is a proper subset of f10.
+Similarly,
+::
+
+    f10 < f10
+
+gives a False since f10 is not a proper subset.
+hence the right way to do would be
+::
+
+    f10 <= f10
+
+and we get a True since every set is a subset of itself.
+
+Sets can be iterated upon just like lists and tuples. 
+::
+
+    for i in f10:
+        print i,
+
+prints the elements of f10.
+
+The length and containership check on sets is similar as in lists and tuples.
+::
+
+    len(f10)
+
+shows 5. And
+::
+    
+    1 in f10
+    2 in f10
+
+prints True and False respectively
+
+The order in which elements are organised in a set is not to be relied upon 
+since sets do not support indexing. Hence, slicing and striding are not valid
+on sets.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 1 %% Given a list of marks, marks = [20, 23, 22, 23, 20, 21, 23] 
+        list all the duplicates
+
+{{{ continue from paused state }}}
+
+Duplicates marks are the marks left out when we remove each element of the 
+list exactly one time.
+
+::
+
+    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)
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * How to make sets from lists
+ * How to input sets
+ * How to perform union, intersection and symmectric difference operations
+ * How to check if a set is a subset of other
+ * The various similarities with lists like length and containership
+
+{{{ 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/sets/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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/tuples.rst	Fri Oct 08 11:31:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-Hello friends and welcome to the tutorial on Tuples
-
-{{{ Show the slide containing title }}}
-
-{{{ Show the slide containing the outline slide }}}
-
-In this tutorial, we shall learn
-
- * what are tuples
- * their similarities and dissimilarities with lists
- * why are they needed
-
-Let`s get started by defining a tuple. A tuple is defined by enclosing
-parantheses around a sequence of items seperated by commas. It is similar to
-defining a list except that parantheses are used instead of square brackets.
-::
-
-    t = (1, 2.5, "hello", -4, "world", 1.24, 5)
-    t
-
-defines a tuple. The items in the tuple are indexed using numbers and can be 
-accessed by using their position.
-::
-
-    t[3]
-
-prints -4 which is the fourth item of the tuple.
-
-::
-
-    t[1:5:2]
-
-prints the corresponding slice
-
-This is the behaviour similar as to lists. But the difference can be seen when
-we try to change an element in the tuple.
-::
-
-    t[2] = "Hello"
-
-We can see that, it raises an error saying tuple does not support item
-assignment. It only implies that tuples are immutable or in simple words,
-tuples cannot be changed.
-
-But what is the use of tuples!!!
-
-We shall understand that soon. But let us look at a simple problem of swapping
-values.
-
-{{{ Pause here and try out the following exercises }}}
-
-%% 1 %% a = 5 and b = 7. swap the values of a and b
-
-{{{ continue from paused state }}}
-::
-
-    a = 5
-    b = 7
-
-    a
-    b
-
-We define the two values
-::
-
-    temp = a
-    a = b
-    b = temp
-
-    a
-    b
-
-This is the traditional approach
-
-Now let us do it the python way
-::
-
-    a
-    b
-
-    a, b = b, a
-
-    a
-    b
-
-We see that the values are swapped.
-This idiom works for different datatypes also.
-::
-
-    a = 2.5
-    b = "hello"
-
-    a
-    b
-
-Moreover this type of behaviour is straight forward and what you would expect
-should happen naturally.
-
-This is possible because of the immutability of tuples. This process is called
-tuple packing and unpacking.
-
-Let us first see what is tuple packing. Type
-::
-
-    5,
-
-What we see is a tuple with one element.
-::
-
-    5, "hello", 2.5
-
-Now it is a tuple with two elements.
-
-So when we are actually typing two or more elements seperated by commas, those
-elements are packed and a tuple is made from them.
-
-When you type
-::
-
-    a, b = b, a
-
-First the values of b and a are packed into a tuple on the right side and then
-unpacked into the variables a and b.
-
-Immutability of tuples ensures that the values are not changed during the
-packing and unpacking.
-
-{{{ Show summary slide }}}
-
-This brings us to the end of the tutorial.
-we have learnt
-
- * How to define tuples
- * The similarities of tuples with lists, like indexing and iterability
- * The immutability of tuples
- * The value swapping idiom in Python
- * packing and unpacking of tuples
-
-{{{ 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   :
-
-Questions
-=========
-
- 1. Define a tuple containing two values. The first being integer 4 and second
-    is a float 2.5
-
-   Answer: (4, 2.5)
-
- 2. If ``a = (5, "Hello", 3.2)``. what is the value of a[2]
-
-   Answer: 3.2
-
- 3. If ``a = 5,`` then what is the type of a
-
-   a. int
-   #. float
-   #. tuple
-   #. string
-
-   Answer: tuple
-
- 4. if ``a = (2, 3)``. What does ``a[0], a[1] = (3, 4)`` produce
-
-   Answer: Error
-
- 5. If ``a = ([2, 3], 4, 5)``. What is the value of ``a`` after doing
-    ``a[0].append(6)``
-
-    a. ([2, 3, 6], 4, 5)
-    #. Raises an error
-    #. ([2, 3], 4, 5)
-    #. [2, 3, 4, 5, 6]
-
-    Answer: ([2, 3, 6], 4, 5)
-
- 6. What does the following code produce::
-
-      a = 5
-      b = "Hello"
-      a, b = b, a
-      print a
-      print b
-
-    Answer: Hello
-            5
-
- 7. ``a = ("hello", "world", 5, 6, 8)``. What is the value of a[1:4]
-
-    Answer: ("world", 5, 6)
-
- 8. ``a = (1, 2, 3, 4, 5, 6, 7, 8)``. What is the value of a[1::3]
-
-    Answer: (2, 5, 8)
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tuples/questions.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,60 @@
+Objective Questions
+-------------------
+
+ 1. Define a tuple containing two values. The first being integer 4 and second
+    is a float 2.5
+
+   Answer: (4, 2.5)
+
+ 2. If ``a = (5, "Hello", 3.2)``. what is the value of a[2]
+
+   Answer: 3.2
+
+ 3. If ``a = 5,`` then what is the type of a
+
+   a. int
+   #. float
+   #. tuple
+   #. string
+
+   Answer: tuple
+
+ 4. if ``a = (2, 3)``. What does ``a[0], a[1] = (3, 4)`` produce
+
+   Answer: Error
+
+ 5. If ``a = ([2, 3], 4, 5)``. What is the value of ``a`` after doing
+    ``a[0].append(6)``
+
+    a. ([2, 3, 6], 4, 5)
+    #. Raises an error
+    #. ([2, 3], 4, 5)
+    #. [2, 3, 4, 5, 6]
+
+    Answer: ([2, 3, 6], 4, 5)
+
+ 6. What does the following code produce::
+
+      a = 5
+      b = "Hello"
+      a, b = b, a
+      print a
+      print b
+
+    Answer::
+
+      Hello
+      5
+
+ 7. ``a = ("hello", "world", 5, 6, 8)``. What is the value of a[1:4]
+
+    Answer: ("world", 5, 6)
+
+ 8. ``a = (1, 2, 3, 4, 5, 6, 7, 8)``. What is the value of a[1::3]
+
+    Answer: (2, 5, 8)
+
+ 9. ``a = (1, 2, 3, 4, 5, 6, 7, 8)``. What is the value of a[-3::-1]
+
+    Answer: (6, 5, 4, 3, 2, 1)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tuples/quickref.tex	Fri Oct 08 11:32:09 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/tuples/script.rst	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,168 @@
+.. Objectives
+.. ----------
+
+.. A - Students and teachers from Science and engineering backgrounds
+   B - Will learn what are tuples and why they are needed
+       Will learn the various methods of accessing elements in tuples
+   C - 
+   D - 
+
+.. Prerequisites
+.. -------------
+
+..   1. Getting started with lists
+     
+.. 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 Tuples
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall learn
+
+ * what are tuples
+ * their similarities and dissimilarities with lists
+ * why are they needed
+
+Let`s get started by defining a tuple. A tuple is defined by enclosing
+parantheses around a sequence of items seperated by commas. It is similar to
+defining a list except that parantheses are used instead of square brackets.
+::
+
+    t = (1, 2.5, "hello", -4, "world", 1.24, 5)
+    t
+
+defines a tuple. The items in the tuple are indexed using numbers and can be 
+accessed by using their position.
+::
+
+    t[3]
+
+prints -4 which is the fourth item of the tuple.
+
+::
+
+    t[1:5:2]
+
+prints the corresponding slice
+
+This is the behaviour similar as to lists. But the difference can be seen when
+we try to change an element in the tuple.
+::
+
+    t[2] = "Hello"
+
+We can see that, it raises an error saying tuple does not support item
+assignment. It only implies that tuples are immutable or in simple words,
+tuples cannot be changed.
+
+But what is the use of tuples!!!
+
+We shall understand that soon. But let us look at a simple problem of swapping
+values.
+
+{{{ Pause here and try out the following exercises }}}
+
+%% 1 %% a = 5 and b = 7. swap the values of a and b
+
+{{{ continue from paused state }}}
+::
+
+    a = 5
+    b = 7
+
+    a
+    b
+
+We define the two values
+::
+
+    temp = a
+    a = b
+    b = temp
+
+    a
+    b
+
+This is the traditional approach
+
+Now let us do it the python way
+::
+
+    a
+    b
+
+    a, b = b, a
+
+    a
+    b
+
+We see that the values are swapped.
+This idiom works for different datatypes also.
+::
+
+    a = 2.5
+    b = "hello"
+
+    a
+    b
+
+Moreover this type of behaviour is straight forward and what you would expect
+should happen naturally.
+
+This is possible because of the immutability of tuples. This process is called
+tuple packing and unpacking.
+
+Let us first see what is tuple packing. Type
+::
+
+    5,
+
+What we see is a tuple with one element.
+::
+
+    5, "hello", 2.5
+
+Now it is a tuple with two elements.
+
+So when we are actually typing two or more elements seperated by commas, those
+elements are packed and a tuple is made from them.
+
+When you type
+::
+
+    a, b = b, a
+
+First the values of b and a are packed into a tuple on the right side and then
+unpacked into the variables a and b.
+
+Immutability of tuples ensures that the values are not changed during the
+packing and unpacking.
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * How to define tuples
+ * The similarities of tuples with lists, like indexing and iterability
+ * The immutability of tuples
+ * The value swapping idiom in Python
+ * packing and unpacking of tuples
+
+{{{ 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/tuples/slides.tex	Fri Oct 08 11:32:09 2010 +0530
@@ -0,0 +1,106 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Tutorial slides on Python.
+%
+% Author: FOSSEE 
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[14pt,compress]{beamer}
+%\documentclass[draft]{beamer}
+%\documentclass[compress,handout]{beamer}
+%\usepackage{pgfpages} 
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+% Modified from: generic-ornate-15min-45min.de.tex
+\mode<presentation>
+{
+  \usetheme{Warsaw}
+  \useoutertheme{infolines}
+  \setbeamercovered{transparent}
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+%\usepackage{times}
+\usepackage[T1]{fontenc}
+
+\usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler}
+\usepackage[scaled=.95]{helvet}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\usepackage{listings}
+\lstset{language=Python,
+    basicstyle=\ttfamily\bfseries,
+    commentstyle=\color{red}\itshape,
+  stringstyle=\color{darkgreen},
+  showstringspaces=false,
+  keywordstyle=\color{blue}\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros
+\setbeamercolor{emphbar}{bg=blue!20, fg=black}
+\newcommand{\emphbar}[1]
+{\begin{beamercolorbox}[rounded=true]{emphbar} 
+      {#1}
+ \end{beamercolorbox}
+}
+\newcounter{time}
+\setcounter{time}{0}
+\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
+
+\newcommand{\typ}[1]{\lstinline{#1}}
+
+\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
+
+% Title page
+\title{Your Title Here}
+
+\author[FOSSEE] {FOSSEE}
+
+\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
+\date{}
+
+% DOCUMENT STARTS
+\begin{document}
+
+\begin{frame}
+  \maketitle
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Outline}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%              All other slides here.                  %%
+%% The same slides will be used in a classroom setting. %% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+  \frametitle{Summary}
+  \begin{itemize}
+    \item 
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Thank you!}  
+  \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}