Three decades have passed since Richard Feynman first proposed devising a “quantum computer” founded on the laws of quantum physics to achieve computational speed-ups over classical methods. In that time, quantum algorithms have been developed that offer fast solutions to problems in a variety of fields including number theory, chemistry, and materials science. To execute such algorithms on a quantum device will require extensive quantum and classical “software”. One of the grand challenges for the computer science community is the design and implementation of a software architecture to control and program quantum hardware. This session will address how to build a scalable, reliable quantum computer: What are the quantum and classical resource requirements? How do we protect the device against errors? How do we program the quantum computer? It will highlight recent advances in quantum device architectures, error correction, and software design tools, and pose crucial open questions in quantum computer science.