From bc1bdc9be493bada965904f7c6235aa09a082b18 Mon Sep 17 00:00:00 2001
From: Jovina
Date: Tue, 12 Jul 2011 12:14:01 +0530
Subject: Major changes to script & slides of 'advanced features of functions'.

---
 advanced_features_of_functions/slides.tex | 231 +++++++++++++++++++++++-------
 1 file changed, 180 insertions(+), 51 deletions(-)

(limited to 'advanced_features_of_functions/slides.tex')

diff --git a/advanced_features_of_functions/slides.tex b/advanced_features_of_functions/slides.tex
index 9e1d66f..ea41b95 100644
--- a/advanced_features_of_functions/slides.tex
+++ b/advanced_features_of_functions/slides.tex
@@ -1,4 +1,4 @@
-% Created 2010-10-28 Thu 11:37
+% Created 2011-07-12 Tue 11:20
 \documentclass[presentation]{beamer}
 \usepackage[latin1]{inputenc}
 \usepackage[T1]{fontenc}
@@ -8,7 +8,6 @@
 \usepackage{float}
 \usepackage{wrapfig}
 \usepackage{soul}
-\usepackage{t1enc}
 \usepackage{textcomp}
 \usepackage{marvosym}
 \usepackage{wasysym}
@@ -24,14 +23,13 @@ commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
 showstringspaces=false, keywordstyle=\color{blue}\bfseries}
 \providecommand{\alert}[1]{\textbf{#1}}
 
-\title{Advanced features of functions}
+\title{}
 \author{FOSSEE}
 \date{}
 
 \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
 \begin{document}
 
-\maketitle
 
 
 
@@ -41,94 +39,225 @@ showstringspaces=false, keywordstyle=\color{blue}\bfseries}
 
 
 
+
+\begin{frame}
+
+\begin{center}
+\vspace{12pt}
+\textcolor{blue}{\huge Advanced features of Functions}
+\end{center}
+\vspace{18pt}
+\begin{center}
+\vspace{10pt}
+\includegraphics[scale=0.95]{../images/fossee-logo.png}\\
+\vspace{5pt}
+\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ 
+\scriptsize Funded by National Mission on Education through ICT\\
+\scriptsize  MHRD,Govt. of India\\
+\includegraphics[scale=0.30]{../images/iitb-logo.png}\\
+\end{center}
+\end{frame}
 \begin{frame}
-\frametitle{Outline}
-\label{sec-1}
+\frametitle{Objectives}
+\label{sec-2}
+
+ At the end of this tutorial, you will be able to, 
+
 
 \begin{itemize}
-\item Assigning default values to arguments
-\item Calling functions using Keyword arguments
-\item functions in standard library
+\item Assign default values to arguments, when defining functions.
+\item Define and call functions with keyword arguments.
+\item Learn some of the built-in functions available in Python standard 
+    library and the scientific computing libraries.
 \end{itemize}
 \end{frame}
 \begin{frame}
-\frametitle{Question 1}
-\label{sec-2}
+\frametitle{Pre-requisite}
+\label{sec-3}
+
+Spoken tutorial on -
+
+\begin{itemize}
+\item Getting started with functions
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Functions}
+\label{sec-4}
 
-  Redefine the function \texttt{welcome}, by interchanging it's
-  arguments. Place the \texttt{name} argument with it's default value of
-  ``World'' before the \texttt{greet} argument.
+\lstset{language=Python}
+\begin{lstlisting}
+s.strip() #strips on spaces. 
+s.strip('@') #strips the string of '@' symbols.
+
+plot(x, y) #plots x v/s y using default line style. 
+plot(x, y, 'o') #plots x v/s y with circle markers. 
+
+linspace(0,2*pi,100) #returns 100 pts. between 0 & 2pi
+linspace(0,2*pi) #returns 50 pts. between 0 & 2pi
+\end{lstlisting}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 1}
+\label{sec-5}
+
+
+\begin{itemize}
+\item Redefine the function \verb~welcome~, by interchanging it's
+  arguments.
+\vspace{3pt}  
+  Place the \verb~name~ argument with it's default value of
+  ``World'' before the \verb~greet~ argument.
+\end{itemize}
 \end{frame}
 \begin{frame}[fragile]
 \frametitle{Solution 1}
-\label{sec-3}
+\label{sec-6}
 
-\begin{verbatim}
+\lstset{language=Python}
+\begin{lstlisting}
 def welcome(name="World", greet):
     print greet, name
-\end{verbatim}
-  We get an error that reads \texttt{SyntaxError: non-default argument   follows default argument}. When defining a function all the
+\end{lstlisting}
+\vspace{5pt}
+  We get an error that reads, \\ \verb~SyntaxError: non-default argument follows default~ 
+\verb~argument~.
+\vspace{5pt}
+\\ When defining a function all the
   argument with default values should come at the end.
 \end{frame}
 \begin{frame}
-\frametitle{Question 2}
-\label{sec-4}
+\frametitle{Exercise 2}
+\label{sec-7}
+
 
-  See the definition of linspace using \texttt{?} and observe how all the
+\begin{itemize}
+\item See the definition of linspace using \verb~?~ and make a note of all the
   arguments with default values are towards the end.
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Exercise 3}
+\label{sec-8}
+
+
+\begin{itemize}
+\item Redefine the function \verb~welcome~ with a default value of
+  ``Hello'' to the \verb~greet~ argument.\\ 
+  Then, call the function without any arguments.
+\end{itemize}
 \end{frame}
 \begin{frame}[fragile]
-\frametitle{Solution 2}
-\label{sec-5}
+\frametitle{Keyword arguments examples}
+\label{sec-9}
+
+\lstset{language=Python}
+\begin{lstlisting}
+legend(['sin(2y)'], loc = 'center')
+
+plot(y, sin(y), 'g', linewidth = 2)
+
+annotate('local max', xy = (1.5, 1))
 
-\begin{verbatim}
-linspace?
-\end{verbatim}
+pie(science.values(), labels = science.keys())
+\end{lstlisting}
 \end{frame}
-\begin{frame}
-\frametitle{Question 3}
-\label{sec-6}
+\begin{frame}[fragile]
+\frametitle{Built-in functions}
+\label{sec-10}
 
-  Redefine the function \texttt{welcome} with a default value of
-  ``Hello'' to the \texttt{greet} argument. Then, call the function without any
-  arguments. 
+\lstset{language=Python}
+\begin{lstlisting}
+Math functions - abs, sin, ....
+ 
+Plot functions - plot, bar, pie ...
+ 
+Boolean functions - and, or, not ...
+\end{lstlisting}
 \end{frame}
 \begin{frame}[fragile]
-\frametitle{Solution 3}
-\label{sec-7}
+\frametitle{Classes of functions}
+\label{sec-11}
 
-\begin{verbatim}
-def welcome(greet="Hello", name="World"):
-    print greet, name
+\lstset{language=Python}
+\begin{lstlisting}
+- pylab
+  - plot, bar, contour, boxplot, errorbar, log, polar, 
+    quiver, semilog
 
-welcome()
-\end{verbatim}
+- scipy (modules)
+  - fftpack, stats, linalg, ndimage, signal, optimize, 
+    integrate
+\end{lstlisting}
 \end{frame}
 \begin{frame}
 \frametitle{Summary}
-\label{sec-8}
+\label{sec-12}
+
+ In this tutorial, we have learnt to, 
+
+
+\begin{itemize}
+\item Define functions with default arguments.
+\item Call functions using keyword arguments.
+\item Use the range of functions available in the Python standard library 
+   and the Scientific Computing related packages.
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{Evaluation}
+\label{sec-13}
+
 
-  You should now be able to --
+\begin{enumerate}
+\item All arguments of a function cannot have default values.
+ True or False?
+\vspace{3pt} 
+\item The following is a valid function definition. True or False? 
+\lstset{language=Python}
+\begin{lstlisting}
+def seperator(count=40, char, show=False):
+     if show:
+          print char * count
+     return char * count
+\end{lstlisting}
+\vspace{3pt}
+\item When calling a function,
 \begin{itemize}
-\item define functions with default arguments
-\item call functions using keyword arguments
+\item the arguments should always be in the order in which they are defined.
+\item only keyword arguments can be in any order, but should be called
+     at the beginning.
+\item only keyword arguments can be in any order, but should be called at the end.
 \end{itemize}
+\end{enumerate}
+\end{frame}
+\begin{frame}
+\frametitle{Solutions}
+\label{sec-14}
+
+
+\begin{enumerate}
+\item False
+\vspace{12pt}
+\item False
+\vspace{12pt}
+\item Only keyword arguments can be in any order, 
+   but should be called at the end.
+\end{enumerate}
 \end{frame}
 \begin{frame}
-\frametitle{Thank you!}
-\label{sec-9}
 
   \begin{block}{}
   \begin{center}
-  This spoken tutorial has been produced by the
-  \textcolor{blue}{FOSSEE} team, which is funded by the 
+  \textcolor{blue}{\Large THANK YOU!} 
   \end{center}
+  \end{block}
+\begin{block}{}
   \begin{center}
-    \textcolor{blue}{National Mission on Education through \\
-      Information \& Communication Technology \\ 
-      MHRD, Govt. of India}.
+    For more Information, visit our website\\
+    \url{http://fossee.in/}
   \end{center}  
   \end{block}
 \end{frame}
 
-\end{document}
+\end{document}
\ No newline at end of file
-- 
cgit 

