day2/tda.tex
changeset 112 24992ab48f2b
parent 111 ae070c133120
child 114 346f3a7e5da5
child 118 c7f85ba59af3
--- a/day2/tda.tex	Wed Oct 14 11:02:18 2009 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Tutorial slides on Python.
-%
-% Author: Prabhu Ramachandran <prabhu at aero.iitb.ac.in>
-% Copyright (c) 2005-2009, Prabhu Ramachandran
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\documentclass[compress,14pt]{beamer}
-% \documentclass[handout]{beamer}
-% \usepackage{pgfpages}
-% \pgfpagesuselayout{4 on 1}[a4paper,border, shrink=5mm,landscape]
-\usepackage{tikz}
-\newcommand{\hyperlinkmovie}{}
-%\usepackage{movie15}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Note that in presentation mode 
-% \paperwidth  364.19536pt
-% \paperheight 273.14662pt
-% h/w = 0.888
-
-
-\mode<presentation>
-{
-  \usetheme{Warsaw}
-  %\usetheme{Boadilla}
-  %\usetheme{default}
-  \useoutertheme{split}
-  \setbeamercovered{transparent}
-}
-
-% To remove navigation symbols
-\setbeamertemplate{navigation symbols}{}
-
-\usepackage{amsmath}
-\usepackage[english]{babel}
-\usepackage[latin1]{inputenc}
-\usepackage{times}
-\usepackage[T1]{fontenc}
-
-% Taken from Fernando's slides.
-\usepackage{ae,aecompl}
-\usepackage{mathpazo,courier,euler}
-\usepackage[scaled=.95]{helvet}
-\usepackage{pgf}
-
-\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}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% My Macros
-\setbeamercolor{postit}{bg=yellow,fg=black}
-\setbeamercolor{emphbar}{bg=blue!20, fg=black}
-\newcommand{\emphbar}[1]
-{\begin{beamercolorbox}[rounded=true]{emphbar} 
-      {#1}
- \end{beamercolorbox}
-}
-%{\centerline{\fcolorbox{gray!50} {blue!10}{
-%\begin{minipage}{0.9\linewidth}
-%    {#1} 
-%\end{minipage}
-%    }}}
-
-\newcommand{\myemph}[1]{\structure{\emph{#1}}}
-\newcommand{\PythonCode}[1]{\lstinline{#1}}
-
-\newcommand{\tvtk}{\texttt{tvtk}}
-\newcommand{\mlab}{\texttt{mlab}}
-
-\newcounter{time}
-\setcounter{time}{0}
-\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\vspace*{0.1in}\tiny \thetime\ m}}
-
-\newcommand\BackgroundPicture[1]{%
-  \setbeamertemplate{background}{%
-      \parbox[c][\paperheight]{\paperwidth}{%
-      \vfill \hfill
- \hfill \vfill
-}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Configuring the theme
-%\setbeamercolor{normal text}{fg=white}
-%\setbeamercolor{background canvas}{bg=black}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Title page
-\title[]{Test Driven Approach}
-
-\author[FOSSEE Team] {FOSSEE}
-
-\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
-\date[] {11, October 2009}
-\date[] % (optional)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%\pgfdeclareimage[height=0.75cm]{iitblogo}{iitblogo}
-%\logo{\pgfuseimage{iitblogo}}
-
-\AtBeginSection[]
-{
-  \begin{frame}<beamer>
-    \frametitle{Outline}
-      \Large
-    \tableofcontents[currentsection,currentsubsection]
-  \end{frame}
-}
-
-%% Delete this, if you do not want the table of contents to pop up at
-%% the beginning of each subsection:
-\AtBeginSubsection[]
-{
-  \begin{frame}<beamer>
-    \frametitle{Outline}
-    \tableofcontents[currentsection,currentsubsection]
-  \end{frame}
-}
-
-\AtBeginSection[]
-{
-  \begin{frame}<beamer>
-    \frametitle{Outline}
-    \tableofcontents[currentsection,currentsubsection]
-  \end{frame}
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% DOCUMENT STARTS
-\begin{document}
-
-\begin{frame}
-  \maketitle
-\end{frame}
-
-\section{Test Driven Approach}
-
-\begin{frame}
-    \frametitle{Testing code with nosetests}
-   
-    \begin{itemize}
-        \item Writing tests is really simple!
-
-        \item Using nose.
-
-        \item Example!
-    \end{itemize}
-\end{frame}
-
-\begin{frame}
-    \frametitle{Need of Testing!}
-   
-    \begin{itemize}
-        \item Quality
-
-        \item Regression
-
-        \item Documentation
-    \end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Nosetest}
-  \begin{lstlisting}
-def gcd(a, b):
-    """Returns gcd of a and b, 
-     handles only positive numbers."""
-    if a%b == 0: return b
-    return gcd(b, a%b)
-def lcm(a, b):
-    return a*b/gcd(a, b)
-
-if __name__ == '__main__':
-    import nose
-    nose.main()
-  \end{lstlisting}
-\inctime{10}
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Example}
-    \begin{block}{Problem Statement:}
-      Write a function to check whether a given input
-      string is a palindrome.
-    \end{block}
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Function: palindrome.py}
-\begin{lstlisting}    
-def is_palindrome(input_str):
-  return input_str == input_str[::-1]
-\end{lstlisting}    
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Test for the palindrome: palindrome.py}
-\begin{lstlisting}    
-from plaindrome import is_palindrome
-def test_function_normal_words():
-  input = "noon"
-  assert is_palindrome(input) == True
-\end{lstlisting}    
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Running the tests.}
-\begin{lstlisting}    
-$ nosetests test.py 
-.
-----------------------------------------------
-Ran 1 test in 0.001s
-
-OK
-\end{lstlisting}    
-\end{frame}
-
-\begin{frame}[fragile]
-    \frametitle{Exercise: Including new tests.}
-\begin{lstlisting}    
-def test_function_ignore_cases_words():
-  input = "Noon"
-  assert is_palindrome(input) == True
-\end{lstlisting}
-     \vspace*{0.25in}
-     Check\\
-     \PythonCode{$ nosetests test.py} \\
-     \begin{block}{Task}
-     Tweak the code to pass this test.
-     \end{block}
-\end{frame}
-
-%\begin{frame}[fragile]
-%    \frametitle{Lets write some test!}
-%\begin{lstlisting}    
-%#for form of equation y=mx+c
-%#given m and c for two equation,
-%#finding the intersection point.
-%def intersect(m1,c1,m2,c2):
-%    x = (c2-c1)/(m1-m2)
-%    y = m1*x+c1
-%    return (x,y)
-%\end{lstlisting}
-%
-%Create a simple test for this
-%
-%function which will make it fail.
-%
-%\inctime{15} 
-%\end{frame}
-%
-
-\begin{frame}[fragile]
-    \frametitle{Exercise}
-    Based on Euclid's algorithm:
-        $gcd(a,b)=gcd(b,b\%a)$\\
-    gcd function can be written as:
-    \begin{lstlisting}
-    def gcd(a, b):
-      if a%b == 0: return b
-      return gcd(b, a%b)
-    \end{lstlisting}
-    \vspace*{-0.15in}
-    \begin{block}{Task}
-      \begin{itemize}
-      \item Write at least 
-        two tests for above mentioned function.
-      \item Write a non recursive implementation
-      of gcd(), and test it using already 
-      written tests.
-      \end{itemize}
-    \end{block}
-    
-\inctime{15} 
-\end{frame}
-
-\begin{frame}{In this session we have covered:}
-  \begin{itemize}
-    \item Need for visualization.
-    \item Tools available.
-    \item How to follow Test Driven Approach.
-  \end{itemize}
-\end{frame}
-\begin{frame}
-    \begin{center}
-        \Huge    
-        Thank you!
-    \end{center}
-\end{frame}
-
-\end{document}