  A coreset (or core-set) of an input set is its small summation, such that
solving a problem on the coreset as its input, provably yields the same result
as solving the same problem on the original (full) set, for a given family of
problems (models, classifiers, loss functions). Over the past decade, coreset
construction algorithms have been suggested for many fundamental problems in
e.g. machine/deep learning, computer vision, graphics, databases, and
theoretical computer science. This introductory paper was written following
requests from (usually non-expert, but also colleagues) regarding the many
inconsistent coreset definitions, lack of available source code, the required
deep theoretical background from different fields, and the dense papers that
make it hard for beginners to apply coresets and develop new ones.
  The paper provides folklore, classic and simple results including
step-by-step proofs and figures, for the simplest (accurate) coresets of very
basic problems, such as: sum of vectors, minimum enclosing ball, SVD/ PCA and
linear regression. Nevertheless, we did not find most of their constructions in
the literature. Moreover, we expect that putting them together in a
retrospective context would help the reader to grasp modern results that
usually extend and generalize these fundamental observations. Experts might
appreciate the unified notation and comparison table that links between
existing results.
  Open source code with example scripts are provided for all the presented
algorithms, to demonstrate their practical usage, and to support the readers
who are more familiar with programming than math.
