This course covers the fundamental programming concepts and skills using Python programming language. Python has an easy-to-read and easy-to-write syntax and it comes with powerful libraries that are useful for environmental engineering applications. This course is intended for students with no or little prior programming experience. The course begins with a short introduction to python programming environments (command line, the Integrated Development Environment (IDE), Jupyter notebooks). Then, the course covers a range of topics, such as data types, variables, expressions, flow control, functions, loops, strings, files, collections, data manipulation using Pandas and data visualization using Matplotlib, and finally, applications and study cases. When the student finishes this course, he/she will be able to write python programs for a variety of hydrological applications and environmental engineering applications such as hydrological modelling, data and time series analysis, and remote sensing.


Upon the successful completion of this course, you will be able to

  1. Write python code and handle errors.
  2. Explain the basic concepts of object-oriented programming.
  3. Create Python programs that analyse and visualize hydrological data.
  4. Implement Python programs for hydrological and environmental applications and case studies.

The main objective of this course is to implement an integrated water resources management project and develop the necessary technical expertise in all water related aspects of (semi)-arid river basin modelling. The goal is to enhance the students' understanding of the web of interactions between different technical and non-technical relations in managing water resources at the river basin scale in an integrated manner.

This course covers the fundamental programming concepts and skills using Python programming language. Python has an easy-to-read and easy-to-write syntax and it comes with powerful libraries that are useful for environmental engineering applications. This course is intended for students with no or little prior programming experience. The course begins with a short introduction to python programming environments (command line, the Integrated Development Environment (IDE), Jupyter notebooks). Then, the course covers a range of topics, such as data types, variables, expressions, flow control, functions, loops, strings, files, collections, data manipulation using Pandas and data visualization using Matplotlib, and finally, applications and study cases. When the student finishes this course, he/she will be able to write python programs for a variety of hydrological applications and environmental engineering applications such as hydrological modelling, data and time series analysis, and remote sensing.


Upon the successful completion of this course, you will be able to

  1. Write python code and handle errors.
  2. Explain the basic concepts of object-oriented programming.
  3. Create Python programs that analyse and visualize hydrological data.
  4. Implement Python programs for hydrological and environmental applications and case studies.

This course aims to introduce the students to different statistical methods and approaches for the analysis and problem solving in hydrology. Several topics will be covered including an introduction to stochastic hydrology, discrete and continuous probability distributions, hypothesis testing and parameter estimation, parametric and non-parametric tests, correlation, linear regressing, comparing means using parametric and non-parametric tests, analysis of hydrologic extremes, and the hydrologic time-series analysis and modeling.

Upon the successful completion of this course, the students will be able to: 

1. Recognize the significance of stochastic hydrology, and demonstrate an understanding of the mathematical statistics, probability theory, and the probability distributions of hydrologic variables. 

2. Estimate the uncertainty of mathematical/hydrological modeling. 

3. Implement the correct statistical test or tool to analyze and model different hydrologic parameters using computer software. 

4. Apply the appropriate statistical techniques to organize and analyze hydrologic timeseries using computer software

IWRM course introduces water resources in semi-arid, arid regions, and challenges facing water sector. It discusses methods of sustainability, and management theories of water resources. The course includes the effect of increasing water demand in different sectors on the availability, quality of sources. Special attention will give to the economic, environmental impact of the integration concept. It analyzes the interrelations among water sources, water uses, and the important of water sustainability. The course offer student to learn how GIS-technique, and relevant software can apply in managing water sources. The goal of this course is to understand the importance of integrated water management for the water security and socio-economic development of the region. This can only be achieved by understanding the unique hydrologic conditions and semi- aquatic ecosystems of the region. Integrated water resources management, Eco hydrological and ecosystem-based approaches and nature-based solutions will be taught. New innovative methodologies (models and GIS) and technologies (UAVs) to promote sustainable water management will be learned.