# HG changeset patch # User Madhusudan.C.S # Date 1255008549 -19800 # Node ID f5eac04a00feca38817f32b9f8a415a310fcfd4d # Parent edfe20d6733c5f633ab041b86480842dd1cb5870 Added debugging process diagram to Session 4 of day 1. diff -r edfe20d6733c -r f5eac04a00fe day1/DebugginDiagram.png Binary file day1/DebugginDiagram.png has changed diff -r edfe20d6733c -r f5eac04a00fe day1/Session-1.snm diff -r edfe20d6733c -r f5eac04a00fe day1/Session-1.vrb --- a/day1/Session-1.vrb Thu Oct 08 15:42:43 2009 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -\frametitle {Basic looping} - \begin{lstlisting} -# Fibonacci series: -# the sum of two elements -# defines the next -a, b = 0, 1 -while b < 10: - print b, - a, b = b, a + b - -\end{lstlisting} -\typ{1 1 2 3 5 8}\\ -\alert{Recall it is easy to write infinite loops with \kwrd{while}} - \inctime{20} diff -r edfe20d6733c -r f5eac04a00fe day1/Session-2.snm diff -r edfe20d6733c -r f5eac04a00fe day1/Session-2.vrb --- a/day1/Session-2.vrb Thu Oct 08 15:42:43 2009 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -\frametitle {\typ{for}: the list companion} - \begin{lstlisting} -In [89]: for p, ch in enumerate( a ): - ....: print p, ch - ....: - ....: -0 a -1 b -2 c - \end{lstlisting} -Try: \typ{print enumerate(a)} -\inctime{10} diff -r edfe20d6733c -r f5eac04a00fe day1/Session-3.snm diff -r edfe20d6733c -r f5eac04a00fe day1/Session-4.snm diff -r edfe20d6733c -r f5eac04a00fe day1/Session-4.tex --- a/day1/Session-4.tex Thu Oct 08 15:42:43 2009 +0530 +++ b/day1/Session-4.tex Thu Oct 08 18:59:09 2009 +0530 @@ -39,6 +39,8 @@ showstringspaces=false, keywordstyle=\color{blue}\bfseries} +\usepackage{pgf} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Macros \setbeamercolor{emphbar}{bg=blue!20, fg=black} @@ -339,10 +341,10 @@ \begin{frame}[fragile] \frametitle{Debugging effectively} \begin{itemize} - \item \kwrd{print} based strategy - \item Process: Hypothesis, test, refine, rinse-repeat + \item \kwrd{print} based strategy + \item Process: \end{itemize} -\inctime{15} +\pgfimage[interpolate=true,width=5cm,height=5cm]{DebugginDiagram.png} \end{frame} \begin{frame}[fragile] @@ -350,7 +352,27 @@ \begin{itemize} \item Using \typ{\%debug} and \typ{\%pdb} in IPython \end{itemize} -\inctime{15} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Debugging in IPython} +\small +\begin{lstlisting} +In [1]: import mymodule +In [2]: mymodule.test() +--------------------------------------------- +NameError Traceback (most recent call last) +/media/python/iitb/workshops/day1/ in () +/media/python/iitb/workshops/day1/mymodule.py in test() + 1 def test(): +----> 2 print spam +NameError: global name 'spam' is not defined +In [3]: %debug +> /media/python/iitb/workshops/day1/mymodule.py(2)test() + 0 print spam +ipdb> +\end{lstlisting} +\inctime{15} \end{frame} \begin{frame}[fragile] @@ -366,7 +388,7 @@ \item Advances Functions: default arguments, keyword arguments \item Functional Programming, list comprehensions \item Errors and Exceptions in Python - \item Debugging: How to use pdb, \%pdb and \%debug in IPython + \item Debugging: \%pdb and \%debug in IPython \end{itemize} \end{frame} \end{document} diff -r edfe20d6733c -r f5eac04a00fe day1/Session-4.vrb --- a/day1/Session-4.vrb Thu Oct 08 15:42:43 2009 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -\frametitle {Debugging: Exercise} -\inctime{10}