author | Shantanu <shantanu@fossee.in> |
Wed, 26 Aug 2009 17:22:43 +0530 | |
changeset 38 | ce7634ee7986 |
parent 0 | 6d71487a99d3 |
permissions | -rw-r--r-- |
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} |