I teach courses both at the graduate and undergraduate level. At the undergraduate level, I regularly teach CE 3105 Mechanics of Fluids Laboratory. At graduate level, I have taught a wide range of courses in water resources and environmental engineering as well as civil engineering systems. I have developed an online certification program at Texas Tech titled – Data and Informatics for Civil Engineers which focuses on the use of data-driven modeling techniques for analysis and design of civil engineering systems.

Courses I teach for the Data and Informatics in Civil Engineering (DICE) Graduate Certification

CE 5315 Probabilistic Methods for Civil Engineers
In this course we take an indepth look at probability theory and see how they can be used for civil engineering analysis and design. Examples cover all sub-disciplines of civil engineering and range from studies focuses on flood control, resilience to droughts and climate change, reliability based geotechnical analysis, traffic congestion and air pollution problems. Students are exposed to a wide range of probabilistic methods including Queuing theory, Markov Chains, Kernel Density Estimation and Copula Theory. The R statistical and programming environment is used extensively with real-world datasets.(Click here for syllabus)
CE 5319 Machine Learning for Civil Engineers
The accessibility of big datasets and computational advancements in artificial intelligence (AI) and machine learning (ML) is transforming civil engineering research and practice. The availability of high resolution data coupled with AI & ML models allows us to model highly nonlinear phenomena and processes that are ubiquitous in civil engineering. In this course we shall survey a broad range of ML algorithms to develop models for civil engineering applications. We shall look at both classical ML models as well as newer methods such as boosting, bagging, random forests and deep learners with a particular emphasis on spatio-temporal data. The course will use Python programming language in Anaconda environment. (Click here for syllabus)
CE 5310 Numerical Methods for Engineers
A solid understanding of numerical methods is essential for computational civil engineering, be it the use of finite difference and finite element methods or machine learning techniques. This course provides a comprehensive overview of a wide range of numerical analysis methods such as root finding, solving systems of linear and nonlinear equations, numerical matrix algebra, performing integration and solving differential equations. The course makes extensive use of  Python with some R programming as well (Click here for syllabus).
CE 5331 Computational Skills for Engineers
The course focuses on teaching students the Python ecosystem using engineering examples.  The course is setup in a bootcamp format with the first part focused on fundamentals of Python and the second part focuses on a wide range of applications including optimization, solving differential equations, text mining, geographic information systems (GIS), physical computing (software-hardware integrations) and creating cloud-based dashboards.  No prior experience in Python is assumed. (Click here for syllabus)