Below is a list of major and minor courses I have completed at MIT. Click each course title for a full description.

Computational Modeling and Optimization

18.335 - Introduction to Numerical Methods

Advanced introduction to numerical analysis: accuracy and efficiency of numerical algorithms. In-depth coverage of sparse-matrix/iterative and dense-matrix algorithms in numerical linear algebra (for linear systems and eigenproblems). Floating-point arithmetic, backwards error analysis, conditioning, and stability. Other computational topics (e.g., numerical integration or nonlinear optimization) may also be surveyed. Final project involves some programming.
Instructor: Prof. Steven Johnson

16.920 - Numerical Methods for Partial Differential Equations

Covers the fundamentals of modern numerical techniques for a wide range of linear and nonlinear elliptic, parabolic, and hyperbolic partial differential and integral equations. Topics include mathematical formulations; finite difference, finite volume, finite element, and boundary element discretization methods; and direct and iterative solution techniques. The methodologies described form the foundation for computational approaches to engineering systems involving heat transfer, solid mechanics, fluid dynamics, and electromagnetics. Computer assignments requiring programming.
Instructor: Prof. Qiqi Wang

16.940 - Numerical Methods for Stochastic Modeling and Inference

Advanced introduction to numerical methods for treating uncertainty in computational simulation. Draws examples from a range of engineering and science applications, emphasizing systems governed by ordinary and partial differential equations. Uncertainty propagation and assessment: Monte Carlo methods, variance reduction, sensitivity analysis, adjoint methods, polynomial chaos and Karhunen-Loève expansions, and stochastic Galerkin and collocation methods. Interaction of models with observational data, from the perspective of statistical inference: Bayesian parameter estimation, statistical regularization, Markov chain Monte Carlo, sequential data assimilation and filtering, and model selection.
Instructor: Prof. Youssef Marzouk

15.094 - Robust Modeling, Optimization & Computation

Introduces modern robust optimization, including theory, applications, and computation. Presents formulations and their connection to probability, information and risk theory for conic optimization (linear, second-order, and semidefinite cones) and integer optimization. Application domains include analysis and optimization of stochastic networks, optimal mechanism design, network information theory, transportation, pattern classification, structural and engineering design, and financial engineering. Students formulate and solve a problem aligned with their interests in a final project.
Instructor: Prof. Dimitris Bertsimas

15.095 - Machine Learning Under a Modern Optimization Lens

Develops algorithms for central problems in machine learning from a modern optimization perspective. Topics include sparse, convex, robust and median regression; an algorithmic framework for regression; optimal classification and regression trees, and their relationship with neural networks; how to transform predictive algorithms to prescriptive algorithms; optimal prescriptive trees; and robust classification. Also covers design of experiments, missing data imputations, mixture of Gaussian models, exact bootstrap, and sparse matrix estimation, including principal component analysis, factor analysis, inverse co-variance matrix estimation, and matrix completion.
Instructor: Prof. Dimitris Bertsimas

18.337 - Parallel Computing and Scientific Machine Learning

Introduction to scientific machine learning with an emphasis on developing scalable differentiable programs. Covers scientific computing topics (numerical differential equations, dense and sparse linear algebra, Fourier transformations, parallelization of large-scale scientific simulation) simultaneously with modern data science (machine learning, deep neural networks, automatic differentiation), focusing on the emerging techniques at the connection between these areas, such as neural differential equations and physics-informed deep learning. Provides direct experience with the modern realities of optimizing code performance for supercomputers, GPUs, and multicores in a high-level language.
Instructors: Christopher Rackauckas

6.S191 - Introduction to Deep Learning

MIT's introductory course on deep learning methods with applications to computer vision, natural language processing, biology, and more! Students will gain foundational knowledge of deep learning algorithms and get practical experience in building neural networks in TensorFlow. Course concludes with a project proposal competition with feedback from staff and panel of industry sponsors.
Instructors: Alexander Amini, Ava Soleimany

16.110 - Flight Vehicle Aerodynamics

Aerodynamic analysis of flight vehicles using analytical, numerical, and experimental techniques separately and in combination. Matched asymptotic expansions. Farfield behavior. Finite wing theory. Trefftz-plane analysis. Laminar and turbulent boundary layers. Slender body theory. Calculation and measurement of drag components. Aerodynamic stability derivatives.
Instructor: Prof. Mark Drela

Autonomous Systems

16.322 - Stochastic Estimation and Control

Estimation and control of dynamic systems. Brief review of probability and random variables. Classical and state-space descriptions of random processes and their propagation through linear systems. Frequency domain design of filters and compensators. The Kalman filter to estimate the states of dynamic systems. Conditions for stability of the filter equations.
Instructor: Prof. Nicholas Roy

16.485 - Visual Navigation for Autonomous Vehicles

Covers both theoretical foundations of vision-based navigation and hands-on experience on real platforms using ROS, the Robot Operating System. Lectures will explore fundamental tools and results from a wide spectrum of disciplines (optimization, estimation, geometry, probabilistic inference) that underlie modern techniques for real-time 3D computer vision (including visual-inertial navigation and SLAM), control and trajectory optimization, and machine learning. Students will be given a real platform (a mini racecar or a drone) and will be able to implement and test state-of-the-art algorithms and learn about the bleeding edge of autonomous navigation. The final portion of the class includes an individual or team-based project that has the goal of advancing the state of the art in vision-based navigation, according to students’ interest. The platforms used for the labs and the final project include a mini race car (equipped with LIDAR, stereo cameras, and IMU) and the Intel Aero Drone (equipped with multiple cameras, distance sensor, and IMU)
Instructor: Prof. Luca Carlone

16.412 - Cognitive Robotics

Highlights algorithms and paradigms for creating human-robot systems that act intelligently and robustly, by reasoning from models of themselves, their counterparts and their world. Examples include space and undersea explorers, cooperative vehicles, manufacturing robot teams and everyday embedded devices. Themes include architectures for goal-directed systems; decision-theoretic programming and robust execution; state-space programming, activity and path planning; risk-bounded programming and risk-bounded planners; self-monitoring and self-diagnosing systems, and human-robot collaboration. Student teams explore recent advances in cognitive robots through delivery of advanced lectures and final projects, in support of a class-wide grand challenge
Instructor: Prof. Brian Williams

General Interest

16.851 - Satellite Engineering

Fundamentals of satellite engineering design, including distributed satellite. Studies orbital environment. Analyzes problems of station keeping, attitude control, communications, power generation, structural design, thermal balance, and subsystem integration. Considers trade-offs among weight, efficiency, cost, and reliability. Discusses choice of design parameters, such as size, weight, power levels, temperature limits, frequency, and bandwidth. Examples taken from current satellite systems.
Instructor: Prof. Kerri Cahoy

Communication and Professional Development

16.995 - Doctoral Research & Communication Seminar

Presents fundamental concepts of technical communication. Addresses how to articulate a research problem, as well as the communication skills necessary to reach different audiences. The primary focus is on technical presentations, but includes aspects of written communication. Students give two technical talks during the term, and provide oral and written feedback to each other.
Instructors: Prof. Nicholas Roy, Prof. Paulo Lozano


A two-week professional communication intensive to a limited number of participants. This is an excellent opportunity to get in-person feedback on communication skills from an extraordinarily knowledgeable instructor. Part of being good at what you do is being able to explain what it is that you do. Use this free communication intensive to learn and workshop six skills useful to ensure your research connects with a range of audiences: 1) Choose appropriate language to avoid overwhelming your audience 2) Use narrative to explain why your research is important 3) Synthesize prior work to convey where yours fits in by highlighting differences 4) Control focus in order to minimize cognitive load when presenting data 5) Leave time for an audience to process when explaining how something works 6) Distill your message when time and attention spans are short
Instructor: Dr. Tony Eng