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)
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