Controlling Quantum Systems For Computation And Communication