This course is a seminar-style hands-on survey of approaches to control and learning in single and multi-robot systems. We will read original seminal papers that track the development of the field and overview the different state-of-the-art approaches to mobile robot control, including reactive, hybrid, and behavior-based based systems. The discussion will focus on the issues of resolving the fundamental conflict between thinking and acting, i.e., high-level deliberation and real-time control. Different approaches and robot control architectures for addressing this issue will be covered and discussed. In the second part of the course we will discuss scaling up robot control to multi-robot systems and swarms of robots. The control architectures discussed in the first part of the semester will be revisited in the context of scaling up to distributed systems. Finally, we will address adaptation and learning in single and multi-robot systems, and deal with the many challenges those problems present. Several other relevant topics will be covered at least briefly, including biological inspirations for robot control and philosophical foundations. All topics will be illustrated with implemented systems and demonstrated with videos.