Software Engineering for Engineers and Scientists
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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.


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.


The course will consist of the following modules.

  1. Using Linux Tools
  2. Version control systems
  3. Basic Python
  4. Advanced Python
  5. Test Driven Development


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