  We review clustering as an analysis tool and the underlying concepts from an
introductory perspective. What is clustering and how can clusterings be
realised programmatically? How can data be represented and prepared for a
clustering task? And how can clustering results be validated?
Connectivity-based versus prototype-based approaches are reflected in the
context of several popular methods: single-linkage, spectral embedding,
k-means, and Gaussian mixtures are discussed as well as the density-based
protocols (H)DBSCAN, Jarvis-Patrick, CommonNN, and density-peaks.
