The design of an effective interactive learning environment requires understanding the intricate relationships among people, tools, and problems. Many end-users do not have the necessary skills, nor the time or patience to compose programs from computer science-sanctioned programming primitives. End-users require environments that elevate the task of programming to the manipulation of components that are directly pertinent to the problems to be solved. This paper introduces the Agentsheets programming substrate employed by designers to create interactive learning environments that are geared toward end-users solving specific problems. A number of educational and industrial applications are used to illustrate the design and use of Agentsheets environments in domains such as art, artificial life, environmental design, games, kitchen design, and visual programming.