I. Introduction
The emergence of communication systems for the Internet of Things (IoT), with the requirement of short-packet transmissions, has revitalized interest in research and practice of efficient error correcting codes for messages ranging from a few tens up to a few hundred bits. While important progress has been made over the last years in understanding the limits of coding at short block lengths [1], the design of efficient short codes and decoding algorithms still raises many challenges [2].