STTP-Design.tex
author Puneeth Chaganti <punchagan@fossee.in>
Mon, 31 Jan 2011 12:24:43 +0530
changeset 149 4499aebbee83
parent 0 6d71487a99d3
permissions -rw-r--r--
vcs: Fix pygments highlighting of code blocks with $ and ' Pygments highlighting breaks when a code block ends with a lone $ on a line or when it has an unmatched '.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     1
\documentclass{article}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     2
\title{Course Design Document\\Software Tools, Techniques and Practices\\for Engineering Studies}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     3
\author{Asokan Pichai\\Prabhu Ramachandran}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     4
\date{}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     5
\parindent=0pt
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     6
\begin{document}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     7
\maketitle
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     8
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
     9
\subsection{Preamble} 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    10
\begin{description}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    11
  \item[Version] 0.8
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    12
  \item[Purpose] This document captures the design of the Software
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    13
      Tools, Techniques and Practices course. This course is designed
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    14
      under the project on ``Adoption of Open Source Software in Science
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    15
      and Engineering Education'' at Indian Institute of Technology,
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    16
      Bombay funded by the National Mission on Education through
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    17
      Information and Communication Technology, Ministry of Human
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    18
      Resources Development under the thrust area of ``Adaptation and
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    19
      deployment of open source packages equivalent to MATLAB, ORCAD etc''.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    20
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    21
  \item[Recipients] in no particular order
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    22
  \begin{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    23
     \item Kannan Moudgalya
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    24
     \item Venkatesh Choppella
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    25
     \item Madhu Belur
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    26
     \item Mani Bhushan
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    27
     \item Eric Jones
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    28
     \item Travis Oliphant
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    29
     \item Greg Wilson
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    30
  \end{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    31
\end{description}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    32
\newpage
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    33
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    34
\section{Specifications}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    35
\begin{description}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    36
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    37
\item[Audience] The course is meant for students of BE/BTech and ME/MTech programmes. While it is open to all students,
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    38
    it has been designed with students of non-CS, non-IT streams only.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    39
\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    40
\item Separate courses will be designed along similar lines targetted to students of Bsc/MSc in Physics, Chemistry and Mathematics. These courses will predominantly but not necessarily use the same tools.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    41
\item For students of Statistics a broadly similar course using R will be designed. 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    42
\item Each of these courses will have a corresponding `Train the Teachers' course.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    43
\end{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    44
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    45
\item[Background] The students will possess good computer usage skills and some programming knowledge
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    46
\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    47
\item Good computer usage skills is typically using computers for preparing documents, sending email etc.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    48
\item Some programming knowledge is basic understanding of coding such as operators, assignments, conditionals, loops
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    49
    and functions.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    50
\item Knowledge of any specific language or operating system is NOT assumed.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    51
\end{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    52
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    53
\item[Context] Engineering students use computers for a large number of
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    54
    curricular tasks--mostly computation centred. However, they do not
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    55
    see this as coding or programming tasks and usually are not even
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    56
    aware of the tools and techniques that will help them to handle
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    57
    these tasks better. This results in less than optimal use of their
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    58
    time and resources. This also causes difficulties when it comes
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    59
    tocollaboration and building on other people's work. This program is
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    60
    intended to train such students in good software practices and tools
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    61
    for producing code and documentation.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    62
\end{description}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    63
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    64
\newpage
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    65
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    66
\section{Course Objectives}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    67
\emph{Each objective is associated with a level in the Revised Bloom's
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    68
Taxonomy - which is a standard pedagogic tool for curriculum planning,
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    69
instructional delivery and assessment. Please refer to:
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    70
http://www.apa.org/ed/new\_blooms.html for a one page explanation.} 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    71
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    72
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    73
After successfully completing the program, the participants will be able to:
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    74
\begin{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    75
\item \label{intro} understand how software tools work together and how they can be used in tandem to carry out tasks,\hfill \texttt{RBT U\phantom{p}}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    76
\item \label{cmd} use unix command line tools to carry out common (mostly text processing) tasks,\hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    77
\item \label{pdf} to generate professional documents, \hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    78
\item \label{VC} use version control effectively--for both code and documents,\hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    79
\item \label{scr} automate tasks by writing shell scripts and python scripts,\hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    80
\item \label{sty} realise the impact of coding style and readbility on quality,\hfill \texttt{RBT U\phantom{p}}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    81
\item \label{py} write mid-sized programs that carry out typical engineering/numerical computations such as those that involve (basic) manipulation of large arrays in an efficient manner,\hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    82
\item \label{plot} generate 2D and simple 3D plots, \hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    83
\item \label{dbg} debug programs using a standardised approach,\hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    84
\item \label{test} understand the importance of tests and the philosophy of Test Driven Development,\hfill \texttt{RBT U\phantom{p}}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    85
\item \label{unit} write unit tests and improve the quality of code.  \hfill \texttt{RBT Ap}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    86
    \end{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    87
\section{Assessment Strategies}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    88
We will use tests and quizzes during the course and an end of course project to evaluate the degree of achievement of the objective. The projects will be be individual but sufficient hooks will be built into projects that the participants need to work together. Such hooks will be in the nature of building dependencies--A's code will call B's function etc--rather than making people work in teams.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    89
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    90
\section{Module Plan}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    91
The objectives listed against the modules may be covered only partially in that module. In other words, each module may cover one or more objectives fully or partially. And each objective may be handled in one or more modules--partially or fully. 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    92
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    93
\begin{tabular}{||l|l|l|r||}\hline\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    94
Seq & Module  & Course Objectives & Duration\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    95
Num & Name    & Covered           & (Hours)\\\hline 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    96
1 & Using Linux Tools        & \ref{intro}, \ref{cmd}, \ref{scr}, \ref{dbg} and  \ref{test} & 7\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    97
2 & Basic Python Programming & \ref{scr}, \ref{sty}, \ref{dbg} and \ref{test}               & 8\\\hline 
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    98
3 & LaTeX                    & \ref{pdf} and \ref{scr}                                      & 2\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
    99
4 & Version Control          & \ref{VC}                                                     & 2\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   100
5 & Coding Style \& Approach & \ref{sty} and \ref{test}                                     & 2\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   101
6 & Test Driven Development  & \ref{test}, \ref{unit}, \ref{cmd} and \ref{scr}              & 4\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   102
7 & Advanced Python          & \ref{py}, \ref{dbg}, \ref{plot} and \ref{test}               & 8\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   103
8 & Project                  & All applied                                                  & 6\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   104
\end{tabular}    
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   105
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   106
Session Count = 39 + 1 Buffer
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   107
\subsection*{Note}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   108
\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   109
    \item All sessions will be held in rooms where students are sitting before a computer.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   110
    \item We will use \texttt{bzr} as the version control tool. The course materials will be duplicated with other tools
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   111
          such as \texttt{hg, git, svn}.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   112
    \item It is expected that shell scripting covered in module 1 will act as a revision for basic programming
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   113
      concepts.
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   114
\end{itemize}     
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   115
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   116
\section{Module 1: Using Linux Tools}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   117
\label{ULT}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   118
\subsection{Module Objectives}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   119
After successfully completing this module a participant will be able to:
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   120
	\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   121
	\item Understand the design philosophy of *nix \hfill U\phantom{p}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   122
	\item Use Linux as their day-to-day operating system\hfill Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   123
	\item Use the text processing tools such as \texttt{grep, tr}\hfill Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   124
	\item Write and execute (bash) shell scripts\hfill Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   125
	\item Use a text editor comfortably\hfill Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   126
	\end{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   127
\subsection{Suggested Reading}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   128
\begin{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   129
	\item "In the beginning..." by Neal Stephenson
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   130
	\item "The Unix Programming Environment" by Kernighan and Pike
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   131
\end{enumerate}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   132
\subsection{Session Plan}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   133
\begin{tabular}{llr}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   134
Session & Topic & Duration\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   135
1 & Introduction to the course                                       & ~5 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   136
  & Historical background and implications. Why Unix?                & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   137
  & Getting started--logging in; \tt{ls, date, who, cd, mkdir}       & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   138
  & Getting help: \tt{apropos, man, info}                            & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   139
  & Basic file handling: \tt{cp, mv, rm}                             & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   140
  & First session buffer                                             & ~5 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   141
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   142
2 & Command line arguments                                           & ~5 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   143
  & Basic text processing: \tt{head, tail, cut, paste}               & 15 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   144
  & Shell meta characters                                            & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   145
  & Looking at files: \tt{cat, less}                                 & ~5 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   146
  & Directory structure: \tt{man hier, ls -l}                        & ~5 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   147
  & Permissions and ownership, \tt{chmod, chown}                     & 10 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   148
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   149
3 & Redirection and Piping                                           & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   150
  & More text processing: \tt{grep, tr}                              & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   151
  & Elementary regex: . ? * \^ \$ [ ]                                  & 15 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   152
  & One liners: show lines n to m, show directories                  & 15 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   153
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   154
4 & More text processing: \tt{join, sort, uniq}                      & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   155
  & Generating a word frequency list                                 & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   156
  & Basic editing and editors: vim, scite                            & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   157
  & Personalising your environment: \tt{.bashrc, .vimrc}             & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   158
  & Subshells and \tt{source}                                        & 10 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   159
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   160
5 & More tools: \tt{tar, zip, diff, cmp, comm}                       & 25 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   161
  & Environment variables, \tt{set}                                  & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   162
  & Writing simple shell scripts                                     & 15 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   163
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   164
6 & Control structures and operators in bash                         & 20 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   165
  & Writing shell scripts                                            & 30 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   166
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   167
7 & Functions in bash scripts                                        & 20 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   168
  & Assessment Test                                                  & 30 mts\\\hline\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   169
\end{tabular}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   170
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   171
\section{Module 2: Basic Python Programming}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   172
\label{BPyP}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   173
\subsection{Module Objectives}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   174
After successfully completing this module a participant will be able to:
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   175
	\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   176
            \item write modular, procedural code in python, \hfill RBT Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   177
            \item understand the functional features of python, \hfill RBT U\phantom{p}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   178
            \item understand the object model of python, \hfill RBT U\phantom{p}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   179
            \item write programs using objects \hfill RBT Ap
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   180
	\end{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   181
\subsection{Suggested Reading}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   182
\begin{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   183
    \item Python tutorial available at http://www.python.org/doc/tut
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   184
    \item ``Dive into Python'' by Mark Pilgrim
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   185
\end{itemize}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   186
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   187
\begin{tabular}{llr}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   188
Session & Topic & Duration\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   189
1 & Introduction to the Python language. Philosophy           & 25 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   190
  & The interpreter(\texttt{ipython}--python as calculator        & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   191
  & Editing and running a .py file                            & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   192
  & Basic data types and operators: Numeric and string        & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   193
  & Syntax: \tt{while, if, raw\_input(), int(), def}          & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   194
  & Problem set 1                                             & 25 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   195
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   196
2 & lists and tuples: basic operations                        & 15 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   197
  & Syntax: \tt{range(),for, len()}                           & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   198
  & Code Reading: Example set 1                               & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   199
  & Problem set 2                                             & 25 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   200
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   201
3 & Strings: basic operations                                 & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   202
  & Introduction to the standard library                      & \\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   203
  & I/O: reading and writing files                            & 15 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   204
  & Problem set 3                                             & 25 mts\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   205
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   206
4 & Dictionaries: basic operations                            & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   207
  & Modules and code organization                             & 10 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   208
  & Executing modules as scripts: \texttt{\_\_main\_\_}       &\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   209
  & \texttt{import} and overview of major modules             & 15 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   210
  & Problem set 4                                             & 15 mts\\\hline  
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   211
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   212
5 & Interim Assessment                                        & 30 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   213
  & Functional approach: overview                             & 25 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   214
  & \texttt{map, filter, reduce} and list comprehensions      & \\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   215
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   216
6 & Classes and Objects                                       & 20 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   217
  & Writing Object-oriented code                              & 30 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   218
  & Code Reading: Example set 2                               &\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   219
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   220
7 & Case Studies:                                             & 50 mts\\
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   221
  & png notation                                              &\\              
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   222
  & result html generation                                    &\\\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   223
8 & Assessment                                                & 50 mts\\\hline\hline
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   224
\end{tabular}
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   225
6d71487a99d3 Includes STTP Design, Python-Problem Set.
Shantanu <shantanu@fossee.in>
parents:
diff changeset
   226
\end{document}