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)