Convolutional codes are a type of error-correcting code used in digital communication systems to improve the reliability of data transmission over noisy channels by encoding the data using a convolutional process. They are characterized by their use of memory elements, which allow the encoder to produce output bits that depend on both current and previous input bits, making them well-suited for real-time error correction in streaming data applications.