Merging heads
authorAmit Sethi
Thu, 11 Nov 2010 01:43:26 +0530
changeset 451 c61ed190af5e
parent 450 d49aee7ab1b9 (current diff)
parent 449 471e1e5844a1 (diff)
child 457 68813d8d80fb
child 466 00c1ba1cb9ef
Merging heads
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-functions/questions.rst	Thu Nov 11 01:43:26 2010 +0530
@@ -0,0 +1,112 @@
+Objective Questions
+-------------------
+
+.. A mininum of 8 questions here (along with answers)
+
+1. What will the function do?
+   ::
+
+       def what(x)
+           return x*x
+
+   1. Returns the square of x
+   #. Returns x
+   #. Function doesn't have docstring
+   #. Error	   
+
+   Answer: Error
+
+2. What will the function do?
+   ::
+
+       def what(x):
+           return x*x
+
+   1. Returns the square of x
+   #. Returns x
+   #. Function doesn't have docstring
+   #. Error	   
+
+   Answer: Returns the square of x
+
+3. How many arguments can be passed to a python function?
+
+   1. None
+   #. One
+   #. Two
+   #. Any
+
+   Answer: Any
+
+4. How many values can a python function return?
+
+   1. None
+   #. One
+   #. Two
+   #. Any
+
+   Answer: Any
+
+5. A python function can return only one value
+
+   1. True
+   #. False
+
+   Answer: False
+
+6. What will be the output of the following code?
+   ::
+
+       def avg(a, b):
+       	   return (a + b) / 2
+
+       print avg(10,11)
+
+   1. 10
+   #. 10.5
+   #. 11
+   #. 9.5
+
+   Answer: 10
+
+7. What will be the output of the following code?
+   ::
+
+       def avg(a, b):
+       	   return (a + b) / 2
+
+       print avg(10,11.0)
+
+   1. 10
+   #. 10.5
+   #. 11
+   #. 9.5
+
+   Answer: 10.5
+
+8. What will be the output of the following code?
+   ::
+
+       def what(a, b):
+       	   return a + b / 2
+
+       print avg(10,11)
+
+   1. 10
+   #. 10.5
+   #. 16
+   #. 15
+
+   Answer: 15
+
+
+Larger Questions
+----------------
+
+.. A minimum of 2 questions here (along with answers)
+
+1. Write a python function to check the numbers a, b c is a Pythagorean
+   triplet or not.
+
+2. Write a python function which will accept an n digit number and
+   which returns the reverse of the number.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-functions/quickref.tex	Thu Nov 11 01:43:26 2010 +0530
@@ -0,0 +1,4 @@
+Defining a function:\\
+{\ex \lstinline|    def name([arguments]):|}
+{\ex \lstinline|        code|}
+{\ex \lstinline|        [return values]|}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-functions/script.rst	Thu Nov 11 01:43:26 2010 +0530
@@ -0,0 +1,291 @@
+.. Objectives
+.. ----------
+
+.. 8.1 LO: getting started with functions (3)
+
+.. At the end of this tutorial, you will be able to 
+
+.. 1. define function
+.. #. define functions with arguments
+.. #. learn about docstrings
+.. #. learn about return values
+..     can return multiple values
+.. #. read code
+
+
+.. Prerequisites
+.. -------------
+
+..   1. should have ``ipython`` installed. 
+..   #. getting started with ``ipython``.
+
+     
+.. Author              : Anoop Jacob Thomas <anoop@fossee.in>
+   Internal Reviewer   : 
+   External Reviewer   :
+   Checklist OK?       : <put date stamp here, if OK> [2010-10-05]
+
+
+==============================
+Getting started with functions
+==============================
+
+{{{ show welcome slide }}}
+
+Hello and welcome to the tutorial getting started with functions.
+
+{{{ switch to next slide, outline slide }}}
+
+In this tutorial we will learn about functions in python, how to
+define functions, arguments to functions, docstrings, and function
+return value.
+
+{{{ switch to next slide, Function }}}
+
+While writing code, we always want to reduce the number of lines of
+code and functions is a way of reusing the code. Thus the same lines
+of code can be used again and again. A function is a portion of code
+within a larger program that performs a specific task and is
+relatively independent of the remaining code. Now let us get more
+familiar with functions,
+
+{{{ switch to next slide, f(x) a mathematical function }}}
+
+Consider a mathematical function f(x) = x square. Here x is a variable
+and with different values of x the value of function will change. When
+x is one f(1) will return the value 1 and f(2) will return us the
+value 4. Let us now see how to define the function f(x) in python.
+
+{{{ switch to next slide, define f(x) in Python }}}
+
+In your Ipython interpreter type the following,
+::
+
+    def f(x):
+    	return x*x
+
+Well that defined the function, so before learning what we did let us
+see if it returns the expected values, try,
+::
+
+    f(1)
+    f(2)
+
+Yes, it returned 1 and 2 respectively. And now let us see what we did,
+we wrote two lines. The first line ``def f(x)`` is used to define the
+name and the parameters to the function. ``def`` is a keyword and
+``f`` is the name of the function and ``x`` the parameter of the
+function.
+
+{{{ switch to next slide, problem statement 1 }}}
+
+%% 1 %% Write a python function named cube which computes the cube of
+   a given number n.
+
+Pause here and try to solve the problem yourself.
+
+{{{ switch to next slide, solution }}}
+
+The problem can be solved as,
+::
+
+    def cube(n):
+    	return n**3
+
+And now let us see how to write functions without arguments.
+
+{{{ switch to next slide, greet function }}}
+
+let us define a new function called ``greet`` which will print ``Hello
+World``.
+::
+
+    def greet():
+    	print "Hello World!"
+
+now try calling the function,
+::
+
+    greet()
+
+Well that is a function which takes no arguments. Also note that it is
+not mandatory for a function to return values. The function ``greet``
+neither takes any argument nor returns any value.
+
+Now let us see how to write functions with more than one argument.
+
+{{{ switch to next slide, exercise 2 }}}
+
+%% 2 %% Write a python function named ``avg`` which computes the
+   average of ``a`` and ``b``.
+
+Pause here and try to solve the problem yourself.
+
+{{{ switch to next slide, solution 2 }}}
+
+The problem can be solved as,
+::
+
+    def avg(a,b):
+    	return (a + b)/2
+
+Thus if we want a function to accept more arguments, we just list them
+separated with a comma between the parenthesis after the function name
+in the ``def`` line.
+
+{{{ switch to next slide, docstring }}}
+
+It is always a good practice to document the code that we write, and
+for a function we define we should write an abstract of what the
+function does, and that is called a docstring. Let us modify the
+function ``avg`` and add docstring to it. Do the following,
+::
+
+    def avg(a,b):
+        """ avg takes two numbers as input (a & b), and
+	returns the average of a and b"""
+	return (a+b)/2
+
+Note that docstrings are entered in the immediate line after the
+function definition and put as a triple quoted string. And here as far
+as the code functionality is concerned, we didn't do anything. We just
+added an abstract of what the function does.
+
+Now try this in the ipython interpreter.
+::
+
+    avg?
+
+It displays the docstring as we gave it. Thus docstring is a good way
+of documenting the function we write.
+
+Try to do this,
+::
+
+    f?
+
+It doesn't have a docstring associated with it. Also we cannot infer
+anything from the function name, and thus we are forced to read the
+code to understand anything about the function.
+
+{{{ switch to next slide, exercise 3 }}}
+
+%% 3 %% Add docstring to the function f.
+
+Pause here and try to do it yourself.
+
+{{{ switch to next slide, solution }}}
+
+We need to define the function again to add docstring to the function
+``f`` and we do it as,
+::
+
+    def f(x):
+    	"""Accepts a number x as argument and,
+	returns the square of the number x."""
+	return x*x
+
+{{{ switch to next slide, exercise 4 }}}
+
+%% 4 %% Write a python function named ``circle`` which returns the
+   area and perimeter of a circle given radius ``r``.
+
+Pause here and try to solve the problem yourself.
+
+{{{ switch to next slide, solution 4 }}}
+
+The problem requires us to return two values instead of one which we
+were doing till now. We can solve the problem as,
+::
+
+    def circle(r):
+    	"""returns area and perimeter of a circle given radius r"""
+	pi = 3.14
+	area = pi * r * r
+	perimeter = 2 * pi * r
+	return area, perimeter
+
+A python function can return any number of values. There is no
+restriction for it.
+
+Let us call the function ``circle`` as,
+::
+
+    a, p = circle(6)
+    print a
+    print p
+
+Now we have done enough coding, let us do some code reading exercise,
+
+{{{ switch to next slide, what }}}
+
+What does the function ``what`` do?
+
+.. def what( n ):
+..     if n < 0: n = -n
+..     while n > 0:
+..         if n % 2 == 1:
+..             return False
+..         n /= 10
+..     return True
+
+Pause here and try to figure out what the function ``what`` does.
+
+{{{ switch to next slide, even_digits }}}
+
+.. def even_digits( n ):
+..    """returns True if all the digits of number n is even
+..    returns False if all the digits of number n is not even"""
+..     if n < 0: n = -n
+..     while n > 0:
+..         if n % 2 == 1:
+..             return False
+..         n /= 10
+..     return True
+
+The function returns ``True`` if all the digits of the number ``n``
+are even, otherwise it returns ``False``.
+
+Now one more code reading exercise,
+
+{{{ switch to next slide, what }}}
+
+What does the function ``what`` do?
+
+.. def what( n ):
+..     i = 1
+..     while i * i < n:
+..         i += 1
+..     return i * i == n, i
+
+Pause here and try to figure out what the function ``what`` does.
+
+{{{ switch to next slide, is_perfect_square }}}
+
+.. def is_perfect_square( n ):
+..     """returns True and square root of n, if n is a perfect square,
+..     otherwise returns False and the square root of the 
+..     next perfect square"""
+..     i = 1
+..     while i * i < n:
+..         i += 1
+..     return i * i == n, i
+
+
+The function returns ``True`` and the square root of ``n`` if n is a
+perfect square, otherwise it returns ``False`` and the square root of
+the next perfect square.
+
+This brings us to the end of this tutorial, in this tutorial we covered
+
+{{{ switch to next slide, summary }}}
+
+- Functions in Python
+- Passing parameters to a function
+- Returning values from a function
+
+We also did few code reading exercises.
+
+{{{ switch to next slide, Thank you }}}
+
+Thank you!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-functions/slides.org	Thu Nov 11 01:43:26 2010 +0530
@@ -0,0 +1,211 @@
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+#+BEAMER_FRAME_LEVEL: 1
+
+#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
+#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
+
+#+LaTeX_CLASS: beamer
+#+LaTeX_CLASS_OPTIONS: [presentation]
+
+#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
+#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+
+#+LaTeX_HEADER: \usepackage{listings}
+
+#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+
+#+TITLE:  Getting started with functions
+#+AUTHOR:  FOSSEE
+#+EMAIL:   info@fossee.in
+#+DATE:    
+
+#+DESCRIPTION: 
+#+KEYWORDS: 
+#+LANGUAGE:  en
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
+
+* Outline
+  - Define functions
+  - Pass arguments to functions
+  - Learn about docstrings
+  - Return values from functions
+
+* Function
+  - Eliminate code redundancy
+  - Help in code reuse
+  - Subroutine
+    - relatively independent of remaining code
+
+* ~f(x)~ a mathematical function
+
+  $f(x) = x^{2}$
+
+  : f(1) -> 1
+  : f(2) -> 4
+
+* Define ~f(x)~ in Python
+  #+begin_src python
+    def f(x):
+        return x*x
+  #+end_src
+
+  - ~def~ - keyword
+  - ~f~ - function name
+  - ~x~ - parameter / argument to function ~f~
+
+* Exercise 1
+
+  Write a python function named ~cube~ which computes the cube of a given
+  number ~n~.
+  
+  - Pause here and try to solve the problem yourself.
+
+* Solution
+  #+begin_src python
+    def cube(n):
+    	return n**3
+  #+end_src
+
+* ~greet~ function
+
+ Function ~greet~ which will print ~Hello World!~.
+ #+begin_src python
+    def greet():
+    	print "Hello World!"
+ #+end_src
+  - Call the function ~greet~
+    : In []: greet()
+    : Hello World!
+
+* Exercise 2
+
+  Write a python function named ~avg~ which computes the average of
+  ~a~ and ~b~.
+
+  - Pause here and try to solve the problem yourself.
+
+* Solution 2
+ #+begin_src python
+    def avg(a,b):
+    	return (a + b)/2
+ #+end_src
+
+ - ~a~ and ~b~ are parameters
+ - ~def f(p1, p2, p3, ... , pn)~
+
+* Docstring
+
+  - Documenting/commenting code is a good practice
+   #+begin_src python
+     def avg(a,b):
+         """ avg takes two numbers as input 
+	 (a & b), and returns the average 
+	 of a and b"""
+	 return (a+b)/2
+   #+end_src
+  - Docstring
+    - written in the line after the ~def~ line.
+    - Inside triple quote.
+  - Documentation
+    : avg?
+* Exercise 3
+  Add docstring to the function f.
+
+* Solution 3
+
+#+begin_src python
+  def f(x):
+      """Accepts a number x as argument and,
+      returns the square of the number x."""
+      return x*x
+#+end_src
+
+* Exercise 4
+  Write a python function named ~circle~ which returns the area and
+  perimeter of a circle given radius ~r~.
+
+* Solution 4
+#+begin_src python
+  def circle(r):
+      """returns area and perimeter of a circle given 
+      radius r"""
+      pi = 3.14
+      area = pi * r * r
+      perimeter = 2 * pi * r
+      return area, perimeter
+#+end_src
+
+* ~what~
+#+begin_src python
+
+ def what( n ):
+     if n < 0: n = -n
+     while n > 0:
+         if n % 2 == 1:
+             return False
+         n /= 10
+     return True
+#+end_src
+
+* ~even_digits~
+#+begin_src python
+ def even_digits( n ):
+    """returns True if all the digits of number 
+    n is even returns False if all the digits 
+    of number n is not even"""
+     if n < 0: n = -n
+     while n > 0:
+         if n % 2 == 1:
+             return False
+         n /= 10
+     return True
+#+end_src
+
+* ~what~
+#+begin_src python
+ def what( n ):
+     i = 1
+     while i * i < n:
+         i += 1
+     return i * i == n, i
+#+end_src
+
+* ~is_perfect_square~
+#+begin_src python
+ def is_perfect_square( n ):
+     """returns True and square root of n, 
+     if n is a perfect square, otherwise 
+     returns False and the square root 
+     of the next perfect square"""
+     i = 1
+     while i * i < n:
+         i += 1
+     return i * i == n, i
+#+end_src
+
+* Summary
+ - Functions in Python
+ - Passing parameters to a function
+ - Returning values from a function
+
+ - We also did few code reading exercises.
+
+* Thank you!
+#+begin_latex
+  \begin{block}{}
+  \begin{center}
+  This spoken tutorial has been produced by the
+  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \end{center}
+  \begin{center}
+    \textcolor{blue}{National Mission on Education through \\
+      Information \& Communication Technology \\ 
+      MHRD, Govt. of India}.
+  \end{center}  
+  \end{block}
+#+end_latex
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-functions/slides.tex	Thu Nov 11 01:43:26 2010 +0530
@@ -0,0 +1,318 @@
+% Created 2010-11-10 Wed 18:59
+\documentclass[presentation]{beamer}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fixltx2e}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{float}
+\usepackage{wrapfig}
+\usepackage{soul}
+\usepackage{t1enc}
+\usepackage{textcomp}
+\usepackage{marvosym}
+\usepackage{wasysym}
+\usepackage{latexsym}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\tolerance=1000
+\usepackage[english]{babel} \usepackage{ae,aecompl}
+\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
+\usepackage{listings}
+\lstset{language=Python, basicstyle=\ttfamily\bfseries,
+commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
+showstringspaces=false, keywordstyle=\color{blue}\bfseries}
+\providecommand{\alert}[1]{\textbf{#1}}
+
+\title{Getting started with functions}
+\author{FOSSEE}
+\date{}
+
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
+\begin{document}
+
+\maketitle
+
+
+
+
+
+
+
+
+
+\begin{frame}
+\frametitle{Outline}
+\label{sec-1}
+
+\begin{itemize}
+\item Define functions
+\item Pass arguments to functions
+\item Learn about docstrings
+\item Return values from functions
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Function}
+\label{sec-2}
+
+\begin{itemize}
+\item Eliminate code redundancy
+\item Help in code reuse
+\item Subroutine
+
+\begin{itemize}
+\item relatively independent of remaining code
+\end{itemize}
+
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{f(x)} a mathematical function}
+\label{sec-3}
+
+
+  $f(x) = x^{2}$
+
+\begin{verbatim}
+   f(1) -> 1
+   f(2) -> 4
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Define \texttt{f(x)} in Python}
+\label{sec-4}
+
+\begin{verbatim}
+def f(x):
+    return x*x
+\end{verbatim}
+
+\begin{itemize}
+\item \texttt{def} - keyword
+\item \texttt{f} - function name
+\item \texttt{x} - parameter / argument to function \texttt{f}
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-5}
+
+
+  Write a python function named \texttt{cube} which computes the cube of a given
+  number \texttt{n}.
+  
+\begin{itemize}
+\item Pause here and try to solve the problem yourself.
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution}
+\label{sec-6}
+
+\begin{verbatim}
+def cube(n):
+    return n**3
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{greet} function}
+\label{sec-7}
+
+
+ Function \texttt{greet} which will print \texttt{Hello World!}.
+\begin{verbatim}
+def greet():
+    print "Hello World!"
+\end{verbatim}
+\begin{itemize}
+\item Call the function \texttt{greet}
+\begin{verbatim}
+     In []: greet()
+     Hello World!
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 2}
+\label{sec-8}
+
+
+  Write a python function named \texttt{avg} which computes the average of
+  \texttt{a} and \texttt{b}.
+
+\begin{itemize}
+\item Pause here and try to solve the problem yourself.
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 2}
+\label{sec-9}
+
+\begin{verbatim}
+def avg(a,b):
+    return (a + b)/2
+\end{verbatim}
+
+\begin{itemize}
+\item \texttt{a} and \texttt{b} are parameters
+\item \texttt{def f(p1, p2, p3, ... , pn)}
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Docstring}
+\label{sec-10}
+
+
+\begin{itemize}
+\item Documenting/commenting code is a good practice
+\begin{verbatim}
+def avg(a,b):
+    """ avg takes two numbers as input 
+    (a & b), and returns the average 
+    of a and b"""
+    return (a+b)/2
+\end{verbatim}
+\item Docstring
+
+\begin{itemize}
+\item written in the line after the \texttt{def} line.
+\item Inside triple quote.
+\end{itemize}
+
+\item Documentation
+\begin{verbatim}
+     avg?
+\end{verbatim}
+
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 3}
+\label{sec-11}
+
+  Add docstring to the function f.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 3}
+\label{sec-12}
+
+
+\begin{verbatim}
+def f(x):
+    """Accepts a number x as argument and,
+    returns the square of the number x."""
+    return x*x
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 4}
+\label{sec-13}
+
+  Write a python function named \texttt{circle} which returns the area and
+  perimeter of a circle given radius \texttt{r}.
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Solution 4}
+\label{sec-14}
+
+\begin{verbatim}
+def circle(r):
+    """returns area and perimeter of a circle given 
+    radius r"""
+    pi = 3.14
+    area = pi * r * r
+    perimeter = 2 * pi * r
+    return area, perimeter
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{what}}
+\label{sec-15}
+
+\begin{verbatim}
+
+def what( n ):
+    if n < 0: n = -n
+    while n > 0:
+        if n % 2 == 1:
+            return False
+        n /= 10
+    return True
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{even\_digits}}
+\label{sec-16}
+
+\begin{verbatim}
+def even_digits( n ):
+   """returns True if all the digits of number 
+   n is even returns False if all the digits 
+   of number n is not even"""
+    if n < 0: n = -n
+    while n > 0:
+        if n % 2 == 1:
+            return False
+        n /= 10
+    return True
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{what}}
+\label{sec-17}
+
+\begin{verbatim}
+def what( n ):
+    i = 1
+    while i * i < n:
+        i += 1
+    return i * i == n, i
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{\texttt{is\_perfect\_square}}
+\label{sec-18}
+
+\begin{verbatim}
+def is_perfect_square( n ):
+    """returns True and square root of n, 
+    if n is a perfect square, otherwise 
+    returns False and the square root 
+    of the next perfect square"""
+    i = 1
+    while i * i < n:
+        i += 1
+    return i * i == n, i
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{Summary}
+\label{sec-19}
+
+\begin{itemize}
+\item Functions in Python
+\item Passing parameters to a function
+\item Returning values from a function
+\item We also did few code reading exercises.
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-20}
+
+  \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/outline_and_allocations.rst	Thu Nov 11 01:37:32 2010 +0530
+++ b/outline_and_allocations.rst	Thu Nov 11 01:43:26 2010 +0530
@@ -447,7 +447,7 @@
 8 Module 8: Python Language: Advanced (16)
 ==========================================
 
-8.1 LO: getting started with functions (3) [nishanth]
+8.1 LO: getting started with functions (3) [anoop]
 -----------------------------------------------------
 * defining function
 * arguments
--- a/progress.org	Thu Nov 11 01:37:32 2010 +0530
+++ b/progress.org	Thu Nov 11 01:43:26 2010 +0530
@@ -46,7 +46,7 @@
 | 7.5 LO: | sets                                   |     2 | Nishanth | Punch (Done)    |           |
 | 7.6 LO: | Assessment                             |     3 | Amit     |                 |           |
 |---------+----------------------------------------+-------+----------+-----------------+-----------|
-| 8.1 LO: | getting started with functions         |     3 | Nishanth |                 |           |
+| 8.1 LO: | getting started with functions         |     3 | Anoop    | Pending         |           |
 | 8.2 LO: | advanced features of functions         |     3 | Punch    | Anoop (Done)    |           |
 | 8.3 LO: | using python modules                   |     3 | Anoop    | Punch (Done)    |           |
 | 8.4 LO: | writing python scripts                 |     2 | Nishanth |                 |           |