Quantum information is a new field that studies the representation and processing of information by quantum mechanical systems. Present computers, which are classical devices, represent information by bits, which can be either 0 or 1. A quantum computer represents information by qubits, which have the potential to be 0 and 1 simultaneously. This leads to profound differences in what can be done with classical and quantum information. In this project we will study programmable quantum information processing logic circuits. Most of the quantum circuits that have been proposed so far perform a single task. It is essential to go beyond this and to be able to design circuits with two inputs, one the data to be acted upon and the second, the program, that encodes the operation be performed. Both the data and the program are quantum states. These circuits can be either deterministic, succeeding in performing the desired operation all of the time, or probabilistic, performing the operation only some of the time. Probabilistic circuits can perform a much larger class of operations than can deterministic ones. We want to study how one can design circuits to perform specific sets of operations, how these operations are to best be encoded into quantum states, and how to optimize the probability of successfully performing the desired operation in a probabilistic processor.