summaryrefslogtreecommitdiff
path: root/README.rst
blob: 630a6713c6cffb96609af1c375da864bd7f33a0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
About SEES
============

SEES stands for *Software Engineering for Engineers and Scientists.*

Engineering students use computers for a large number of curricular
tasks – mostly computation centred. However, they do not see this as
coding or programming tasks and usually are not even aware of the
tools and techniques that will help them to handle these tasks
better. This results in less than optimal use of their time and
resources. This also causes difficulties when it comes to
collaboration and building on other people's work. This course is
intended to train such students in good software practices and tools
for producing code and documentation.

After successfully completing the program, the participants will be
able to:

- understand how software tools work together and how they can be used
  in tandem to carry out tasks,
                             
- use unix command line tools to carry out common (mostly) text
  processing tasks,
                                                            
- to generate professional documents,

- use version control effectively – for both code and documents,

- automate tasks by writing shell scripts and python scripts,

- realise the impact of coding style and readbility on quality,

- 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,

- generate 2D and simple 3D plots,

- debug programs using a standardized approach,

- understand the importance of tests and the philosophy of Test Driven
  Development,

- write unit tests and improve the quality of code.


Prerequisites
-------------

The students should possess possess good computer usage skills. Some
programming knowledge will be helpful, but is not mandatory. 

- Good computer usage skills is typically using computers for
  preparing documents, sending email etc.

- Some programming knowledge is basic understanding of coding such as
  operators, assignments, conditionals, loops and functions.

Outline
-------

The course will consist of the following modules. 

#. Using Linux Tools
#. Version control systems
#. Basic Python
#. Advanced Python
#. Test Driven Development

License
=======

This work is licensed under a `Creative Commons
Attribution-NonCommercial 2.5 India License`_.

.. _Creative Commons Attribution-NonCommercial 2.5 India License: http://creativecommons.org/licenses/by-nc/2.5/in/