Self-assembly is a process in which basic units aggregate under attractive forces to form larger compound structures. Recent theoretical work has shown that pseudo-crystalline self-assembly can be algorithmic, in the sense that complex logic can be programmed into the growth process . This theoretical work builds on the theory of two-dimensional tilings , using rigid square tiles called Wang tiles  for the basic units of self-assembly, and leads to Turing-universal models such as the Tile Assembly Model . Using the Tile Assembly Model, we show how algorithmic self-assembly can be exploited for fabrication tasks such as constructing the patterns that define certain digital circuits, including demultiplexers, RAM arrays, pseudowavelet transforms, and Hadamard transforms. Since DNA self-assembly appears to be promising for implementing the arbitrary Wang tiles [30,13] needed for programming in the Tile Assembly Model, algorithmic self-assembly methods such as those presented in this paper may eventually become a viable method of arranging molecular electronic components , such as carbon nanotubes [10,1], into molecular-scale circuits.