Distributed Control and Computing: Optimal Estimation, Error-Correcting Codes, and Interactive Protocols