Courses

Throughout my academic career, I have been deeply engaged with the field of industrial engineering. Various courses have not only shaped my thinking but have also laid a solid foundation for my knowledge. This journey has endowed me with a diverse set of skills and has sharpened my critical thinking abilities, a testament to the guidance of my professors and researchers at the ISE, CSE, and MATH departments of Lehigh University, as well as the IE and MATH departments of Ferdowsi University of Mashhad.

Here, I would like to highlight the courses and experiences that have been particularly significant to me along this path. These elements have played a crucial role in my development and have been instrumental in shaping my professional outlook.

Lehigh University (LU)

CSE 475 - Principles and Practice of Parallel Computing

Year: 2021 Fall

Instructor: Roberto Palmieri

Department: Computer Science & Engineering

Parallel computer architectures, parallel languages, parallelizing compilers and operating systems. Design, implementation, and analysis of parallel algorithms for scientific and data-intensive computing. This is a graduate version of CSE 375.

ISE 456 - Conic Optimization

Year: 2021 Fall

Instructor: Luis F. Zuluaga

Department: Industrial & Systems Engineering

Optimization problems arise very often in industry, and the ability to solve them is a competitive advantage. However, modeling an Optimization problem requires special tools and skills. A problem that is not understood or modeled correctly can lead to the wrong solution or can be very difficult to solve. The purpose of this course is to provide you with the tools and knowledge necessary to model practical Optimization problems and solve them efficiently. We will see how to properly formulate a problem, how to choose an adequate solver, and how to solve practical applications with state-of-the-art solvers. The course begins with an introduction to models, convexity and relaxations. Then, it focuses on Linear Programming and Integer Programming. In the final part, we’ll talk about Nonlinear Programming and Stochastic Programming. Most of the problems and models presented will also be specified in a modeling language, and we will solve them with state-of-the-art software.

ISE 444 - Optimization Methods in Machine Learning

Year: 2021 Spring

Instructor: Martin Takáč

Department: Industrial & Systems Engineering

Machine learning models and advanced optimization tools that are used to apply these models in practice. Machine learning paradigm, machine learning models, convex optimization models, basic and advanced methods for modern convex optimization.

ISE 416 - Dynamic Programming

Year: 2021 Spring

Instructor: Boris Defourny

Department: Industrial & Systems Engineering

This course is concerned with the dynamic programming approach to sequential decision making under uncertainty, exact solution algorithms, and approximate methods adapted to large-scale problems. Value iteration, policy iteration and lambda-policy iteration are introduced and analyzed using fixed-point theory. The linear optimization approach to dynamic programming is introduced. Special policy structures are studied. Algorithms based on sampling and on the use of linear approximation architectures are covered.

ISE 407 - Computational Methods in Optimization

Year: 2020 Fall

Instructor: Ted Ralphs

Department: Industrial & Systems Engineering

Introduction to a wide range of topics related to computational methods encountered in the implementation of optimization algorithms. Lectures focus primarily on theoretical aspects of computation, but with the goal of understanding computation in practice. Assigned exercises focus on employing computational methods in real-world applications. Topical coverage will include data structures, design and analysis of algorithms (sequential and parallel), programming paradigms and languages, development tools and environments, numerical analysis, and matrix computations.

ISE 467 - Mining of Large Datasets

Year: 2020 Fall

Instructor: Martin Takáč

Department: Industrial & Systems Engineering

Explores how large datasets are extracted and analyzed. Discusses suitable algorithms for high dimensional data, graphs, and machine learning. Introduces the use of modern distributed programming models for large-scale data processing. A graduate version of ISE 367 that will require graduate students to do more rigorous assignments. Credit will not be given for both ISE 367 and ISE 467. Students are expected to have basic knowledge of programming and probability.

ISE 417 - Nonlinear Optimization

Year: 2020 Spring

Instructor: Daniel P. Robinson

Department: Industrial & Systems Engineering

Advanced topics in mathematical optimization with emphasis on modeling and analysis of nonlinear problems. Convex analysis, unconstrained and constrained optimization, duality theory, Lagrangian relaxation, and methods for solving nonlinear optimization problems, including descent methods, Newton methods, conjugate gradient methods, and penalty and barrier methods.

ISE 402 - Applied Models in Operations Research

Year: 2020 Spring

Instructor: Martin Takáč

Department: Industrial & Systems Engineering

Applied models in operations research, including applications in supply chain, energy, health care, and other fields. Seminal models, theorems, algorithms, and experience in translating practical problems into mathematical ones.

ISE 418 - Discrete Optimization

Year: 2020 Spring

Instructor: Ted Ralphs

Department: Industrial & Systems Engineering

This course will cover both the theory and the practice of integer programming. The course will be divided into five blocks described below, covering complexity, computation, and polyhedral theory. We will discuss methods such as branch and bound, branch and cut, Lagrangian relaxation, and Dantzig-Wolfe decomposition, as well as the use of commercial software and frameworks for solving integer programs.

STAT 410 - Random Processes and Applications

Year: 2019 Fall

Instructor: Bennett Eisenberg

Department: Mathematics

Theory and applications of stochastic processes. Limit theorems, introduction to random walks, Markov chains, Poisson processes, birth and death processes, and Brownian motion. Applications to financial mathematics, biology, business and engineering.

ISE 406 - Introduction to Mathematical Optimization

Year: 2019 Fall

Instructor: Tamás Terlaky

Department: Industrial & Systems Engineering

Algorithms and techniques for the solution and analysis of deterministic linear optimization models used in operations research. Linear and integer linear optimization problems. Modeling techniques and fundamental algorithms and their complexity properties. Available open source and commercial solvers discussed.

ISE 401 - Convex Analysis

Year: 2019 Fall

Instructor: Frank E. Curtis

Department: Industrial & Systems Engineering

Theory and applications of convex analysis, particularly as it relates to convex optimization and duality theory. Content of the course emphasizes rigorous mathematical analysis as well as geometric and visually intuitive viewpoints of convex objects and optimization problems.

Ferdowsi University of Mashhad (FUM)

IE - Sequencing and Scheduling

Year: 2013 Fall

Instructor: Mohammad Ranjbar

Department: Industrial Engineering

An advanced study of a variety of production planning, scheduling, and distribution models and systems. Heuristic, algorithmic, and analytical methodologies are explored in the context of production systems. Specific topics include single machine sequencing, flow shop and job shop scheduling, and flexible assembly scheduling. Also discussed are resource constrained project scheduling, timetabling, economic lot scheduling, workforce scheduling, and scheduling in the supply chain.

IE - Multi-Criteria Decision Making Methods

Year: 2013 Fall

Instructor: Majid Salari

Department: Industrial Engineering

MCDM is a collection of methods for trading-off different alternatives performance on multiple conflicting objectives; methods discussed include weighted sum scoring models, swing weights, TOPSIS, DEA, AHP, and rank-based methods. Decision Analysis is the prescriptive model for rationally maximizing subjective expected utility in the face of uncertainty; it is particularly powerful for dealing with sequential decisions, quantifying the value of information, assessing and incorporating subjective probabilities, and doing Bayesian updates of probabilities as new information becomes available. Decision process considerations go beyond the paradigm of a single well-defined decision maker and mathematical method. Potential topics we could cover include industrial analytics, composite indicators (“US News & World Report” style ratings), balanced scorecards, “dashboards” of key performance indicators, group processes, and matching a decision method to the circumstances at hand.

IE - Design of Experiments

Year: 2014 Spring

Instructor: Alireza Shadman

Department: Industrial Engineering

Quite simply this course covers design and analysis of experiments. Experimentation is fundamental to science and engineering. Two key aspects of experimentation are i) how one sets up and conducts the experiment (experimental design), and ii) how one analyzes the results obtained from the experiment (analysis). It turns out that designing and analyzing experiments in an efficient and fair way can be tricky, thus the need for this course. The methodology is of only moderate complexity from a mathematical and statistical viewpoint. However, computers are necessary to perform much of the analysis. We will be using the Statgraphics statistical analysis package.

IE - Queuing Systems

Year: 2014 Spring

Instructor: Mohammadali Pirayesh

Department: Industrial Engineering

Queueing theory is a powerful tool for analysis and design of a wide range of engineering systems. Modern applications include: inventory and manufacturing systems; sharing economy platforms; transportation; service systems; telecommunication, informaton and computing systems; network clouds; peer-to-peer networks; and others. This course is an introduction to queueing systems and their applications in engineering. Topics include both classical single-stage models and queueing networks. Students will learn how to apply key ideas, methods and tools of queueing theory, such as: Markov processes, embedded Markov chains, PASTA property, reversibility, product-form stationary distributions, stochasic stability, asymptotic analysis.

IE - Fuzzy Sets Theory

Year: 2014 Spring

Instructor: Babak Rezaee Khabooshan

Department: Industrial Engineering

Theory of Fuzzy Sets: Classical Sets vs Fuzzy Sets, Types of Fuzzy Sets, Operations on Fuzzy Sets, Zadeh’s Extension Principle, Fuzzy Relations, Fuzzy Relational Equations, Possibility Theory and Fuzzy Measures. Applications of Fuzzy Sets: Approximate Reasoning, Fuzzy Relational Inference, Fuzzy Controllers, Efficiency and Effectiveness of inference schemes, Functional Approximation capabilities.

MATH - Integer Programming

Year: 2014 Fall

Instructor: Taghizadeh Kakhki

Department: Industrial Engineering

This course is an introduction to the theory and practice of discrete optimization. We will discuss integer programming applications and formulations, complexity theory, and classification of problems into “easy” and “hard” types. For “easy” problems, we will discuss efficient algorithms based on linear programming methods and on the theory of matroids. For hard problems, algorithmic approaches based on enumeration and on polyhedral description will be discussed, as well as heuristic approximation methods.

IE - Operations Research-I

Year: 2010 Spring

Instructor: Majid Salari

Department: Industrial Engineering

Operations Research I provides a comprehensive introduction to optimization techniques used in linear programming and beyond. The course begins with foundational concepts of linear programming and progresses through linear algebra, convex analysis, and polyhedral sets. Students learn the simplex method, followed by advanced topics such as the two-phase method and Big M method, and the revised simplex method with bounded variables. The course also covers dual problems, emphasizing the relationships between primal and dual solutions. In addition, it delves into parametric programming and the nuances of sensitivity analysis, including the 100% rule. Practical applications are explored through transportation and assignment problems, equipping students with the skills to apply linear programming techniques to solve real-world optimization challenges effectively.

IE - Operations Research-II

Year: 2010 Fall

Instructor: Majid Salari

Department: Industrial Engineering

Operations Research II is an advanced course that explores optimization techniques and mathematical models for effective decision-making across various scenarios. It starts with a review of fundamental concepts in operations research, followed by a deep dive into integer programming, including different types such as pure, mixed, and binary, and techniques like rounding and cutting-plane algorithms. The course also covers nonlinear programming, highlighting calculus fundamentals, derivative applications, and optimization methods such as Lagrange multipliers and KKT conditions. Dynamic programming is discussed with a focus on both deterministic and stochastic problems, and the course concludes with game theory, examining strategies in two-player zero-sum games and their solutions through linear programming and geometric approaches. This comprehensive curriculum aims to develop proficiency in handling complex optimization problems applicable in diverse sectors.

IE - Discrete Event Simulation

Year: 2013 Spring

Instructor: Mohammad Ranjbar

Department: Industrial Engineering

This course focuses on designing models to simulate discrete event systems, particularly for analyzing and designing industrial systems. Students learn through the use of high-order programming languages and commercial software, specifically targeting the application of these models to real-world industrial challenges. The course objectives include an introduction to stochastic systems modeling, data collection and analysis, and the application of queuing systems for simulation preparation. Students will gain expertise in discrete-event simulation concepts and their practical applications, create simulation models and animations using Arena software, and understand model verification processes. Additional topics covered are input modeling, statistical output analysis, effective report writing, and the use of random-number generators and random variable generation to assess their impact on simulations. The course also emphasizes experimentation and techniques for system improvement, preparing students to implement advanced simulation models that enhance operational efficiency and decision-making in industrial settings.