This project concerns the reliable transmission and storage of digital information. These are similar notions; digital transmission concerns the transport of information from here to there while digital storage considers the task of conveying digital information from now until then. Fundamental issues in the design of codes and algorithms for modulation and error-control codes are addressed. The application of the theory applies to both digital transmission and magnetic and optical storage systems. The research is organized into five components: (i) variable-length codes from symbolic dynamics: the mapping of data onto walks through a graph; (ii) run-length codes with coding gain: where the goal is to understand the nature of codes for saturation systems; (iii) cascade codes, Grobner bases, and algebraic geometry: where the emphasis is on developing the algebraic theory of cascade codes to provide for algebraic decoding procedures; (iv) convolutional codes over finite rings: use of arithmetic over rings to study CPM and rotationally invariant PSK and QAM; (v) adaptive trellis coding: algorithms for sequence estimation that do not rely on a fixed a priori response but allow the labels of the trellis to adapt.