This paper is an attempt to track the path of architectural design both on design-theoretical and on practical (computer-aided design) planes. It begins with the practical problems of design which can be couched in terms of mathematical programming problems. The potential for applications of artificial intelligence and knowledge-based systems in architectural design is then considered. Last the place of architectural design within design theory is discussed.