This Small Business Innovation Research (SBIR) Phase I project investigates end-user programming for ensembles of robots. The project focusses on the developmnent of an accessible end-user programming environment so that middle and high school students can create their own custom ensembles or blocks of robots and observe how the blocks' behavior affect an entire robot. Building powerful and correct intuitions about the behavior of complex systems is important for scientists and engineers, but with today's technologies it is difficult for children to acquire and integrate these ideas into their mindset. Through exploratory play with thr proposed robotics construction kit, which embodies a distributed processing scheme for embedded microprocessors, children can build and observe complex systems acting in the real world. Programming such systems is difficult: the problem to be solved is to identify effective end-user programming paradigms for children to program distributed embedded systems, and thereby construct mental models about the behavior of complex systems. Although end-user programming environments exist for software systems, and even for a few robotics toys, no competing approach to end user programming tackles distributed processing for modular robotics. The project aims to build three experimental systems: a text-based environment, a visual programming language, and a 'cellular automata' interface. Testing with local middle school students will determine the benefits and drawbacks of each approach.<br/><br/>The outcome of the project is expected to have a broad impact on children's understanding of how complex global behaviors emerges from local effects. Designing and building complex systems exposes children to a variety of science, technology, engineering and mathematics (STEM) concepts. The addition of an intuitive, low-threshold, high-ceiling approach to reprogramming ensemble modules will add extensibility to this already powerful model of complexity. In addition to the primary objective, the design and testing of end-user programming for distributed embedded computing can inform other applications of this technology.