Let H = (V, E) be a hypergraph. A conflict-free coloring of H is an assignment of colors to V such that, in each hyperedge e ∈ E, there is at least one uniquely-colored vertex. This notion is an extension of the classical graph coloring. Such colorings arise in the context of frequency assignment to cellular antennae, in battery consumption aspects of sensor networks, in RFID protocols, and several other fields. Conflict-free coloring has been the focus of many recent research papers. In this paper, we survey this notion and its combinatorial and algorithmic aspects.