In this thesis we study coding strategies for single-user block-fading channels. The block-fading channel is a simplified model of slowly varying wireless communication channels with stringent delay constraints. This model is particularly important in practical applications where communication spans a finite number of degrees of freedom of the channel. The number of such degrees of freedom is usually referred to as diversity. From an engineering perspective, the ultimate goal is to design transmission strategies that efficiently exploit the available degrees of freedom in order to communicate more reliably. Slow time-frequency hopping, typical of GSM or EDGE systems, and multi-carrier modulation employing orthogonal division multiplexing (OFDM), are practical examples of such communication systems. As opposed to standard communication channels, the block-fading channel has zero capacity in the strict Shannon sense, since there is an irreducible probability that the transmitted data rate is not supported by the channel, namely the information outage probability. Therefore, for large block length, the probability of error, i.e., the probability that the transmitted information is decoded in error at the receiver, will be at least as large as the outage probability. In the case of both transmitter and receiver having one single antenna to communicate, we examine the theoretical limits of such block-fading channels. By studying the asymptotic behavior of the outage probability, we show that the performance of practical coding schemes, constructed over discrete signal constellations, is determined by a fundamental bound on the achievable diversity. This gives rise to the optimal rate-diversity trade-off. This optimal trade-off induces the concept of signal constellation expansion, since, in order to achieve better performance it may be advantageous to transmit with large signal sets. We introduce a new family of concatenated codes that approach the aforementioned limits for arbitrary signal constellations with constant decoding complexity per information bit using message passing iterative decoding algorithms. We analyze the ensemble performance under optimal maximum-likelihood decoding and we show that iterative message passing decoding performs very close to the optimal decoder, differently from non-faded AWGN and fully-interleaved fading channels. We show that the proposed codes perform close to the the outage probability of the channel for any block length, while standard trellis-based codes specifically designed for the block-fading channel exhibit significant degradation as the block length gets large. Moreover, we show that the proposed coding structure significantly outperforms conventional parallel or serial concatenated codes. We also study coding strategies in multiple-antenna block-fading channels. For such multiple-antenna channels, constructing efficient coding schemes that achieve full diversity based traditional code design criteria is difficult and usually leads to complex decoding algorithms. We propose simpler designs based on pragmatic constructions that lead to low-complexity iterative message passing decoders. We focus on the impact of signal constellation expansion on the achievable diversity. In particular, we study two different approaches of achieving. full diversity by appropriately expanding the signal constellation. We consider classical complex-plane Ungerböck's style expansion and multidimensional lattice-like expansion. By means of several message passing decoders, we compare both approaches and we show that, in general, multidimensional expansion is always advantageous due to its higher design flexibility. We report extensive performance evaluation and comparison of the proposed coding schemes with classical schemes, namely Alamouti and V-BLAST, for the relevant case of an OFDM multiple-antenna channel arising in next generation wireless local-area network standards.