Looks very impressive! Last update marked 2011 as of 2020.
Goes up to "A.15 quantum field theory in a Nanoshell", Ciro have to review it to see if there's anything worthwhile in that section.
Personal page says he retired as of 2020: www.eng.fsu.edu/~dommelen/ But hopefully he has more time for these notes!
And he appears to have his own lightweight markup language that transpiles to LaTeX called l2h: www.eng.fsu.edu/~dommelen/l2h/
Bell's theorem by Ciro Santilli 40 Updated 2025-07-16
Basically a precise statement of "quantum entanglement is spooky".
This is a quick tutorial on how a quantum computer programmer thinks about how a quantum computer works. If you know:a concrete and precise hello world operation can be understood in 30 minutes.
Although there are several types of quantum computer under development, there exists a single high level model that represents what most of those computers can do, and we are going to explain that model here. This model is the is the digital quantum computer model, which uses a quantum circuit, that is made up of many quantum gates.
Beyond that basic model, programmers only may have to consider the imperfections of their hardware, but the starting point will almost always be this basic model, and tooling that automates mapping the high level model to real hardware considering those imperfections (i.e. quantum compilers) is already getting better and better.
The way quantum programmers think about a quantum computer in order to program can be described as follows:
To operate a quantum computer, you follow the step of operation of a quantum computer:
Each time you do this, you are literally conducting a physical experiment of the specific physical implementation of the computer:
  • setup your physical system to represent the classical 0/1 inputs
  • let the state evolve for long enough
  • measure the classical output back out
and each run as the above can is simply called "an experiment" or "a measurement".
The output comes out "instantly" in the sense that it is physically impossible to observe any intermediate state of the system, i.e. there are no clocks like in classical computers, further discussion at: quantum circuits vs classical circuits. Setting up, running the experiment and taking the does take some time however, and this is important because you have to run the same experiment multiple times because results are probabilistic as mentioned below.
Unlike in a classical computer, the output of a quantum computer is not deterministic however.
But the each output is not equally likely either, otherwise the computer would be useless except as random number generator!
This is because the probabilities of each output for a given input depends on the program (unitary matrix) it went through.
Therefore, what we have to do is to design the quantum circuit in a way that the right or better answers will come out more likely than the bad answers.
We then calculate the error bound for our circuit based on its design, and then determine how many times we have to run the experiment to reach the desired accuracy.
The probability of each output of a quantum computer is derived from the input and the circuit as follows.
First we take the classic input vector of dimension N of 0's and 1's and convert it to a "quantum state vector" of dimension :
We are after all going to multiply it by the program matrix, as you would expect, and that has dimension !
Note that this initial transformation also transforms the discrete zeroes and ones into complex numbers.
For example, in a 3 qubit computer, the quantum state vector has dimension and the following shows all 8 possible conversions from the classic input to the quantum state vector:
000 -> 1000 0000 == (1.0, 0.0, 0.0, 0.0,  0.0, 0.0, 0.0, 0.0)
001 -> 0100 0000 == (0.0, 1.0, 0.0, 0.0,  0.0, 0.0, 0.0, 0.0)
010 -> 0010 0000 == (0.0, 0.0, 1.0, 0.0,  0.0, 0.0, 0.0, 0.0)
011 -> 0001 0000 == (0.0, 0.0, 0.0, 1.0,  0.0, 0.0, 0.0, 0.0)
100 -> 0000 1000 == (0.0, 0.0, 0.0, 0.0,  1.0, 0.0, 0.0, 0.0)
101 -> 0000 0100 == (0.0, 0.0, 0.0, 0.0,  0.0, 1.0, 0.0, 0.0)
110 -> 0000 0010 == (0.0, 0.0, 0.0, 0.0,  0.0, 0.0, 1.0, 0.0)
111 -> 0000 0001 == (0.0, 0.0, 0.0, 0.0,  0.0, 0.0, 0.0, 1.0)
This can be intuitively interpreted as:
Now that we finally have our quantum state vector, we just multiply it by the unitary matrix of the quantum circuit, and obtain the dimensional output quantum state vector :
And at long last, the probability of each classical outcome of the measurement is proportional to the square of the length of each entry in the quantum vector, analogously to what is done in the Schrödinger equation.
For example, suppose that the 3 qubit output were:
Then, the probability of each possible outcomes would be the length of each component squared:
i.e. 75% for the first, and 25% for the third outcomes, where just like for the input:
All other outcomes have probability 0 and cannot occur, e.g.: 001 is impossible.
Keep in mind that the quantum state vector can also contain complex numbers because we are doing quantum mechanics, but we just take their magnitude in that case, e.g. the following quantum state would lead to the same probabilities as the previous one:
This interpretation of the quantum state vector clarifies a few things:
As we could see, this model is was simple to understand, being only marginally more complex than that of a classical computer, see also: quantumcomputing.stackexchange.com/questions/6639/is-my-background-sufficient-to-start-quantum-computing/14317#14317 The situation of quantum computers today in the 2020's is somewhat analogous to that of the early days of classical circuits and computers in the 1950's and 1960's, before CPU came along and software ate the world. Even though the exact physics of a classical computer might be hard to understand and vary across different types of integrated circuits, those early hardware pioneers (and to this day modern CPU designers), can usefully view circuits from a higher level point of view, thinking only about concepts such as:
as modelled at the register transfer level, and only in a separate compilation step translated into actual chips. This high level understanding of how a classical computer works is what we can call "the programmer's model of a classical computer". So we are now going to describe the quantum analogue of it.
Bibliography:
Quantum algorithm by Ciro Santilli 40 Updated 2025-07-16
This is the true key question: what are the most important algorithms that would be accelerated by quantum computing?
Some candidates:
Do you have proper optimization or quantum chemistry algorithms that will make trillions?
Maybe there is some room for doubt because some applications might be way better in some implementations, but we should at least have a good general idea.
However, clear information on this really hard to come by, not sure why.
Quantum compilation by Ciro Santilli 40 Updated 2025-07-16
Software that maps higher level languages like Qiskit into actual quantum circuits.
Based on the Josephson effect. Yet another application of that phenomenal phenomena!
It is fun to see that the representation of information in the QC basically uses an LC circuit, which is a very classical resonator circuit.
As mentioned at en.wikipedia.org/wiki/Superconducting_quantum_computing#Qubit_archetypes there are actually a few different types of superconducting qubits:
and hybridizations of those such as:
Input:
Video 2.
Quantum Transport, Lecture 16: Superconducting qubits by Sergey Frolov (2013)
Source. youtu.be/Kz6mhh1A_mU?t=1171 describes several possible realizations: charge, flux, charge/flux and phase.
Video 3. Source. Daniel wears a "Google SB" t-shirt, which either means shabi in Chinese, or Santa Barbara. Google Quantum AI is based in Santa Barbara, with links to UCSB.
Video 5.
Superconducting Qubits I Part 1 by Zlatko Minev (2020)
Source.
The Q&A in the middle of talking is a bit annoying.
Video 6.
Superconducting Qubits I Part 2 by Zlatko Minev (2020)
Source.
Video 7.
How to Turn Superconductors Into A Quantum Computer by Lukas's Lab (2023)
. Source. This video is just the introduction, too basic. But if he goes through with the followups he promisses, then something might actually come out of it.
Bibliography:
Classical computer by Ciro Santilli 40 Updated 2025-07-16
In the context of quantum computing of the 2020's, a "classical computer" is a computer that is not "quantum", i.e., the then dominating CMOS computers.
ZX-calculus by Ciro Santilli 40 Updated 2025-07-16
How can we easily prove that that quantum circuit equals the state:
?
The naive way would be to just do the matrix multiplication as explained at Section "Quantum computing is just matrix multiplication".
However, ZX-calculus provides a simpler way.
And even more importantly, sometimes it is the only way, because in a real circuit, we would not be able to do the matrix multiplication
What we do in ZX-calculus is we first transform the original quantum circuit into a ZX graph.
This is always possible, because we can describe how to do the conversion simply for any of the Clifford plus T gates, which is a set of universal quantum gates.
Then, after we do this transformation, we can start applying further transformations that simplify the circuit.
It has already been proven that there is no efficient algorithm for this (TODO source, someone said P-sharp complete best case)
But it has been proven in 2017 that any possible equivalence between quantum circuits can be reached by modifying ZX-calculus circuits.
There are only 7 transformation rules that we need, and all others can be derived from those, universality.
So, we can apply those rules to do the transformation shown in Wikipedia:
Figure 1.
GHZ circuit as ZX-diagram
. Source.
and one of those rules finally tells us that that last graph means our desired state:
because it is a Z spider with and .
Video 1.
Working with PyZX by Aleks Kissinger (2019)
Source. This video appears to give amazing motivation on why you should care about ZX-calculus, it mentions

There are unlisted articles, also show them or only show them.