Courses

Graduate Courses

BLG561E Deep Learning (Fall)

Link to syllabus

This is a graduate level course on introduction to deep learning. Course covers some theoretical preliminaries but the emphasis is on practical applications. Prior exposition to classical machine learning methods is useful but not mandatory. Course starts with a general overview of neural networks (NNs) and shows why deep learning methods became prevalent in the last decade. Next, course goes through different extensions of NNs, such as convolutional NNs, recurrent NNS, autoencoders and generative models. With each topic, a practical application is also presented and students learn how to train and test different deep learning methods. Applications include, but not limited to, computer vision, language/text processing and reinforcement learning.

UUM535E Engineering Mathematics (Fall)

Link to the syllabus

This is a graduate level course on mathematics. It is usually taught by putting emphasis on computational aspects, but my take on this course is a little different. I believe engineering students do not get enough exposure to proof-based rigorous mathematics, hence I take this opportunity to teach students about doing rigorous math, how to solve complex problems and let them appreciate the beauty and excitement behind doing proofs. The course content is a combination of fundamental topics from linear algebra, multivariable calculus and complex analysis.

UUM526E Optimization Techniques in Engineering (Spring)

Link to the syllabus

This is a graduate level introductory course on optimization. It is assumed that students are familiar with linear algebra and multivariable calculus. The course starts with fundamentals of optimization and then moves toward introducing and proving convergence properties of first and second order unconstrained optimization algorithms. Second part of the course focuses on constrained problems, both linear and nonlinear programming problems/algorithms are analyzed extensively. Course concludes with an introduction to convex optimization theory. Several engineering applications are demonstrated throughout the course and students also do a term project that allows them to apply the course material to their thesis projects.

UUM534E Flight Control Systems (Fall)

Link to the syllabus

This is a graduate level advanced course on flight control systems. It is assumed that students are familiar with linear control systems, as well as basic flight dynamics. The course is project-driven, at the beginning of the course each team selects an aircraft, and step by step each team i) constructs a 6DOF model of the aircraft, ii) trim and linearize the model, iii) design autopilots using classical control theory and iv) design autopilots using modern control theory. Grade is completely based on project progress reports. By the end of this course, each student ends up having a complete 6DOF aircraft model along with a collection of baseline controllers, which they can use to kick-off their flight control research.

 

Undergraduate Courses

MAT271E Probability and Statistics (Spring)

Link to the syllabus

This is an undergraduate level introductory course on probability theory and its applications. Since artificial intelligience is one of my major research interests, I teach this course from this perspective and try to expose students to applications of machine learning. First part of the course focuses on basic probability theory, such as discrete and continous random variables and Bayes’ theorem, concluding with an introduction to stochastic processes, such as Markov, Bernoulli and Poisson processes. Second part of the course focuses on statistics, and mainly analyzes classification and regression problems, from both frequentist and Bayesian perspectives. I also try to give many machine learning and probabilistic analysis applications on different engineering domains, ranging from aerospace engineering to operations research.

UCK337E Introduction to Optimization (Spring)

Syllabus is under preparation.

This is an undergraduate level introductory course on applications of optimization theory to engineering problems. Course starts with some basic mathematical preliminaries regarding optimization theory and then quickly delves into applications. Students are exposed to several different optimization settings (unconstrained, linear, convex etc.) and then learn how to formulate engineering problems in terms of optimization problems. Applications include, but not limited to, structural design, control system design, airline management, signal processing, military operation planning and machine learning. Students also learn how to code a variety of simple optimization algorithms (gradient descent, simplex algorithm etc.) as well as using built-in optimization libraries (such as optimization toolbox in MATLAB).

Past Courses

UUM532E Spacecraft Control Systems (Spring)

Link to the syllabus

This is a graduate level advanced course on spacecraft control systems. It is assumed that students are familiar with linear control systems, as well as basic rigid body dynamics. The course starts with studying some advanced topics in attitude kinematics/dynamics and then gives a general view of spacecraft sensors and actuators. Next, both static and dynamic (i.e. Kalman Filtering) attitude determination methods are developed and the final part of the course focuses on using linear control theory to design attitude control systems. Usually there is some extra weeks left by the end of the course, we utilize that time by introducing fundamentals of missile guidance and control.