My work is broadly concerned with the question How can designs be synthesized computationally? The project deals primarily with mechanical devices, and focuses on pre-parametric design: design at the level of detail of a blackboard sketch rather that at the level of detail of an engineering drawing. The primary goal of this research is to develop principles upon which future computational tools for pre-parametric design will be built, by developing research ideas to a level of detail where computer programs can be used as tools for validation. I explore the project ideas in the domain of single-input single-output dynamic systems, like pressure gages, accelerometers, and pneumatic cylinders. Four ideas are at the core of the design procedures presented in this document: 1) A design problem should be broken into two subproblems-generating schematic descriptions and then generating physical descriptions. This strategy reduces the problem solving complexity and clarifies the problem solving procedures. 2) A formal schematic language is an important hallmark of a schematic synthesis problem. 3) A transformation that compresses many different schematic descriptions into a single minimal representation allows for a concise description of the domain knowledge, and a straightforward schematic synthesis procedure. 4) Efficient designs are ones in which many functions are provided by the same structural element. This property of design is called function sharing, and is a key component of my procedure for generating physical descriptions from a schematic descriptions.