This paper deals with the programmability of a swarm of bio-micro-robots in order to display self-assembling behaviors into specific shapes. We consider robots that are DNA-functionalized micro-beads capable of sensing and expressing signals as well as self-assembling. We describe an in vitro experimentation with a million of micro-beads conditionally aggregating into clusters. Using a realistic simulation, we then address the question of how to automatically design the reaction networks that define the micro-robots' behavior, to self-assemble into a specific shape at a specific location. We use bioNEAT, an instantiation of the famous NEAT algorithm capable of handling chemical reaction networks, and CMA-ES to optimize the behavior of each micro-bead. As in swarm robotics, each micro-bead shares the same behavioral rules and the general outcome depends on interactions between neighbors and with the environment. Results obtained on four different target functions show that solutions optimized with evolutionary algorithms display efficient self-assembling behaviors, improving over pure hand-designed networks provided by an expert after a week-long trials and errors search. In addition, we show that evolved solutions are able to self-repair after damage, which is a critical property for smart materials.