Sparse Code Multiple Access (SCMA) is an enabling code-domain non-orthogonal multiple access (NOMA)scheme for massive connectivity and ultra low-latency in future machine-type communication networks. As an evolved variant of code division multiple access (CDMA), multiple users in SCMA are separated by assigning distinctive codebooks which display certain sparsity. At an SCMA receiver, efficient multiuser detection is carried out by employing the message passing algorithm (MPA) which exploits the sparsity of codebooks to achieve error rate performance approaching to that of the maximum likelihood receiver. Despite numerous research efforts on SCMA in recent years, a comprehensive and in-depth tutorial to SCMA is missing, to the best of our knowledge. To fill this gap and to stimulate more forthcoming research, we introduce the principles of SCMA encoding, codebook design, and MPA based decoding in a self-contained manner for layman researchers and engineers.