This thesis contributes to the understanding of computational capabilities of multi-robot systems by viewing them as devices in which mechanical and electronic components jointly perform computation. We show that a multi-robot system can use physical embodiment and spatial embeddedness as computational resources for two types of problems: (i) a continuous optimization problem of achieving optimal joint robot team configuration, and (ii) a combinatorial problem of sorting robots. In the continuous problem domain we describe a general approach for developing decentralized distributed gradient descent optimization algorithms for teams of embodied agents that need to rearrange their configuration over space and time to approach some optimal and initially unknown configuration. We provide examples of the application of this general method by solving two non-trivial problems of multi-robot coordination: energy-efficient single point and multiple point rendezvous. In the combinatorial problem domain we demonstrate a multi-robot system controller that sorts a team of robots by means of its continuous movement dynamics. Between-robot rank comparisons suggested by traditional discrete state sorting algorithms are avoided by coupling neighbors in the order in a Brockett double bracket flow system.