Quantum computing is one of the most cutting-edge research areas in both computer science and physics. Quantum computers can achieve exponential speedup on some problems, in particular they can solve problems whose solutions would require decades of computation to be found with current machines. Some companies, like IBM, have already started huge research projects on quantum computers, to ensure leadership in a market that would likely be extremely profitable. Moreover, NIST issued a call to standardize quantum resistant cryptography primitives, in order to be ready in case quantum computers would manage to break current widely used cryptosystems like RSA.
In the light of the relevance of the topic, this talk (based on a course held at ACACES summer school 2017 attended by the speaker) provides a brief introduction about quantum computing, starting from the basic definition of a qu-bit to end up with an overview of quantum computer architecture. The talk is divided in 2 main parts: The first part is an introduction of qu-bits and quantum circuits, altogether with the mathematical formalism employed to perform quantum computation. The second part focuses on the architecture of a quantum computer and on the technical challenges involved in its design.