Architectural programming is the research and decision-making process that identifies the scope of work to be designed. Programming is difficult because it involves identifying, collecting, analyzing and updating information from different sources such as engineers, clients, users, consultants, and others. In this paper I propose a computational model for programming and describe its implementation, a tool called PENA that allows a programming expert to represent different processes and people involved in a project using intelligent agents. By delegating responsibility to agents, a programming expert can better organize and manage project data as well as find creative solutions to conflicting issues through agent negotiation. As a proof-of-concept, I show how an agent, called the Arch-Learner, manages adjacencies of rooms in a simple program for a house by clustering them into public and private rooms. I conclude with a discussion of future work and development of PENA.