The course teaches how to design machine learning systems that are robust to domain shifts and able to learn continuosly in the presence of ever-changing data. The course will provide a characterization and overview of the several problems in this area, including transfer learning, online learning, continual learning, open set recognition, domain adaptation, meta learning.