  Let $H=(V,E)$ be a hypergraph. A {\em conflict-free} coloring of $H$ is an
assignment of colors to $V$ such that in each hyperedge $e \in 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, and has been the focus of many recent
research papers. In this paper, we survey this notion and its combinatorial and
algorithmic aspects.
