As the demand for data integrity increases, coding for error control becomes increasingly important in data communications. It has become an integral part in almost every communication system design. Today very sophisticated coding is used in a broad range of data communication systems. this research project is an investigation of some problems in coding and coded modulation which are both theoretically and practically important. The research includes four inter- related areas: (1) multi-level modulation codes and multi-stage decoding; (2) multi-level concatenated coded modulation schemes and construction of multi- dimensional modulation codes; (3) trellis structure of linear block codes; and (4) suboptimum decoding of block codes.In the first area, the research seeks specific multi-level methods to construct bandwidth efficient multi-level modulation codes with good minimum squared Euclidean distance, small path multiplicity, and desirable structure such as linearity, phase symmetry, and simple trellis diagrams. To reduce the path multiplicity, proper interdependence between consecutive levels of labeling for signal points and component codes is sought. Also studied are various multi- stage decoding schemes for the multi-level modulation codes. The focus is to devise multi-stage decoding schemes which achieve good error performance and large coding gain with reduced decoding complexity. In the second area of research, multi-level concatenation in conjunction with coded modulation is studied for error control in data communications to achieve high error-correction performance, large coding gain, and high spectral efficiency with reduced decoding complexity. This multi-level concatenated coded modulation scheme is used to construct long powerful multi-dimensional (block or trellis) modulation codes with good phase symmetry. In the third research area, the focus is on the complexity of the trellis structure of linear block codes. Boolean polynomial representation of block codes will be used for the construction of their minimal trellis diagrams. It is intended to find specific permutations on the bit positions of codes which reduce the state complexity of code trellises. Emphasis is placed on finding good codes with simple trellis structure so that maximum likelihood decoding can be achieved with the Viterbi algorithm. The fourth area is an investigation of suboptimum soft-decision decoding for block codes which can be decomposed into constituent codes with smaller dimensions and simpler (trellis) structure. It is intended to find good codes (such as BCH codes) which are decomposable or are unions of decomposable codes.