Quantum Computing and Communications