summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJovina2012-08-08 12:27:24 +0530
committerJovina2012-08-08 12:27:24 +0530
commit4e7075d23dfff0583c17afd1cceb9cc44164212c (patch)
treec7e4914c71a9448fb342b1abc12d99f4cfa40e14
parente447a219a2e4d89c1bb09780519b84b5b1082b11 (diff)
downloadsdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.tar.gz
sdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.tar.bz2
sdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.zip
Made changes based on the review.
-rw-r--r--ult/ult_5/script.rst333
-rw-r--r--ult/ult_5/ult5.tex252
2 files changed, 340 insertions, 245 deletions
diff --git a/ult/ult_5/script.rst b/ult/ult_5/script.rst
index e112ff7..2937397 100644
--- a/ult/ult_5/script.rst
+++ b/ult/ult_5/script.rst
@@ -3,17 +3,15 @@
.. At the end of this tutorial, you will be able to:
- .. 1.
- .. 2.
+ .. 1. Understand what is Redirection and Piping.
+ .. 2. Learn various features of shell.
.. Prerequisites
.. -------------
-.. 1. Using Linux tools - Part 1
-.. 2. Using Linux tools - Part 2
-.. 3. Using Linux tools - Part 3
-.. 4. Using Linux tools - Part 4
-
+.. 1. Getting started with Linux
+.. 2. Basic File Handling
+.. 4. Advanced file handling
Script
------
@@ -26,7 +24,7 @@ team along with the logo of MHRD }}}
.. R1
Hello friends and Welcome to the tutorial on
-'Using linux tools - Part 5'.
+'Redirection and Piping'.
.. L2
@@ -36,11 +34,8 @@ Hello friends and Welcome to the tutorial on
At the end of this tutorial, you will be able to,
- 1. Sort lines of text files
- #. Print lines matching a pattern
- #. Translate or delete characters
- #. Omit repeated lines.
-
+ 1. Understand what is Redirection.
+ #. Learn the concept of Piping.
.. L3
@@ -49,14 +44,15 @@ At the end of this tutorial, you will be able to,
.. R3
Before beginning this tutorial,we would suggest you to complete the
-tutorial on "Using Linux tools from Part 1 to Part 4".
+former tutorials as being displayed currently.
.. R4
-In this tutorial, we shall learn about text processing.
-TO begin with, consider data kept in two files, namely marks1.txt and
-students.txt
-Let us see what data they contain. Open a terminal and type,
+Let us begin with the concept of 'Redirection and Piping' which
+performs the same operations as the ``cut`` and ``paste`` commands.
+
+Consider the files ``marks.txt`` and ``students.txt``.The contents of
+the files are as following:
.. L4
@@ -68,274 +64,267 @@ Let us see what data they contain. Open a terminal and type,
.. R5
-Let's say we wish to sort the output in the alphabetical order
-of the names of the files. We can use the ``sort`` command for this
-purpose.
-
-We just pipe the previous output to the ``sort`` command as,
+Now, let us view the contents of both these files side-by-side.
.. L5
::
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt -
.. R6
-Let's say we wish to sort the names, based on the marks in the first
-subject i.e. the first column after the name. ``sort`` command also allows us to
-specify the delimiter between the fields and sort the data on a particular
-field. ``-t`` option is used to specify the delimiter and ``-k`` option
-is used to specify the field.
+Now, in order to view the same output in a new file at an other
+location, we say,
.. L6
::
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2
+ cut -d " " -f 2- marks1.txt > /tmp/m_tmp.txt
+ paste -d " " students.txt m_tmp.txt
-.. L7
+.. R7
-{{{ Show slide with, Sort... }}}
+First, let us try to understand the second solution,which is a two
+step approach.
+Later, we shall look at the first solution.
-.. R7
+.. L7
+
+.. L8
-This command give us a sorted output as required. But, what if we would
-like the output to appear in the reverse order. ``-r`` option allows the output
-to be sorted in the reverse order and the ``-n`` option is used to choose
-a numerical sorting.
+{{{ Show slide, with Redirection }}}
.. R8
-Let us do it on the terminal and see for ourselves,
+The standard output, in general, goes to the display.
+But, this may not be what we always require.
-.. L8
+For instance, in the solution above, we use the cut command and get only
+the required columns of the file and write the output to a new temporary
+file. The ``>`` character is used to state that we wish to redirect the
+output, and it is followed by the location to which we wish to redirect.
+For example,
-{{{ Switch to the terminal }}}
-::
+ command > file1
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt -|
- sort -t " " -k 2 -rn
+.. L9
+
+{{{ Show slide, with Redirection.. }}}
.. R9
-Suppose, While you are compiling the student marklist, Anne walks up to you and
-wants to know her marks. You, being a kind person that you are, oblige.
-But you do not wish to her to see the marks that others have scored. What
-do you do? Here, the ``grep`` command comes to your rescue.
+Similarly, the standard input (stdin) can be redirected as,
+
+ command < file1
-``grep`` is a command line text search utility. You can use it to search
-for Anne and show her, what she scored. ``grep`` allows us to search for a
-search string in files. But we could, like any other command, pipe the
-output of other commands to it. So, we shall use the previous combination
-of cut and paste that we had, to get the marks of students along with their
-names and search for Anne in that.
+The input and the output redirection could be combined in a single command,
+as,
-.. L9
-::
+ command < infile > outfile
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep Anne
+.. L10
-.. R10
+{{{ Show slide, with stderr }}}
-This will give us only the line containing the word Anne as the output.
-The grep command is by default case-sensitive. So, we wouldn't have got
-the result if we had searched for anne, with a small a, instead of
-Anne, with a capital a. But, what if we didn't know, whether the name was
-capitalized or not? ``grep`` allows you to do case-insensitive searches
-by using the ``-i`` option.
-.. L10
-::
+.. R10
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -i Anne
+There is actually a third kind of standard stream, called the Standard
+error (stderr). Any error messages that you get, are coming through this
+stream. Like ``stdout``, ``stderr`` also streams to the display by default,
+but it could be redirected to a file, as well.
.. R11
-Now, in another scenario, if we wished to print all the lines, which do
-not contain the word Anne, we could use the ``-v`` option.
+For instance, let's reproduce an error using the ``cut`` command used
+before. We shall change the ``-f`` option to ``-c``
.. L11
+
+{{{ Switch to terminal }}}
::
- cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -iv Anne
+ cut -d " " -c 2- marks1.txt > /tmp/m_tmp.txt
.. R12
-grep allows us to do more complex searches, for instance, searching for
-sentences starting or ending with a particular pattern and regular
-expression based searches.
-
-{{{ Show slide with, tr }}}
-
-``tr`` is a command that takes two sets of characters as parameters, and
-replaces occurrences of the characters in the first set with the
-corresponding elements from the other set. It reads from the standard
-output and writes to the standard output.
-
-For instance, if we wish to replace all the lower case letters in the
-students file with upper case, we can do it as,
+This displays an error saying that the delimiter option should be used
+with the fields option only. You may verify this by looking at the
+``m_tmp.txt`` file, which is now empty.We can now, redirect the
+``stderr`` also to a file, instead of showing it on the display.
.. L12
-
-{{{ Switch to the terminal }}}
::
- cat students.txt | tr a-z A-Z
+ cut -d " " -f 2- marks1.txt 1> /tmp/m_tmp.txt 2> /tmp/m_err.txt
.. R13
-A common task is to remove empty newlines from a file. The ``-s`` flag
-causes ``tr`` to compress sequences of identical adjacent characters in its
-output to a single token. For example,
+The above command redirects all the errors to the ``m_err.txt`` file
+and the output to the ``m_tmp.txt`` file. When redirecting, 1 stands
+for ``stdout`` and 2 stands for ``stderr``.
+
+Let us complete the solution by using the ``paste`` command.
.. L13
::
- tr -s '\n' '\n'
+ paste -d " " students.txt m_tmp.txt
.. R14
-Hit enter 2-3 times and see that every time we hit enter we get a newline.
+So, in two steps we solved the problem of getting rid of the roll numbers
+from the marks file and displaying the marks along with the names of the
+students. Now, that we know how to redirect output, we could choose to
+write the output to a file, instead of showing on the display.
+
+Let us now look at the first solution.
.. L14
::
- <Enter>
- <Enter>
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt -
+
+.. L15
+
+{{{ Show slide, with Piping }}}
.. R15
-It replaces sequences of one or more newline characters with a single newline.
+First of all, the hyphen at the end is to ask the paste command to
+read the standard input, instead of looking for a FILE. The ``man``
+page of ``paste`` command gives us this information.
-The ``-d`` flag causes ``tr`` to delete all tokens of the specified set of
-characters from its input. In this case, only a single character set
-argument is used. The following command removes carriage return characters,
-thereby converting a file in DOS/Windows format to the Unix format.
+Now, let us observe the ``cut`` command. If we look at the command only
+upto the ``|`` character, it appears as a normal ``cut`` command .
-.. L15
-::
+.. L16
- cat foo.txt | tr -d '\r' > bar.txt
+{{{ Show slide, with Piping.. }}}
.. R16
-The ``-c`` flag complements the first set of characters.
+So, the ``|`` character here, seems
+to be joining the two commands in some way.
+Essentially, what we are doing is, to redirect the output of the first
+command to ``stdin`` and the second command takes the input from the ``stdin``.
+This activity is commonly called piping and the character ``|`` is called
+a pipe.
-.. L16
-::
+.. L17
- tr -cd '[:alnum:]'
+{{{ Show slide, with Piping... }}}
.. R17
-It therefore removes all non-alphanumeric characters.
+This is roughly equivalent to using two redirects and a temporary file.
-Let us consider one more scenario.Suppose we have a list of items, say books,
-and we wish to obtain a list which names of all the books only once, without
-any duplicates. To achieve this, we use the ``uniq`` command. Let us first
-have a look at our file
+ command1 > tempfile
+ command2 < tempfile
+ rm tempfile
-.. L17
-::
+Also, given that a pipe is just a way to send the output of a command to
+the ``stdin``, it should be obvious to you that we can use a chain of
+pipes. Any number of commands can be piped together and therefore it should
+ be noted that it is not restricted to only two commands.
- cat items.txt
+.. L18
-.. R18
+{{{ Switch to Summary slide }}}
-Now, let us try and get rid of the duplicate lines from this file using
-the ``uniq`` command.
+.. R18
-.. L18
-::
+This brings us to the end of the end of this tutorial.
+In this tutorial, we have learnt to,
- uniq items.txt
+ 1. Use the ``cut`` and ``paste`` commands in redirection.
+ 2. Use the pipe ( | ) character.
+
+.. L19
+
+{{{ Show self assessment questions slide }}}
.. R19
-Nothing happens! Why? The ``uniq`` command removes duplicate lines only when
-they are next to each other. So, henceforth, we get a sorted file from the
-original file and work with that file.
+Here are some self assessment questions for you to solve:
-.. L19
-::
+1. How will you redirect the content of a file to a device ?
+
+2. How to view last field(30), in a file located at /home/test.txt whose
+ first line is "data:myscripts:20:30"
+
+ - cut -d : -f 4 /home/test.txt
+ - cut -f 3 /home/test.txt
+ - cut -d : -f 3 /home/test.txt
+
+
+.. L20
- sort items.txt | uniq
+{{{ Solutions for the self assessment questions on slide }}}
.. R20
-``uniq -u`` command gives the lines which are unique and do not have any
-duplicates in the file. ``uniq -d`` outputs only those lines which
-have duplicates.
+And the answers:
-.. L20
+1. A file can be redirected to a device as,
+::
+
+ cat filename > device
+For eg:
::
- uniq -u items-sorted.txt
-
-.. R21
+ cat sound.wav > /dev/audio
+
-The ``-c`` option displays the number of times each line occurs in the file.
+2. The correct option would be
+::
+
+ cut -d : -f 4 /home/test.txt
.. L21
-::
- uniq -dc items-sorted.txt
+{{{ Show the SDES & FOSSEE slide }}}
+
+.. R21
+
+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.
.. L22
-{{{ Show summary slide }}}
+{{{ Show the ``About the Spoken Tutorial Project'' slide }}}
.. R22
-This brings us to the end of the end of this tutorial.
-In this tutorial, we have learnt to,
-
- 1. Use the ``sort`` command to sort lines of text files.
- #. Use the ``grep`` command to search text pattern.
- #. Use the ``tr`` command to translate and/or delete characters.
- #. Use the ``uniq`` command to omit repeated lines in a text.
+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.
.. L23
-{{{ Show self assessment questions slide }}}
+{{{ Show the `` Spoken Tutorial Workshops'' slide }}}
.. R23
-Here are some self assessment questions for you to solve
+The Spoken Tutorial Project Team conducts workshops using spoken tutorials,
+gives certificates to those who pass an online test.
- 1. To obtain patterns; one per line, which of the following command is used ?
-
- - grep -f
- - grep -i
- - grep -v
- - grep -e
-
- 2. Translate the word 'linux' to upper-case.
-
- 3. Sort the output of the ``ls -al`` command.
+For more details, contact contact@spoken-tutorial.org
.. L24
-{{{ Solution of self assessment questions on slide }}}
+{{{ Show the ``Acknowledgements'' slide }}}
.. R24
-And the answers,
-
- 1. In order to obtain patterns one per line, we use the ``grep`` command
- alongwith the -f option.
-
- 2. We use the tr command to change the word into uppercase
-::
-
- echo 'linux' | tr a-z A-Z
-
-
- 3. We use the sort command as,
-::
-
- ls -al | sort -n -k5
-The -n means "sort numerically", and the -k5 option means to key off of
-column five.
+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.
.. L25
diff --git a/ult/ult_5/ult5.tex b/ult/ult_5/ult5.tex
index 293b76f..7f22fc6 100644
--- a/ult/ult_5/ult5.tex
+++ b/ult/ult_5/ult5.tex
@@ -5,113 +5,174 @@
% Copyright (c) 2009, FOSSEE, IIT Bombay
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[12pt,compress]{beamer}
-
+\documentclass[17pt,compress]{beamer}
+\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{times}
\usepackage[T1]{fontenc}
-% Taken from Fernando's slides.
-\usepackage{ae,aecompl}
-\usepackage{mathpazo,courier,euler}
-\usepackage[scaled=.95]{helvet}
+% change the alerted colour to LimeGreen
+\definecolor{LimeGreen}{RGB}{50,205,50}
+\setbeamercolor{structure}{fg=LimeGreen}
+\author[FOSSEE]{}
+\institute[IIT Bombay]{}
+\date[]{}
+% \setbeamercovered{transparent}
-\definecolor{darkgreen}{rgb}{0,0.5,0}
+% theme split
+\usepackage{verbatim}
+\newenvironment{colorverbatim}[1][]%
+{%
+\color{blue}
+\verbatim
+}%
+{%
+\endverbatim
+}%
+\usepackage{mathpazo,courier,euler}
\usepackage{listings}
\lstset{language=sh,
basicstyle=\ttfamily\bfseries,
- commentstyle=\color{red}\itshape,
- stringstyle=\color{darkgreen},
showstringspaces=false,
- keywordstyle=\color{blue}\bfseries}
+ keywordstyle=\color{black}\bfseries}
+
+% 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}
-\begin{frame}
+\sffamily \bfseries
+\title
+[Redirection and Piping]
+{Redirection and Piping}
+\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]
+}
-\begin{center}
-\vspace{12pt}
-\textcolor{blue}{\huge Using Linux Tools}
-\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}
+% slide 1
+\begin{frame}
+ \titlepage
\end{frame}
+
\begin{frame}
\frametitle{Objectives}
\label{sec-2}
At the end of this tutorial, you will be able to,
\begin{itemize}
-\item Sort lines of text files.
-\item Print lines matching a pattern.
-\item Translate or delete characters.
-\item Omit repeated lines.
+\item Understand what is Redirection
+\item Learn the concept of Piping
\end{itemize}
\end{frame}
\begin{frame}
-\frametitle{Pre-requisite}
+\frametitle{Pre-requisites}
\label{sec-3}
-Spoken tutorial on -
+Spoken tutorial on,
\begin{itemize}
-\item Using Linux tools -- Part I
-\item Using Linux tools -- Part II
-\item Using Linux tools -- Part III
-\item Using Linux tools -- Part IV
+\item Getting started with Linux
+\item Basic File Handling
+\item Advanced file handling
\end{itemize}
\end{frame}
\begin{frame}[fragile]
- \frametitle{\texttt{sort} \ldots}
+ \frametitle{Redirection}
+
\begin{itemize}
- \item The command below sorts, based on marks in first subject
+ \item The standard output (stdout) stream goes to the display
+ \item May not be always, what we need
+ \item \texttt{>} states that output is redirected to the specified location
+ \item It is followed by location to redirect,
\end{itemize}
\begin{lstlisting}
- $ cut -d " " -f 2- marks1.txt \
- | paste -d " " students.txt -\
- | sort -t " " -k 2 -rn
+ $ command > file1
\end{lstlisting} % $
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Redirection..}
\begin{itemize}
- \item \texttt{-t} specifies the delimiter between fields
- \item \texttt{-k} specifies the field to use for sorting
- \item \texttt{-r} for sorting in the reverse order
- \item \texttt{-n} to choose numerical sorting
+ \item Similarly, the standard input (stdin) can be redirected as
+ \end{itemize}
+ \hspace{29pt}\texttt{\$ command < file1}
+ \begin{itemize}
+ \item input and output redirection could be combined
+ \end{itemize}
+ \hspace{29pt}\texttt{\$ command < infile > outfile}
+\end{frame}
+
+\begin{frame}
+\frametitle{stderr}
+ \begin{itemize}
+ \item Standard error (stderr) is the third standard stream
+ \item All error messages come through this stream
+ \item \texttt{stderr} can also be redirected
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Piping}
+\begin{lstlisting}
+$ cut -d " " -f 2- marks1.txt
+ | paste -d " " students.txt -
+ \end{lstlisting} % $
+ \begin{itemize}
+ \item \texttt{-} at the end asks \texttt{paste} to read from
+ \texttt{stdin} instead of FILE
+ \item \texttt{cut} command here is a normal command
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Piping..}
+\begin{itemize}
+ \item the \texttt{|} seems to be joining the two commands
+ \item Redirects output of first command to \texttt{stdin}, which
+ becomes input to the second command
+ \item This is called piping; \texttt{|} is called a pipe
\end{itemize}
\end{frame}
\begin{frame}[fragile]
- \frametitle{\texttt{tr}}
+ \frametitle{Piping..}
\begin{itemize}
- \item Translates or deletes characters
- \item Reads from \texttt{stdin} and outputs to \texttt{stdout}
- \item Given, two sets of characters, replaces one with other
- \item The following, replaces all lower-case with upper-case
+ \item Roughly same as -- two redirects and a temporary file
\end{itemize}
\begin{lstlisting}
- $ cat students.txt | tr a-z A-Z
- \end{lstlisting} % $
+ $ command1 > tempfile
+ $ command2 < tempfile
+ $ rm tempfile
+\end{lstlisting} % $
+\begin{itemize}
+\item Any number of commands can be piped together
+\end{itemize}
\end{frame}
+
\begin{frame}
\frametitle{Summary}
\label{sec-8}
@@ -120,10 +181,8 @@ Spoken tutorial on -
\begin{itemize}
-\item Use the ``sort'' command to sort lines of text files.
-\item Use the ``grep'' command to search text pattern.
-\item Use the ``tr'' command to translate and/or delete characters.
-\item Use the ``uniq'' command to omit repeated lines in a text.
+\item Use the ``cut'' and ``paste'' commands in redirection
+\item Use the pipe ( | ) character
\end{itemize}
\end{frame}
\begin{frame}[fragile]
@@ -132,18 +191,16 @@ Spoken tutorial on -
\begin{enumerate}
-\item To obtain patterns; one per line, which of the following command is used ?
-\vspace{3pt}
+\item How will you redirect the content of a file to a device ?
+\vspace{12pt}
+\item How to view last field(30), in a file located at \verb~/home/test.txt~
+whose first line is "data:myscripts:20:30"
+\vspace{5pt}
\begin{itemize}
-\item grep -f
-\item grep -i
-\item grep -v
-\item grep -e
+\item cut -d : -f 4 /home/test.txt
+\item cut -f 3 /home/test.txt
+\item cut -d : -f 3 /home/test.txt
\end{itemize}
-\vspace{8pt}
-\item Translate the word `linux' to upper-case.
-\vspace{8pt}
-\item Sort the output of the ``ls -al'' command.
\end{enumerate}
\end{frame}
\begin{frame}
@@ -152,27 +209,76 @@ Spoken tutorial on -
\begin{enumerate}
-\item grep -f
-\vspace{15pt}
-\item \$ echo `linux' | tr a-z A-Z
-\vspace{15pt}
-\item \$ ls -al | sort -n -k5
+\item \$ cat filename > device\\
+For eg:\\
+\hspace{8pt} \verb~cat sound.wav > /dev/audio~
+\vspace{22pt}
+\item \$ cut -d : -f 4 /home/test.txt
\end{enumerate}
\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{10pt}
+\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}
+