E.g. with our qiskit/hello.py, we obtain the Bell state circuit:
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
In Qiskit at: qiskit/hello.py.
Turing machine regex tape notation is Ciro Santilli's made up name for the notation used e.g. at:Most of it is just regular regular expression notation, with a few differences:
- denotes the right or left edge of the (zero initialized) tape. It is often omitted as we always just assume it is always present on both sides of every regex
A
,B
,C
,D
andE
denotes the current machine state. This is especially common notation in the context of the BB(5) problem<
and>
next to the state indicate if the head is on top of the left or right element. E.g.:indicates that the head11 (01)^n <A 00 (0011)^{n+2}
A
is on top of the last1
of the last sequence of n01
s to the left of the head.
This notation is very useful, as it helps compress long repeated sequences of Turing machine tape and extract higher level patterns from them, which is how you go about understanding a Turing machin in order to apply Turing machine acceleration.
This is likely a joke binet, but the idea is epic: its members would in principle take the hardest courses and purposefully get bad grades on them to improve the grades of others, as grades are always normalized to a Normal distribution.
A Python wrapper over a bunch of numeric and computer algebra system packages to try and fully replace MATLAB et. al.
Quickstart tutorial at: www.sagemath.org/tour-quickstart.html From this we see that they are very opinionated, you don't need to import anything, everything has a pre-defined global name, which is convenient, e.g.:is the 3D vector space over the rationals. This also suggests that they are quite focused on computer algebra as opposed to numerical.
The official hello world is documented at: qiskit.org/documentation/intro_tutorial1.html and contains a Bell state circuit.
Our version at qiskit/hello.py.
@cirosantilli/_file/qiskit/qiskit/hello.py by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Our example uses a Bell state circuit to illustrate all the fundamental Qiskit basics.
Sample program output,
counts
are randomized each time.First we take the quantum state vector immediately after the input.We understand that the first element of
input:
state:
Statevector([1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
dims=(2, 2))
probs:
[1. 0. 0. 0.]
Statevector
is , and has probability of 1.0.Next we take the state after a Hadamard gate on the first qubit:We now understand that the second element of the
h:
state:
Statevector([0.70710678+0.j, 0.70710678+0.j, 0. +0.j,
0. +0.j],
dims=(2, 2))
probs:
[0.5 0.5 0. 0. ]
Statevector
is , and now we have a 50/50 propabability split for the first bit.Then we apply the CNOT gate:which leaves us with the final .
cx:
state:
Statevector([0.70710678+0.j, 0. +0.j, 0. +0.j,
0.70710678+0.j],
dims=(2, 2))
probs:
[0.5 0. 0. 0.5]
Then we print the circuit a bit:
qc without measure:
┌───┐
q_0: ┤ H ├──■──
└───┘┌─┴─┐
q_1: ─────┤ X ├
└───┘
c: 2/══════════
qc with measure:
┌───┐ ┌─┐
q_0: ┤ H ├──■──┤M├───
└───┘┌─┴─┐└╥┘┌─┐
q_1: ─────┤ X ├─╫─┤M├
└───┘ ║ └╥┘
c: 2/═══════════╩══╩═
0 1
qasm:
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
And finally we compile the circuit and do some sample measurements:
qct:
┌───┐ ┌─┐
q_0: ┤ H ├──■──┤M├───
└───┘┌─┴─┐└╥┘┌─┐
q_1: ─────┤ X ├─╫─┤M├
└───┘ ║ └╥┘
c: 2/═══════════╩══╩═
0 1
counts={'11': 484, '00': 516}
counts={'11': 493, '00': 507}
Computer science course of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Public landing page: www.ox.ac.uk/admissions/undergraduate/courses/course-listing/computer-science
Course lists: www.cs.ox.ac.uk/teaching/courses/ True to form, courses appear to have identifiers, e.g. The "course materials" section of each course leads to courses.cs.ox.ac.uk/ which is paywalled by IP (accessible via Eduroam): TODO which system does it use? Some courses place their materials directly on "www.cs.ox.ac.uk", and when that is the case they are publicly accessible. So it is very much hit and miss. E.g. www.cs.ox.ac.uk/teaching/courses/2022-2023/quantum/index.html from Quantum Processes and Computation course of the University of Oxford has the assignments such as www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment1.pdf publicly visible, but e.g. www.cs.ox.ac.uk/teaching/courses/2022-2023/modelsofcomputation/ has nothing.
qi
for the Quantum Information course of the University of Oxford rather than more arbitrary A1/A2/A3, B1/B2/B3, naming convention used by the Mathematics course of the University of Oxford and the Physics course of the University of Oxford, and URLs can either have years or not:- www.cs.ox.ac.uk/teaching/courses/qi/: no year: goes to latest
- www.cs.ox.ac.uk/teaching/courses/2023-2024/qi/: has year, fixed year. Disgraceful repetition of redundant 2023-2024, but OK.
Handbook:
- 2022:
- general www.cs.ox.ac.uk/files/13731/CS%20Handbook%20final.pdf
- Year 1 (Prelims): www.cs.ox.ac.uk/files/13794/Handbook%202022%20Part%20C%20-%20V1.3.pdf
- Year 2/3 (Parts A/B): www.cs.ox.ac.uk/files/13793/Handbook%202022%20Parts%20A%20&%20B%20V1.3.pdf There is some mixture on which courses can be taken on year 2 or 3. This also implies that they cannot have the usual A2/B2 naming scheme. They just don't have names instead mostly. It is also the most beautiful illustration of why you shouldn't do Compute Science at university: there's no depth to the subject. You can just take random courses and you learn it all quickly. Section "The only reason for universities to exist should be the laboratories".
- Year 2 has four mandatory core courses:
- Models of Computation
- Algorithms and Data Structures
- Compilers (mandatory for compsi, but not mathematics and computer science)
- Concurrent programming
- A only:
- Probability
- Hilary term
- Concurrent Programming (mandatory for compsi, but not mathematics and computer science)
- Quantum information
- Year 2 has four mandatory core courses:
- Year 4 (Part C): www.cs.ox.ac.uk/files/13794/Handbook%202022%20Part%20C%20-%20V1.3.pdf
- Michaelmas term
- Bayesian Statistical Probabilistic Programming
- Concurrent Algorithms and Data Structures
- Quantum Processes and Computation
- Computational Learning Theory
- Computational Biology
- Advanced Complexity Theory
- Graph Representation Learning
- Hilary term
- Advanced Security
- Database Systems Implementation
- Ethical Computing in Practice
- Law and Computer Science
- Quantum Software course of the University of Oxford
- Geometric Deep Learning
- Foundations of Self-Programming Agents
- Deep Learning in Healthcare
- Michaelmas term
Project trying to compute BB(5) once and for all. Notably it has better presentation and organization than any other previous effort, and appears to have grouped everyone who cares about the topic as of the early 2020s.
Very cool initiative!
By 2023, they had basically decided every machine: discuss.bbchallenge.org/t/the-30-to-34-ctl-holdouts-from-bb-5/141
Year 2 or 3 course of the computer science course of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Quantum Information course of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
2023: Jonathan Barrett
Year 4 of the computer science course of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Department of Computer Science of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
@cirosantilli/_file/numpy/numpy/fft.py by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Output:With our understanding of the discrete Fourier transform we see clearly that:
sin(t)
fft
real 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
imag 0 -10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10
rfft
real 0 0 0 0 0 0 0 0 0 0 0
imag 0 -10 0 0 0 0 0 0 0 0 0
sin(t) + sin(4t)
fft
real 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
imag 0 -10 0 0 -10 0 0 0 0 0 0 0 0 0 0 0 10 0 0 10
rfft
real 0 0 0 0 0 0 0 0 0 0 0
imag 0 -10 0 0 -10 0 0 0 0 0 0
- the signal is being decomposed into sinusoidal components
- because we are doing the Discrete Fourier transform of a real signal, for the
fft
, so there is redundancy in the. We also understand thatrfft
simply cuts off and only keeps half of the coefficients
Tensor product in quantum computing by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
We don't need to understand a super generalized version of tensor products to know what they mean in basic quantum computing!
Intuitively, taking a tensor product of two qubits simply means putting them together on the same quantum system/computer.
The tensor product is called a "product" because it distributes over addition.
E.g. consider:
Intuitively, in this operation we just put a Hadamard gate qubit together with a second pure qubit.
And the outcome still has the second qubit as always 0, because we haven't made them interact.
The quantum state is called a separable state, because it can be written as a single product of two different qubits. We have simply brought two qubits together, without making them interact.
If we then add a CNOT gate to make a Bell state:we can now see that the Bell state is non-separable: we've made the two qubits interact, and there is no way to write this state with a single tensor product. The qubits are fundamentally entangled.
Quantum Processes and Computation course of the University of Oxford by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
2022 page: www.cs.ox.ac.uk/teaching/courses/2022-2023/quantum/ (archive). Assignments are available:
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment1.pdf
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment2.pdf
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment3.pdf
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment4.pdf
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment5.pdf
- www.cs.ox.ac.uk/people/aleks.kissinger/courses/qpc2022/assignment6.pdf
2022 lecturer: Aleks Kissinger
The course would be better named ZX-calculus as it appears to be the only subject covered.
There are unlisted articles, also show them or only show them.