  Sparse Code Multiple Access (SCMA) is a disruptive code-domain non-orthogonal
multiple access (NOMA) scheme to enable \color{black}future massive
machine-type communication networks. As an evolved variant of code division
multiple access (CDMA), multiple users in SCMA are separated by assigning
distinctive sparse codebooks (CBs). Efficient multiuser detection is carried
out at the receiver by employing the message passing algorithm (MPA) that
exploits the sparsity of CBs to achieve error performance approaching to that
of the maximum likelihood receiver. In spite of numerous research efforts in
recent years, a comprehensive one-stop tutorial of SCMA covering the
background, the basic principles, and new advances, is still missing, to the
best of our knowledge. To fill this gap and to stimulate more forthcoming
research, we provide a holistic introduction to the principles of SCMA
encoding, CB design, and MPA based decoding in a self-contained manner. As an
ambitious paper aiming to push the limits of SCMA, we present a survey of
advanced decoding techniques with brief algorithmic descriptions as well as
several promising directions.
