Classical computation models rely on physical implementations consistent with the laws of classical mechanics. It is known, however, that the classical description is only accurate for specific systems with large amounts of atoms, while the more general description of nature is given by quantum mechanics. Quantum computation studies the application of quantum phenomena, that are beyond the scope of classical approximation, for information processing and communication. Various models of quantum computation exist, however the most popular models incorporate the concepts of qubits and quantum gates. A qubit is a generalization of a bit - a system with two possible states, that can be in a quantum superposition of both. A quantum gate is a generalization of a logic gate: it describes the transformation that one or more qubits will experience after the gate is applied on them, given their initial state. The physical implementation of qubits and gates is difficult, for the same reasons that quantum phenomena are hard to observe in everyday life. One approach is to implement the quantum computers in superconductors, where the quantum effects become macroscopic, though at a price of extremely low operation temperatures.