Computational design techniques have the potential to fully automate the process of designing embedded electromechanical systems, from component selection to PCB design to firmware and API creation and more. If a practical, fully-automated PCB layout flow can be achieved, the benefits would be numerous and far-ranging, including the potential for new embedded-system design interfaces, new pedagogical methodologies, and vastly reduced prototype turnaround time. While an automated system that designs smartphones and server motherboards competitive with human engineers is beyond the current state-of-the-art, this dissertation details several computational design systems that automate the design of less complex embedded systems, primarily at the PCB level: a pedagogical computational design tool for small robots; a methodology for creating advanced computational design tools for electromechanical systems using heuristic search over a decision tree; and a framework and benchmarks for fully-automated PCB layout.