1 Introduction
1.1 A General Overview
1.2 Related Works
2 Definitions and Notation
2.1 Notation
2.2 Causal Model
2.3 The Causal Discovery Problem
2.4 Acyclicity and Faithfulness
2.5 Equivalence Classes
2.6 Sufficiency vs. Insufficiency
2.7 Adding Prior Knowledge
3 Causal Discovery
3.1 Constraint-based Algorithms
3.2 Score-based Algorithms
3.3 Hybrid Algorithms
3.4 Other Methods
4 Causal Discovery with Cycles
4.1 Cyclic SCM
4.2 No Acyclicity Assumption
5 Causal Discovery with Interventions
5.1 Observational vs. Interventional
5.2 Types of Interventions
5.3 Defining the Intervention Target
5.4 Learning with Interventions
5.5 Interventional Algorithms
6 Evaluation and Tuning
6.1 Evaluation Datasets
6.2 Evaluation Metrics
6.3 Parameter Tuning
6.4 Software Packages
7 Practical Applications
7.1 Causal Discovery in Economics
7.2 Causal Discovery in Medicine
7.3 Causal Discovery in Psychology
8 Conclusions and Discussion
8.1 A Brief Summary
8.2 Future Directions