New methods in quantum error correction and fault-tolerant quantum computing