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.
ROB599 F19, Programming for Robotics, (website)
On leave
EECS280x W16, Programming and Introductory Data Structures, Lecture Recordings
EECS280x F15, Programming and Introductory Data Structures
On sabbatical
EECS467 W14, Autonomous Robotics Laboratory (wiki, apps)
EECS598 F13, Autonomous Automobiles (website)
EECS498 W13, Autonomous Robotics Laboratory (wiki, apps)
EECS568 F12, Mobile Robotics: Methods and Algorithms (wiki, apps)
EECS498 W12, Autonomous Robotics Laboratory (wiki, apps)
EECS568 F11, Mobile Robotics: Methods and Algorithms (wiki, apps)
EECS492 W11, Introduction to Artificial Intelligence (wiki, apps)
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