diff options
author | Jovina | 2012-08-27 17:49:15 +0530 |
---|---|---|
committer | Jovina | 2012-08-27 17:49:15 +0530 |
commit | 0b3a72638f909ff58835e3435d4a5d33c4b8f54a (patch) | |
tree | 995bda0599ce129ab920451345cc938cd67a92ff /TDD | |
parent | 60359fe58c5584d66e27be1e0e435bb0a0c1e2ca (diff) | |
parent | 6f281af9bde99a7ff6260593fc5faeb97194ac58 (diff) | |
download | sdes-stscripts-0b3a72638f909ff58835e3435d4a5d33c4b8f54a.tar.gz sdes-stscripts-0b3a72638f909ff58835e3435d4a5d33c4b8f54a.tar.bz2 sdes-stscripts-0b3a72638f909ff58835e3435d4a5d33c4b8f54a.zip |
Merge branch 'master' of http://github.com/FOSSEE/sdes-stscripts
Diffstat (limited to 'TDD')
-rw-r--r-- | TDD/getting_started_with_tdd/tdd1.tex | 273 | ||||
-rwxr-xr-x | TDD/getting_started_with_tdd/tdd1_script.rst | 280 |
2 files changed, 355 insertions, 198 deletions
diff --git a/TDD/getting_started_with_tdd/tdd1.tex b/TDD/getting_started_with_tdd/tdd1.tex index 042c5c4..8b499a6 100644 --- a/TDD/getting_started_with_tdd/tdd1.tex +++ b/TDD/getting_started_with_tdd/tdd1.tex @@ -1,4 +1,4 @@ -\documentclass[12pt,presentation]{beamer} +\documentclass[17pt,compress]{beamer} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{fixltx2e} @@ -13,63 +13,98 @@ \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{green}, -showstringspaces=false, keywordstyle=\color{blue}\bfseries} -\providecommand{\alert}[1]{\textbf{#1}} - -\title{SEES: Test Driven Development} -\author{FOSSEE} - -\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - +\usepackage{beamerthemesplit} +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} + \setbeamertemplate{navigation symbols}{} +} +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage[scaled=.95]{helvet} +\usepackage[english]{babel} +%\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +% change the alerted colour to LimeGreen +\definecolor{LimeGreen}{RGB}{50,205,50} +\setbeamercolor{structure}{fg=LimeGreen} +\author[FOSSEE]{} +\institute[IIT Bombay]{} +\date[]{} +% \setbeamercovered{transparent} + +% theme split + +\newenvironment{colorverbatim}[1][]% +{% +\color{blue} +\verbatim +}% +{% +\endverbatim +}% +\usepackage{verbatim} +\usepackage{mathpazo,courier,euler} +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + showstringspaces=false, + keywordstyle=\color{black}\bfseries} +\newcommand{\typ}[1]{\lstinline{#1}} +%\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} } +% logo +\logo{\includegraphics[height=1.30 cm]{../images/3t-logo.pdf}} +\logo{\includegraphics[height=1.30 cm]{../images/fossee-logo.pdf} + +\hspace{7.5cm} +\includegraphics[scale=0.99]{../images/fossee-logo.pdf}\\ +\hspace{281pt} +\includegraphics[scale=0.80]{../images/3t-logo.pdf}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS \begin{document} +\sffamily \bfseries +\title +[Getting started with TDD] +{Getting started with TDD} +\author +[FOSSEE] +{\small Talk to a Teacher\\{\color{blue}\url{http://spoken-tutorial.org}} +\\\vspace{0.25cm}National Mission on Education + through ICT\\{\color{blue}\url{ http://sakshat.ac.in}} \\ [1.65cm] + Contributed by FOSSEE Team \\IIT Bombay \\[0.3cm] +} + +% slide 1 \begin{frame} -\begin{center} -\vspace{12pt} -\textcolor{blue}{\huge Test Driven Development \\Part I} -\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} + \titlepage \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Introduction} + \begin{frame} \frametitle{Objectives} At the end of this tutorial, you will be able to, \begin{itemize} - \item Know what is TDD. - \item Understand the use of test cases. - \item Write simple tests for a function. + \item Understand basics of Test Driven Development + \item Understand the use of test cases + \item Write simple tests for a function \end{itemize} \end{frame} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Pre-requisite} \label{sec-3} -Spoken tutorial on - +Spoken tutorial on, \begin{itemize} -\item Getting started with functions. +\item Getting started with functions \end{itemize} \end{frame} @@ -77,38 +112,41 @@ Spoken tutorial on - \begin{frame} \frametitle{What is TDD?} - The basic steps of TDD are roughly as follows -- - \begin{enumerate} + The basic steps of TDD are, + \begin{itemize} \item Decide upon the feature to implement and the methodology of - testing it. - \item Write the tests for the feature decided upon. - \item Just write enough code, so that the test can be run, but it fails. - \item Improve the code, to just pass the test and at the same time - passing all previous tests. - \item Run the tests to see, that all of them run successfully. - \item Refactor the code you've just written -- optimize the algorithm, - remove duplication, add documentation, etc. - \item Run the tests again, to see that all the tests still pass. - - \end{enumerate} + testing it + \item Write the tests for the feature decided upon + \item Just write enough code, so that the test can be run, but it fails + \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{First Test} + +\begin{frame} + \frametitle{What is TDD?..} + \begin{itemize} + \item Modify the code to pass all current tests \& previous tests + \item Run the tests to see if all tests pass + \item Refactor the code -- optimize the algorithm, + remove duplication, add documentation, etc. + \item Run the tests again + \end{itemize} +\end{frame} + \begin{frame}[fragile] \frametitle{First Test -- fibonacci} \begin{itemize} - \item simple program -- Returns nth fibonacci number \item What are our code units? \begin{itemize} \item Only one function \texttt{fibonacci} \item Takes one number as argument - \item Returns one number, which is the nth number of fibonacci series. + \item Returns, nth number of fibonacci series \end{itemize} \begin{lstlisting} c = fibonacci(3) \end{lstlisting} - \item c will contain 3rd number of fibonacci series,counting from 0. + \item c contains 3rd digit of the series, counting from 0. \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -116,18 +154,20 @@ c = fibonacci(3) \begin{frame}[fragile] \frametitle{Test Cases} \begin{itemize} - \item Important to have test cases and expected outputs even before - writing the first test! + \item Important to have test cases and expected outputs before + writing tests \item $n=3$, $fibonacci=2$ \item $n=4$, $fibonacci=3$ \item Tests are just a series of assertions - \item True or False, depending on expected and actual behavior + \item True or False, depending on the behaviour \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile] \frametitle{Test Cases -- Code} +\small +{ \begin{lstlisting} tc1 = fibonacci(3) if tc1 != 2: @@ -143,6 +183,7 @@ if tc2 != 3: print "All tests passed!" \end{lstlisting} +} \begin{itemize} \item The function \texttt{fibonacci} doesn't even exist! \end{itemize} @@ -164,6 +205,8 @@ def fibonacci(a): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile] \frametitle{\texttt{fibonacci.py}} +\tiny +{ \begin{lstlisting} def fibonacci(n): pass @@ -181,10 +224,13 @@ if __name__ == '__main__': exit(1) print "All tests passed!" \end{lstlisting} +} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile] \frametitle{First run} +\small +{ \begin{lstlisting} $ python fibonacci.py Traceback (most recent call last): @@ -194,19 +240,21 @@ Traceback (most recent call last): TypeError: %d format: a number is required, not NoneType \end{lstlisting} %$ - +} \begin{itemize} - \item We have our code unit stub, and a failing test. - \item The next step is to write code, so that the test just passes. + \item We have our code unit stub, and a failing test + \item The next step is to write code, so that the test just passes \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile] - \frametitle{Euclidean Algorithm} + \frametitle{Fibonacci} \begin{itemize} \item Modify the \texttt{fibonacci} stub function \item Then, run the script to see if the tests pass. \end{itemize} +\small +{ \begin{lstlisting} def fibonacci(n): a, b = 0, 1 @@ -216,20 +264,17 @@ def fibonacci(n): \end{lstlisting} \begin{lstlisting} -$ python fibonacci.py -All tests passed! \end{lstlisting} %$ - \begin{itemize} - \item \alert{Success!} - \end{itemize} +} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile] - \frametitle{Euclidean Algorithm -- Recursive} + \frametitle{Fibonacci -- Recursive} \begin{itemize} \item Final improvement -- make \texttt{fibonacci} recursive - \item More readable and easier to understand + \tiny +{ \begin{lstlisting} def fibonacci(n): if n == 0: @@ -240,6 +285,9 @@ def fibonacci(n): return fibonacci(n-1) + fibonacci(n-2) \end{lstlisting} +} + \small + \item More readable and easier to understand \item Check that the tests pass again \end{itemize} \end{frame} @@ -250,12 +298,14 @@ def fibonacci(n): \frametitle{Summary} \label{sec-8} - In this tutorial, we have learnt to, +In this tutorial, we learnt, \begin{itemize} -\item Understand the basic steps involved in Test driven development. -\item Design a TDD approach for a given \texttt{fibonacci} function. +\item The basic steps involved in Test driven development +\item How to use test cases +\item How to write simple tests for a function + \end{itemize} \end{frame} @@ -267,17 +317,16 @@ def fibonacci(n): \begin{enumerate} -\item Design a TDD approach for a \texttt{factorial} function. +\item Design a TDD approach for a \texttt{factorial} function \vspace{8pt} -\item Design a TDD approach for an \texttt{armstrong} function. +\item Design a TDD approach for an \texttt{armstrong} function \end{enumerate} \end{frame} \begin{frame}[fragile] -\frametitle{Solutions} +\frametitle{Factorial} \label{sec-10} -\begin{enumerate} -\vspace{15pt} +\begin{itemize} \item {\tiny \begin{lstlisting} @@ -300,21 +349,18 @@ if __name__ == '__main__': print 'All tests passed...' \end{lstlisting} } -\end{enumerate} +\end{itemize} \end{frame} \begin{frame}[fragile] -\frametitle{Solutions} +\frametitle{Armstrong} \label{sec-10} -\begin{enumerate} -\vspace{15pt} +\begin{itemize} \item {\tiny \begin{lstlisting} def armstrong(n): - sum = 0 - temp = 0 - remainder = 0 + sum, remainder = 0 temp = n while temp > 0 : remainder = temp % 10 @@ -336,24 +382,77 @@ if __name__ == '__main__': print 'All tests passed...' \end{lstlisting} } -\end{enumerate} +\end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} +\frametitle{SDES \& FOSSEE} +\begin{center} +\begin{itemize} +\item \small{SDES}\\ +\small{\color{LimeGreen}Software Development techniques for +Engineers and Scientists} \\ +\scriptsize An initiative by FOSSEE. \\ +\vspace{3pt} +\scriptsize For more information on SDES, please visit +{\color{blue}\url{http://fossee.in/sdes}}\\ +\vspace{12pt} +\item \small{FOSSEE}\\ +\small {\color{LimeGreen}Free and Open-source Software for \\ +Science and Engineering Education} \\ +\scriptsize Based at IIT Bombay, Funded by MHRD.\\ +\vspace{3pt} +\scriptsize Part of National Mission on Education through ICT (NME-ICT) \\ +\end{itemize} +\end{center} +\end{frame} +\begin{frame} +\frametitle{About the Spoken Tutorial Project} +\begin{itemize} +\item Watch the video available at {\color{blue}\url{http://spoken-tutorial.org + /What\_is\_a\_Spoken\_Tutorial}} +\item It summarises the Spoken Tutorial project +\item If you do not have good bandwidth, you can download and watch it +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Spoken Tutorial Workshops}The Spoken Tutorial Project Team +\begin{itemize} +\item Conducts workshops using spoken tutorials +\item Gives certificates to those who pass an online test +\item For more details, please write to \\ \hspace {0.5cm} +{\color{blue}contact@spoken-tutorial.org} +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Acknowledgements} +\begin{itemize} +\item Spoken Tutorial Project is a part of the Talk to a Teacher project +\item It is supported by the National Mission on Education through ICT, MHRD, +Government of India +\item More information on this Mission is available at: \\ +{\color{blue}\url{http://spoken-tutorial.org/NMEICT-Intro}} +\end{itemize} +\end{frame} + +\begin{frame} \begin{block}{} \begin{center} - \textcolor{blue}{\Large THANK YOU!} + {\Large THANK YOU!} \end{center} \end{block} \begin{block}{} \begin{center} For more Information, visit our website\\ - \url{http://fossee.in/} + {\color{blue}\url{http://fossee.in/}} \end{center} \end{block} \end{frame} + \end{document} diff --git a/TDD/getting_started_with_tdd/tdd1_script.rst b/TDD/getting_started_with_tdd/tdd1_script.rst index 88c1227..ebe5036 100755 --- a/TDD/getting_started_with_tdd/tdd1_script.rst +++ b/TDD/getting_started_with_tdd/tdd1_script.rst @@ -1,205 +1,263 @@ -.. Objectives -.. ---------- - - .. At the end of this tutorial, you will be able to: - - .. 1. Know what is TDD. - .. 2. Understand the use of test cases. - .. 3. Write simple tests for a function. - -.. Prerequisites -.. ------------- - -.. 1. Getting started with functions - - +------ Script ------ .. L1 -{{{ Show the first slide containing title, name of the production -team along with the logo of MHRD }}} +{{{ Show the "Title" slide }}} .. R1 -Hello friends and Welcome to the tutorial on -'Test driven development - Part 1'. +Hello friends and welcome to the tutorial on, +'Getting started with TDD' .. L2 -{{{ Show slide with objectives }}} +{{{ Show "Objectives" slide }}} .. R2 At the end of this tutorial, you will be able to, - 1. understand basics of Test Driven Development. - #. understand the use test cases. - #. write simple tests for a function. + 1. Understand basics of Test Driven Development. + #. Understand the use test cases. + #. Write simple tests for a function. .. L3 -{{{ Switch to the slide3, pre-requisite slide }}} +{{{ Switch the "Pre-requisite" slide }}} .. R3 -Before beginning this tutorial,we would suggest you to complete the +Before beginning this tutorial, we would suggest you to complete the tutorial on "Getting started with functions". -.. R4 - -Test-driven development is a software development -process that relies on the repetition of a very short -development cycle. -In TDD,one writes a failing automated test case that -defines a desired improvement or new function, then produces -code to pass that test and finally refactors the new code to -acceptable standards. +.. L4 +{{{ show "What is TDD?" slide }}} -.. L4 +.. R4 -{{{ Switch to slide4 ,What is TDD?}}} +Test-driven development is a software development process that relies on the +repetition of a very short development cycle. +The basics of Test Driven Development are, -.. R5 +1. Decide the new feature you want to implement & the methodology to test it. +#. Write tests for the new feature decided upon. +#. Just write enough code so that the test can run, but, it fails. -To illustrate TDD, lets take a simple program. Consider a -function ``fibonacci``, that takes one argument and returns -the nth number of ``fibonacci`` series. .. L5 -{{{ Switch to slide5, First test- fibonacci }}} +{{{ show "What is TDD?.." slide }}} -.. R6 +.. R5 -To test ``fibonacci`` function, we need test -cases. -As shown in this slide, -test cases are expected outputs for a given set of inputs. +#. Modify the code so that all the current tests & the previous tests pass. +#. Run tests to see if all the tests pass successfully. +#. Refactor the code - optimize the algorithm, remove duplication & + documentation, etc. +#. And finally run the tests again to see if all the tests pass. .. L6 -{{{ Switch to slide6, Test cases }}} +{{{ show "First test - fibonacci" slide }}} -.. R7 +.. R6 + +To illustrate TDD, lets take a simple program. Consider a function "fibonacci", +that takes one argument and returns the nth number of fibonacci series. +As shown in the example, c will contain the 3rd digit of the fibonacci series +that starts counting from 0(zero). -The sample code for test cases is shown here. Observe that if -any ``if`` statement is executed, test aborts after printing the -error message. .. L7 - -{{{ Switch to slide7, Test cases-Code }}} -.. R8 +{{{ show "Test Cases" slide }}} + +.. R7 -The ``fibonacci`` function is written just enough so that -test can run. +To test any function it is important to have enough test cases & their expected +outputs before you start writing the test cases. Test cases are expected +outputs for a given set of inputs. So, to test fibonacci function, +we need test cases. As shown in this slide, our test cases are, when 'n=3', '2' +is the expected output from the fibonnaci series. Similarly, when 'n=4', '3' +is the expected output. +Test cases can either be true or false depending on their actual behaviour +against the expected behaviour. .. L8 + +{{{ show "Test cases-Code" slide }}} -{{{ switch to slide8, Stubs }}} +.. R8 -.. R9 +The sample code for test cases is shown here. Observe that if any "if" +statement is executed, test aborts after printing the error message. -Combine the function and test cases and put them together in -``fibonacci.py`` file.Add the test cases after name=main idiom. .. L9 -{{{ Switch to slide9, fibonacci.py }}} +{{{ show the "Stubs" slide }}} -.. R10 +.. R9 + +Now, the fibonacci function is written just enough so that the tests can run. +But, obviously the tests are going to fail. -Lets run fibonacci.py by typing ``python fibonacci.py``. -As we haven't written any meaningful code in our ``fibonacci`` -function, it fails immediately. -Our next step is to write just minimum code to pass our tests. .. L10 -{{{ Run the fibonacci.py in terminal and show the error output.}}} -:: - - python fibonacci.py +{{{ show "fibonacci.py" slide }}} -.. R11 +.. R10 -Modify the fibonacci stub function with given code. -Save and run it again as `` python fibonacci.py``. -{{{ pause }}} -Observe that, there will be no errors, as -the test passes successfully. +We will now combine the fibonnaci stub function we just wrote & the test cases +together in "fibonacci.py" file. Note that the test cases should be added +after "name=main" idiom. -.. L11 +.. L11 -{{{ switch to slide-11, Euclidean Algorithm }}} -Switch to terminal and modify fibonacci function in ``nano`` -editor and run. -:: +{{{ show the "first run" slide }}} +{{{ Run the fibonacci.py in terminal and show the error output & switch back to +slide }}} +>>> python fibonacci.py + +.. R11 - python fibonacci.py - -.. R12 +Now, let us run the fibonacci.py file. To do this, switch to the terminal & +type "python fibonacci.py". + + +The tests fail as we just have a stub "fibonacci" function and no meaningful +code in it. Our next step is to write just minimum code to pass our tests. -The same ``fibonacci`` function is modified to make it more readable -and easy to understand using recursion. -Pause this video here.Replace the ``fibonacci`` function with recursive one. -Run the modified ``fibonacci.py`` file. The test should pass again -without any errors. -After successfully achieving this result, you can resume the video. .. L12 -{{{ Show slide12, Euclidean Algorithm- Recursive}}} +{{{ show "Fibonnaci" slide }}} +{{{ switch to terminal }}} +>>> python fibonacci.py -.. R13 +.. R12 -This brings us to the end of the tutorial.In this tutorial, - we have learnt to, +Modify the fibonacci stub function with given code & save the file. Now, switch +to terminal and run it again as "python fibonacci.py". - 1. Undestand the basic steps involved in Test driven development. - #. Design a Test driven approach for a given ``fibonacci`` function. +{{{ pause }}} +Observe that, there will be no errors, as the test passes successfully. .. L13 -{{{ switch to slide-13,Summary }}} +{{{ Show "Fibonacci - Recursive" slide }}} + +.. R13 + +Finally, the same "fibonacci" function is modified to make it more readable +and easy to understand using recursion. +Pause this video here. Replace the "fibonacci" function with recursive one. +Run the modified "fibonacci.py" file. The test should pass again without any +errors. After successfully achieving this result, you can resume the video. + +.. L14 + +{{{ show "Summary" slide }}} .. R14 -Here are some self assessment questions for you to solve +This brings us to the end of the tutorial. In this tutorial, we have learnt, + + 1. The basic steps involved in Test driven development. + #. How to use test cases. + #. How to write simple tests for a function. - 1. Design a TDD approach for a factorial function. - 2. Design a TDD approach for an armstrong function. -.. L14 +.. L15 -{{{ switch to slide-14, Evaluation }}} +{{{ show "Evaluation" slide }}} .. R15 -And the answers are, - 1. {{{ show answer slide-1 }}} +Here are some self assessment questions for you to solve, - 2. {{{ show answer slide-2 }}} + 1. Design a TDD approach for a factorial function. + 2. Design a TDD approach for an armstrong function. -.. L15 +Try out the excercises for yourself & resume the video for solutions. -{{{ switch to slide-15 ,Solutions}}} + +.. L16 + +{{{ show "Factorial" slide}}} .. R16 -Hope you have enjoyed this tutorial and found it useful. -Thank you! +Given here is a TDD approach to a factorial function. -.. L16 +.. L17 + +{{{ show "Armstrong" slide}}} + +.. R17 + +Given here is a TDD approach to an armstrong function. + + +.. L18 + +{{{ Show the SDES & FOSSEE slide }}} -{{{ Switch to slide-16, Thankyou}}} +.. R18 +Software Development techniques for Engineers and Scientists - SDES, is an +initiative by FOSSEE. For more information, please visit the given link. + +Free and Open-source Software for Science and Engineering Education - FOSSEE, is +based at IIT Bombay which is funded by MHRD as part of National Mission on +Education through ICT. + +.. L19 + +{{{ Show the ``About the Spoken Tutorial Project'' slide }}} + +.. R19 + +Watch the video available at the following link. It summarises the Spoken +Tutorial project.If you do not have good bandwidth, you can download and +watch it. + +.. L20 + +{{{ Show the `` Spoken Tutorial Workshops'' slide }}} + +.. R20 + +The Spoken Tutorial Project Team conducts workshops using spoken tutorials, +gives certificates to those who pass an online test. + +For more details, contact contact@spoken-tutorial.org + +.. L21 + +{{{ Show the Acknowledgements slide }}} + +.. R21 + +Spoken Tutorial Project is a part of the "Talk to a Teacher" project. +It is supported by the National Mission on Education through ICT, MHRD, +Government of India. More information on this mission is available at the +given link. + +.. L22 + +{{{ Show the Thankyou slide }}} + +.. R22 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! |