1 Introduction  
2 Background  
2.1 Domain Adaptation and Transfer Learning: Notation  
3 What is a Domain? From the Notion of Domain to Variety Space and Related Problems  
4 Model-Centric Approaches  
4.1 Feature-Centric Methods  
4.2 Loss-Centric Methods  
5 Data-Centric Methods  
6 Hybrid Approaches  
7 Challenges and Future Directions  
8 Conclusion