A graph $G=(V, E)$ is called an expander if every vertex subset U of size up to $|V|/2$ has an external neighborhood whose size is comparable to $|U|$. Expanders have been a subject of intensive research for more than three decades and have become one of the central notions of modern graph theory. We first discuss the above definition of an expander and its alternatives. Then we present examples of families of expanding graphs and state basic properties of expanders. Next, we introduce a way to argue that a given graph contains a large expanding subgraph. Finally we research properties of expanding graphs, such as existence of small separators, of cycles (including cycle lengths), and embedding of large minors.