In the context of social organisms, a school refers to a cohesive group of organisms that share a common speed and direction of motion, as well as a common axis of body alignment or polarization. Schools are also noted for the relatively fixed nearest-neighbour distances between individuals. The rules of interaction that lead to the formation and maintenance of a school structure have been explored experimentally, analytically, and by simulation. Interest in biological examples, and non-biological “self-propelled particles” such as robots, vehicles, or autonomous agents leads to the question of what are the simplest possible sets of rules that can assure the formation and the stability of the “perfect school”: an aggregate in which the nearest-neighbour distances and speeds are identical. Here we explore mechanisms that lead to a perfect school structure in one and two dimensions. We consider distance-detection as well as velocity-detection between the interacting pairs of self-propelled particles. We construct interaction forces and formulate schooling equations. In the simplest cases, these equations have analytic solutions. In many cases, the stability of the perfect school can be explored. We then investigate how these structures form and evolve over time from various initial configurations using simulations. We study the relationship between the assumed interaction forces and the school patterns that emerge. While true biological schools are far from perfect, the insights gained from this investigation can help to understand some properties of real schools, and to suggest the appropriate properties of artificial schools where coordinated motion is desired.