  Graphs naturally appear in several real-world contexts including social
networks, the web network, and telecommunication networks. While the analysis
and the understanding of graph structures have been a central area of study in
algorithm design, the rapid increase of data sets over the last decades has
posed new challenges for designing efficient algorithms that process
large-scale graphs. These challenges arise from two usual assumptions in
classical algorithm design, namely that graphs are static and that they fit
into a single machine. However, in many application domains, graphs are subject
to frequent changes over time, and their massive size makes them infeasible to
be stored in the memory of a single machine.
  Driven by the need to devise new tools for overcoming such challenges, this
thesis focuses on two areas of modern algorithm design that directly deal with
processing massive graphs, namely dynamic graph algorithms and graph
sparsification. We develop new algorithmic techniques from both dynamic and
sparsification perspective for a multitude of graph-based optimization problems
which lie at the core of Spectral Graph Theory, Graph Partitioning, and Metric
Embeddings. Our algorithms are faster than any previous one and design smaller
sparsifiers with better (approximation) quality. More importantly, this work
introduces novel reduction techniques that show unexpected connections between
seemingly different areas such as dynamic graph algorithms and graph
sparsification.
