Software And Algorithms For Quantum Computing