  Interference is traditionally viewed as a performance limiting factor in
wireless communication systems, which is to be minimized or mitigated.
Nevertheless, a recent line of work has shown that by manipulating the
interfering signals such that they add up constructively at the receiver side,
known interference can be made beneficial and further improve the system
performance in a variety of wireless scenarios, achieved by symbol-level
precoding (SLP). This paper aims to provide a tutorial on interference
exploitation techniques from the perspective of precoding design in a
multi-antenna wireless communication system, by beginning with the
classification of constructive interference (CI) and destructive interference
(DI). The definition for CI is presented and the corresponding mathematical
characterization is formulated for popular modulation types, based on which
optimization-based precoding techniques are discussed. In addition, the
extension of CI precoding to other application scenarios as well as for
hardware efficiency is also described. Proof-of-concept testbeds are
demonstrated for the potential practical implementation of CI precoding, and
finally a list of open problems and practical challenges are presented to
inspire and motivate further research directions in this area.
