Almost all modern technology relies on automatic control for safe and efficient functioning. Complex systems rely on a variety of sensors to infer the system’s state, which is then used to take decisions on desirable actions. In this course, we will cover some methods and tools used for state estimation of such systems, with a particular focus of the Kalman Filter. The course will recapitulate modeling uncertainty using random variables, and then use this language to develop state estimation strategies. In addition to the Kalman filter for linear systems, we will give an overview of the extensions for nonlinear systems (the Extended Kalman Filter, and the Unscented Kalman Filter). We will also introduce the Particle Filter as another approach for state estimation, and discuss the conditions under which the different methods may be appropriate. At the end of the course the student will have an understanding for why the strategies work (and when they may not work), and be able to implement them.