We consider the problem of estimating the average of a huge set of values.
That is,
given oracle access to an arbitrary function $f:\{0,1\}^n\mapsto[0,1]$,
we need to estimate $2^{-n} \sum_{x\in\{0,1\}^n} f(x)$
upto an additive error of $\epsilon$.
We are allowed to employ a randomized algorithm which may err
with probability at most $\delta$.
We survey known algorithms for this problem
and focus on the ideas underlying their construction.
In particular, we present an
algorithm which makes $O(\epsilon^{-2} \cdot \log(1/\delta))$ queries
and uses $n+O(\log(1/\epsilon))+O(\log(1/\delta))$ coin tosses,
both complexities being very close to the corresponding lower bounds.