  Solving systems of polynomial equations is a central problem in nonlinear and
computational algebra. Since Buchberger's algorithm for computing Gr\"obner
bases in the 60s, there has been a lot of progress in this domain. Moreover,
these equations have been employed to model and solve problems from diverse
disciplines such as biology, cryptography, and robotics. Currently, we have a
good understanding of how to solve generic systems from a theoretical and
algorithmic point of view. However, polynomial equations encountered in
practice are usually structured, and so many properties and results about
generic systems do not apply to them. For this reason, a common trend in the
last decades has been to develop mathematical and algorithmic frameworks to
exploit specific structures of systems of polynomials.
  Arguably, the most common structure is sparsity; that is, the polynomials of
the systems only involve a few monomials. Since Bernstein, Khovanskii, and
Kushnirenko's work on the expected number of solutions of sparse systems, toric
geometry has been the default mathematical framework to employ sparsity. In
particular, it is the crux of the matter behind the extension of classical
tools to systems, such as resultant computations, homotopy continuation
methods, and most recently, Gr\"obner bases. In this work, we will review these
classical tools, their extensions, and recent progress in exploiting sparsity
for solving polynomial systems.
  This manuscript complements its homonymous tutorial presented at the
conference ISSAC 2022.
