  There is a growing cross-disciplinary effort in the broad domain of
optimization and learning with streams of data, applied to settings where
traditional batch optimization techniques cannot produce solutions at time
scales that match the inter-arrival times of the data points due to
computational and/or communication bottlenecks. Special types of online
algorithms can handle this situation, and this article focuses on such
time-varying optimization algorithms, with emphasis on Machine Leaning and
Signal Processing, as well as data-driven Control. Approaches for the design of
time-varying or online first-order optimization methods are discussed, with
emphasis on algorithms that can handle errors in the gradient, as may arise
when the gradient is estimated. Insights on performance metrics and
accompanying claims are provided, along with evidence of cases where algorithms
that are provably convergent in batch optimization may perform poorly in an
online regime. The role of distributed computation is discussed. Illustrative
numerical examples for a number of applications of broad interest are provided
to convey key ideas.
