day1/Session-4.tex
author Santosh G. Vattam <vattam.santosh@gmail.com>
Fri, 09 Oct 2009 12:09:08 +0530
changeset 79 04b620d3f172
parent 65 a525e580bc43
child 85 8ca53181bee6
permissions -rwxr-xr-x
Session 3 slides completed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
% Tutorial slides on Python.
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
% Author: Prabhu Ramachandran <prabhu at aero.iitb.ac.in>
46
63704b5650f1 Changed the copyright and Institute for all the sessions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 45
diff changeset
     5
% Copyright (c) 2005-2009, Prabhu Ramachandran
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
\documentclass[14pt,compress]{beamer}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
%\documentclass[draft]{beamer}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
%\documentclass[compress,handout]{beamer}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
%\usepackage{pgfpages} 
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
% Modified from: generic-ornate-15min-45min.de.tex
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    15
\mode<presentation>
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    16
{
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
  \usetheme{Warsaw}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
  \useoutertheme{split}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
  \setbeamercovered{transparent}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    20
}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
\usepackage[english]{babel}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
\usepackage[latin1]{inputenc}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
%\usepackage{times}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
\usepackage[T1]{fontenc}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
% Taken from Fernando's slides.
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
\usepackage{ae,aecompl}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
\usepackage{mathpazo,courier,euler}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
\usepackage[scaled=.95]{helvet}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
\definecolor{darkgreen}{rgb}{0,0.5,0}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
\usepackage{listings}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    35
\lstset{language=Python,
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
    36
    basicstyle=\ttfamily\bfseries,
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    37
    commentstyle=\color{red}\itshape,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
  stringstyle=\color{darkgreen},
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
  showstringspaces=false,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
  keywordstyle=\color{blue}\bfseries}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    41
63
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
    42
\usepackage{pgf}
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
    43
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    44
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    45
% Macros
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    46
\setbeamercolor{emphbar}{bg=blue!20, fg=black}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    47
\newcommand{\emphbar}[1]
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    48
{\begin{beamercolorbox}[rounded=true]{emphbar} 
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    49
      {#1}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    50
 \end{beamercolorbox}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    51
}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    52
\newcounter{time}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    53
\setcounter{time}{0}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    54
\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    55
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
\newcommand{\typ}[1]{\texttt{#1}}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    57
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    58
\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    59
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    60
%%% This is from Fernando's setup.
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    61
% \usepackage{color}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    62
% \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    63
% % Use and configure listings package for nicely formatted code
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    64
% \usepackage{listings}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    65
% \lstset{
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    66
%    language=Python,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    67
%    basicstyle=\small\ttfamily,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    68
%    commentstyle=\ttfamily\color{blue},
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    69
%    stringstyle=\ttfamily\color{orange},
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    70
%    showstringspaces=false,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    71
%    breaklines=true,
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    72
%    postbreak = \space\dots
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    73
% }
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    74
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    75
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    76
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    77
% Title page
46
63704b5650f1 Changed the copyright and Institute for all the sessions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 45
diff changeset
    78
\title[Basic Python]{Python:\\Advanced Python data structures, Functions and Debugging}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    79
46
63704b5650f1 Changed the copyright and Institute for all the sessions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 45
diff changeset
    80
\author[FOSSEE Team] {Asokan Pichai\\Prabhu Ramachandran}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    81
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    82
\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay}
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
    83
\date[] {10, October 2009\\Day 1, Session 4}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    84
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    85
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    86
%\pgfdeclareimage[height=0.75cm]{iitmlogo}{iitmlogo}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    87
%\logo{\pgfuseimage{iitmlogo}}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    88
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    89
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    90
%% Delete this, if you do not want the table of contents to pop up at
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    91
%% the beginning of each subsection:
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    92
\AtBeginSubsection[]
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    93
{
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    94
  \begin{frame}<beamer>
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    95
    \frametitle{Outline}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    96
    \tableofcontents[currentsection,currentsubsection]
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    97
  \end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    98
}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    99
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   100
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   101
% If you wish to uncover everything in a step-wise fashion, uncomment
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   102
% the following command: 
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   103
%\beamerdefaultoverlayspecification{<+->}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   104
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   105
%\includeonlyframes{current,current1,current2,current3,current4,current5,current6}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   106
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   107
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   108
% DOCUMENT STARTS
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   109
\begin{document}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   110
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   111
\begin{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   112
  \titlepage
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   113
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   114
54
c3fe152b3539 Changed section titles for Session 2 and 4 slides.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 50
diff changeset
   115
\section{Advanced Data structures, Functions and Debugging}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   116
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   117
\subsection{Dictionary}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   118
\begin{frame}{Dictionary}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   119
  \begin{itemize}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   120
    \item lists and tuples index: 0 \ldots n
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   121
    \item dictionaries index using strings
54
c3fe152b3539 Changed section titles for Session 2 and 4 slides.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 50
diff changeset
   122
    \item \typ{ d = \{ ``Hitchhiker's guide'' : 42, ``Terminator'' : ``I'll be back''\}}
c3fe152b3539 Changed section titles for Session 2 and 4 slides.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 50
diff changeset
   123
    \item \typ{d[``Terminator'']\\``I'll be back''}
c3fe152b3539 Changed section titles for Session 2 and 4 slides.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 50
diff changeset
   124
    \item aka associative array, key-value pair, hashmap, hashtable \ldots    
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   125
    \item what can be keys?
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   126
  \end{itemize}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   127
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   128
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   129
\begin{frame}{Dictionary \ldots }
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   130
  \begin{itemize}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   131
    \item \alert{Unordered}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   132
      \begin{block}{Standard usage}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   133
        for key in dict:\\
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   134
            <use> dict[key] \# => value
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   135
      \end{block}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   136
    \item \typ{d.keys()} returns a list
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   137
    \item can we have duplicate keys?
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   138
  \end{itemize}
45
3b8be02d94d4 Corrected inctime for Session 4 of Day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 29
diff changeset
   139
  \inctime{5}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   140
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   141
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   142
\begin{frame} {Problem Set 6.1}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   143
  \begin{description}
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   144
\item[6.1.1] You are given date strings of the form ``29, Jul 2009'', or ``4 January 2008''. In other words a number a string and another number, with a comma sometimes separating the items.Write a function that takes such a string and returns a tuple (yyyy, mm, dd) where all three elements are ints.
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   145
    \item[6.1.2] Count word frequencies in a file.
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   146
    \item[6.1.3] Find the most used Python keywords in your Python code (import keyword).
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   147
\end{description}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   148
45
3b8be02d94d4 Corrected inctime for Session 4 of Day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 29
diff changeset
   149
\inctime{10}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   150
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   151
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   152
\subsection{Set}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   153
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   154
  \frametitle{Set}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   155
    \begin{itemize}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   156
      \item Simplest container, mutable
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   157
      \item No ordering, no duplicates
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   158
      \item usual suspects: union, intersection, subset \ldots
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   159
      \item >, >=, <, <=, in, \ldots
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   160
    \end{itemize}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   161
    \begin{lstlisting}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   162
>>> f10 = set([1,2,3,5,8])
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   163
>>> p10 = set([2,3,5,7])
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   164
>>> f10|p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   165
set([1, 2, 3, 5, 7, 8])
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   166
>>> f10&p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   167
set([2, 3, 5])
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   168
>>> f10-p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   169
set([8, 1])
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   170
\end{lstlisting}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   171
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   172
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   173
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   174
  \frametitle{Set}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   175
    \begin{lstlisting}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   176
>>> p10-f10, f10^p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   177
set([7]), set([1, 7, 8])
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   178
>>> set([2,3]) < p10
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   179
True
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   180
>>> set([2,3]) <= p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   181
True
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   182
>>> 2 in p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   183
True
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   184
>>> 4 in p10
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   185
False
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   186
>>> len(f10)
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   187
5
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   188
\end{lstlisting}
45
3b8be02d94d4 Corrected inctime for Session 4 of Day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 29
diff changeset
   189
\inctime{5}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   190
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   191
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   192
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   193
\begin{frame}
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   194
  \frametitle{Problem set 6.2}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   195
  \begin{description}
61
fc495fd7e84e Added tda.tex for day2 and compiled handout for day1.
Shantanu <shantanu@fossee.in>
parents: 59
diff changeset
   196
    \item[6.2.1] Given a dictionary of the names of students and their marks, identify how many duplicate marks are there? and what are these?
fc495fd7e84e Added tda.tex for day2 and compiled handout for day1.
Shantanu <shantanu@fossee.in>
parents: 59
diff changeset
   197
    \item[6.2.2] Given a string of the form ``4-7, 9, 12, 15'' find the numbers missing in this list for a given range.
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   198
\end{description}
45
3b8be02d94d4 Corrected inctime for Session 4 of Day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 29
diff changeset
   199
\inctime{10}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   200
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   201
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   202
\subsection{Functions Reloaded!}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   203
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   204
    \frametitle{Advanced functions}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   205
    \begin{itemize}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   206
        \item default args
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   207
        \item var args
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   208
        \item keyword args
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   209
        \item scope
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   210
        \item \typ{global}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   211
      \end{itemize}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   212
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   213
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   214
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   215
  \frametitle{Functions: default arguments}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   216
  \small
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   217
  \begin{lstlisting}
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   218
def ask_ok(prompt, complaint='Yes or no!'):
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   219
    while True:
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   220
        ok = raw_input(prompt)
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   221
        if ok in ('y', 'ye', 'yes'): 
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   222
            return True
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   223
        if ok in ('n', 'no', 'nop',
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   224
                  'nope'): 
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   225
            return False
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   226
        print complaint
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   227
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   228
ask_ok('?')
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   229
ask_ok('?', '[Y/N]')
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   230
  \end{lstlisting}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   231
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   232
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   233
\begin{frame}[fragile]
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   234
  \frametitle{Functions: keyword arguments}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   235
  \small
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   236
  \begin{lstlisting}
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   237
def ask_ok(prompt, complaint='Yes or no!'):
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   238
    while True:
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   239
        ok = raw_input(prompt)
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   240
        if ok in ('y', 'ye', 'yes'): 
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   241
            return True
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   242
        if ok in ('n', 'no', 'nop',
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   243
                  'nope'): 
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   244
            return False
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   245
        print complaint
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   246
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   247
ask_ok(prompt='?')
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   248
ask_ok(prompt='?', complaint='[y/n]')
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   249
ask_ok(complaint='[y/n]', prompt='?')
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   250
\end{lstlisting}
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   251
\inctime{15} 
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   252
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   253
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   254
\subsection{Functional programming}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   255
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   256
    \frametitle{Functional programming}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   257
What is the basic idea?\\
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   258
Why is it interesting?\\
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   259
\typ{map, reduce, filter}\\
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   260
list comprehension\\
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   261
generators
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   262
\end{frame}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   263
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   264
\begin{frame}[fragile]
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   265
    \frametitle{List Comprehensions}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   266
Lets say we want to squares of all the numbers from 1 to 100
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   267
    \begin{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   268
squares = []
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   269
for i in range(1, 100):
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   270
    squares.append(i * i)
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   271
    \end{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   272
    \begin{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   273
# list comprehension
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   274
squares = [i*i for i in range(1, 100)]
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   275
     \end{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   276
Which is more readable?
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   277
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   278
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   279
\begin{frame}[fragile]
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   280
    \frametitle{List Comprehensions}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   281
What if you had a more complex function?
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   282
Lets say we want squares of numbers from 1 to 100 ending in 1, 2, 5, 7 only
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   283
    \begin{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   284
squares = []
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   285
for i in range(1, 100):
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   286
    if i % 10 in [1, 2, 5, 7]:
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   287
        squares.append(i * i)
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   288
    \end{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   289
    \begin{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   290
# list comprehension
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   291
squares = [i*i for i in range(1, 100)
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   292
           if i % 10 in [1, 2, 5, 7]]
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   293
     \end{lstlisting}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   294
Which is more readable?
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   295
\inctime{15}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   296
\end{frame}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   297
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   298
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   299
\subsection{Debugging}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   300
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   301
 \frametitle{Errors}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   302
 \begin{lstlisting}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   303
>>> while True print 'Hello world'
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   304
 \end{lstlisting}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   305
\pause
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   306
  \begin{lstlisting}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   307
  File "<stdin>", line 1, in ?
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   308
    while True print 'Hello world'
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   309
                   ^
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   310
SyntaxError: invalid syntax
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   311
\end{lstlisting}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   312
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   313
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   314
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   315
 \frametitle{Exceptions}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   316
 \begin{lstlisting}
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   317
>>> print spam
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   318
\end{lstlisting}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   319
\pause
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   320
\begin{lstlisting}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   321
Traceback (most recent call last):
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   322
  File "<stdin>", line 1, in <module>
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   323
NameError: name 'spam' is not defined
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   324
\end{lstlisting}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   325
\end{frame}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   326
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   327
\begin{frame}[fragile]
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   328
 \frametitle{Exceptions}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   329
 \begin{lstlisting}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   330
>>> 1 / 0
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   331
\end{lstlisting}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   332
\pause
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   333
\begin{lstlisting}
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   334
Traceback (most recent call last):
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   335
  File "<stdin>", line 1, in <module>
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   336
ZeroDivisionError: integer division 
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   337
or modulo by zero
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   338
\end{lstlisting}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   339
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   340
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   341
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   342
    \frametitle{Debugging effectively}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   343
    \begin{itemize}
63
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   344
        \item \kwrd{print} based strategy
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   345
        \item Process:
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   346
    \end{itemize}
63
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   347
\pgfimage[interpolate=true,width=5cm,height=5cm]{DebugginDiagram.png}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   348
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   349
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   350
\begin{frame}[fragile]
59
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   351
    \frametitle{Debugging effectively}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   352
    \begin{itemize}
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   353
      \item Using \typ{\%debug} and \typ{\%pdb} in IPython
9aac0f128482 Removed slides on pdb from session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 54
diff changeset
   354
    \end{itemize}
63
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   355
\end{frame}
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   356
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   357
\begin{frame}[fragile]
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   358
\frametitle{Debugging in IPython}
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   359
\small
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   360
\begin{lstlisting}
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   361
In [1]: import mymodule
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   362
In [2]: mymodule.test()
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   363
---------------------------------------------
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   364
NameError   Traceback (most recent call last)
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   365
/media/python/iitb/workshops/day1/<ipython console> in <module>()
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   366
/media/python/iitb/workshops/day1/mymodule.py in test()
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   367
      1 def test():
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   368
----> 2     print spam
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   369
NameError: global name 'spam' is not defined
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   370
In [3]: %debug
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   371
> /media/python/iitb/workshops/day1/mymodule.py(2)test()
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   372
      0     print spam
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   373
ipdb> 
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   374
\end{lstlisting}
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   375
\inctime{15} 
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   376
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   377
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   378
\begin{frame}[fragile]
29
8121d3ea15b5 Completed slides for session 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 5
diff changeset
   379
\frametitle{Debugging: Exercise}
50
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   380
\inctime{10}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   381
\end{frame}
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   382
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   383
\begin{frame}
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   384
  \frametitle{What did we learn?}
50
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   385
  \begin{itemize}
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   386
    \item Creating and using Dictionaries
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   387
    \item Creating and using Sets
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   388
    \item Advances Functions: default arguments, keyword arguments
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   389
    \item Functional Programming, list comprehensions
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   390
    \item Errors and Exceptions in Python
63
f5eac04a00fe Added debugging process diagram to Session 4 of day 1.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 59
diff changeset
   391
    \item Debugging: \%pdb and \%debug in IPython
50
aabaf8ec0a08 Added What did we learn at the end of each session.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 49
diff changeset
   392
  \end{itemize}
49
2adb90f9e287 Added what did we learn to all slides and reworked on Session 2 and 4.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 46
diff changeset
   393
\end{frame}
5
838cedef5e9d Added 4 tex slides for 4 sessions of Day 1 of the workshop.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   394
\end{document}