I'm a firm believer in hands-on projects that are motiviated by real-world problems. This leads me to include substantial projects in most of my classes. I also think that students learn a great deal by working on a team, so these projects are typically done in small groups.
Most of the robotics classes I teach involve a fair amount of probability, linear algebra, and (of course) programming. When these courses are not pre-requisites, we'll do a brief crash course, but we won't dumb the material down to avoid that material. So, if you're a bit rusty, I highly recommend reviewing before the term begins. For Linear Algebra, I highly recommend Gil Strang's Linear Algebra videos.
I have also been experimenting with introductory computer programming classes (EECS280), offering special sections that use a more "bottom-up" approach and more application-oriented programming activities.
EECS280x W16, Programming and Introductory Data Structures, Lecture Recordings
EECS280x F15, Programming and Introductory Data Structures
EECS598 F13, Autonomous Automobiles (website)
EECS598 F10, Multi-Robot Autonomous Systems
EECS492 W10, Introduction to Artificial Intelligence (wiki)
EECS498 F09, Autonomous Robotics Laboratory (wiki)
EECS598 W09, Algorithms for Robotics
EECS492 F08, Introduction to Artificial Intelligence