Coordination is an essential characteristic of any system, either natural or artificial, that is composed of multiple interacting agents. The mechanism by which the coordination is achieved determines such properties as how robust the system is to environmental perturbations, how efficient it is in performing a given task, and, more generally, what types of coordinated tasks can be achieved. A formal understanding of these issues will permit more focused analysis of coordinated natural systems and more effective approaches to the design of coordinated artificial systems. Toward this end, we are systematically investigating coordination in the context of multi-robot systems. We present a formal framework for multi-robot system (MRS) coordination and use it to discuss and reason about coordination. Using this principled foundation, we are developing a suite of general methods by which to automatically synthesize controllers for robots constituting a MRS such that a given task is performed in a coordinated fashion. This paper presents a method for the automatic synthesis of a specific type of controller, one that retains some internal state (e.g., memory of past occurrences) but is not capable of communication. Understanding the capabilities and limitations of a coordinated system composed of individual agents with such properties contributes to the understanding of when memory alone is sufficient to achieve the desired coordination and when other capabilities, such as communication, may be necessary. We validate our formal approach to the study of coordination in a multi-robot construction task domain through the use of both physically-realistic simulations and real-robot demonstrations.