  Deep neural networks (DNNs) are instrumental in realizing complex perception
systems. As many of these applications are safety-critical by design,
engineering rigor is required to ensure that the functional insufficiency of
the DNN-based perception is not the source of harm. In addition to conventional
static verification and testing techniques employed during the design phase,
there is a need for runtime verification techniques that can detect critical
events, diagnose issues, and even enforce requirements. This tutorial aims to
provide readers with a glimpse of techniques proposed in the literature. We
start with classical methods proposed in the machine learning community, then
highlight a few techniques proposed by the formal methods community. While we
surely can observe similarities in the design of monitors, how the decision
boundaries are created vary between the two communities. We conclude by
highlighting the need to rigorously design monitors, where data availability
outside the operational domain plays an important role.
