This dissertation is devoted to the analysis and design of two classes of turbo-like codes, namely, multiple turbo codes and braided convolutional codes. Multiple turbo codes (MTC's) consist of a parallel concatenation of at least three constituent encoders connected by interleavers. The flexible configuration of MTC's brings additional design freedom. Thus better performance can be achieved in terms of both error floors and convergence thresholds. Most of the previous research on MTC's has been focused on low rates. We present a systematic approach to designing punctured high rate MTC's. Special interleavers such as linear and dithered relative prime interleavers are designed jointly for MTC's to increase the minimum distance. By means of extrinsic information transfer (EXIT) charts, the puncturing patterns are constructed using a sequential search method to improve the convergence threshold. As examples, three low complexity MTC's with 2-state or 4-state encoders are designed for rates $R=1/2 \sim 3/4$. Simulation results demonstrate that the obtained MTC's have better error floors than conventional turbo codes and comparable thresholds. Bit-interleaved coded modulation (BICM) has been shown to be an efficient and flexible scheme for communicating on bandwidth-limited fading channels. To exploit the advantages of MTC's with respect to minimum distance and convergence threshold compared to conventional turbo codes, we present a BICM scheme using low complexity MTC's. The performance of the proposed scheme is investigated on both flat and frequency-selective fading channels. In particular, a reduced-state soft-in soft-output equalizer is implemented for multi-level signaling to combat the inter-symbol interference resulting from frequency-selective fading channels. The robustness of the proposed scheme is demonstrated in a time-varying fading environment. The second topic in the dissertation is braided convolutional codes (BCC's). In BCC's, information symbols are checked by two constituent encoders, and the parity symbols of one constituent encoder are used as inputs to the other constituent encoder. The connections between the two constituent encoders are defined by the positions where information and parity symbols are stored in a two-dimensional array. Based on the sparsity of the array, we construct two subclasses of BCC's: tightly braided and sparsely braided convolutional codes. From the point of view of the syndrome former, we show that sparsely braided convolutional codes are a special class of low density parity check convolutional codes. BCC's are continuously decodable codes, and pipeline decoding can be implemented to facilitate high speed continuous data transmission. By means of a Markov permutor analysis, a numerical method is developed to derive a lower bound on free distance for the ensemble of BCC's. Free distance bounds for several BCC's are computed as a function of their overall constraint length. A linear growth rate of free distance with constraint length indicates that BCC's are an asymptotically good class of codes.