Communication and Computation Madhu Sudan Devices we are working with or designing today tend to communicate with each other even as they compute. This mixture of abilities exposes a huge gap in the underlying foundations: The theory of communication was principally designed for devices that were not programmable by users, whereas the theory of computing considers communication a secondary functionality of computers. One consequence of this divide in the theory is that devices communicate in a brittle way and quite unlike humans who communicate in a much more smooth way. In this talk I will explain how the challenges to modern communication can be modelled by focussing on the uncertainty of the communicating devices about each other. I will describe some of the theoretical challenges and some approaches to solutions, concluding with some thoughts about how it may influence the future design of communicating devices.