|
1 Introduction to the Course |
|
2 ========================== |
|
3 |
|
4 Engineering students use computers for a large number of curricular |
|
5 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 |
|
6 techniques that will help them to handle these tasks better. This results |
|
7 in less than optimal use of their time and resources. This also causes |
|
8 difficulties when it comes tocollaboration and building on other people’s |
|
9 work. This course is intended to train such students in good software |
|
10 practices and tools for producing code and documentation. |
|
11 |
|
12 After successfully completing the program, the participants will be able to: |
|
13 |
|
14 - understand how software tools work together and how they can be used in tandem to carry out tasks, |
|
15 |
|
16 - use unix command line tools to carry out common (mostly text processing tasks, |
|
17 |
|
18 - to generate professional documents, |
|
19 |
|
20 - use version control effectively – for both code and documents, |
|
21 |
|
22 - automate tasks by writing shell scripts and python scripts, |
|
23 |
|
24 - realise the impact of coding style and readbility on quality, |
|
25 |
|
26 - 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, |
|
27 |
|
28 - generate 2D and simple 3D plots, |
|
29 |
|
30 - debug programs using a standardised approach, |
|
31 |
|
32 - understand the importance of tests and the philosophy of Test Driven Development, |
|
33 |
|
34 - write unit tests and improve the quality of code. |
|
35 |
|
36 |