Sep 10, 2008 13:53
So when potential hires apply for faculty jobs, one of the questions they're asked is "If you could teach any class you wanted, what would it be?"
While I'm not sure I'm going this route, I do (finally) have a decent answer.
I'd teach "Controls for Computer Scientists"
The syllabus would look something like:
Review of linear algebra, linear regression, over and under-determined linear systems.
Linear discrete time dynamical systems. Laplace transforms. Linear state-space control.
Linearization of non-linear systems. Lyapunov stability. La-Salle invariance principle.
Simple non-linear control based on the above.
Applications primarily drawn from robotics. Heavy programming component in matlab.
Students will write controllers for simulations of mobile robots in Java. Simulation platform provided by instructor.
Prereqs: 15-211, 15-251, Linear algebra, differential equations. Analysis strongly reccomended.
Not covered: Classical controls engineering (i.e. anything representing a control system with
a drawing that looks like a circuit diagram. Most of PID control (except for a transformation which lets
PID control look like proportional control in state space). Bode and Nyquist plots.)
Who should take this course : Computer scientists with solid math backgrounds who want to develop simple control systems for robotics. Anyone who needs to know a little bit of controls, but doesn't need to interact with classical control theorists.
The second semester version of this class (Controls for Computer Scientists II) will cover Dyanmic programming (and the Hamilton Jacobi Bellman equation) Bayesian statistics, machine learning, Markov Chain Monte Carlo, Particle filtering, and will introduce the Kalman filter as a simple extension of the idea of conjugate priors from Bayesian Statistics. Some adaptive control techniques will be introduced as an extension of the non-linear control techniques from the previous course. A prior course in statistics is required, mathematical statistics is strongly reccomended. Students will program in R, matlab and Java/C++/language of their choice.
Edit to add
The machine learning component will focus on on-line learning and reinforcement learning.
What will not be covered in course II: Any of the adaptations to the Kalman filter to make it more suitable for non-linear tracking.