Foundations
The math, the Python, and the signal processing everything else stands on. Do not skip this even if parts feel familiar - quantum computing in Phase 4 is unforgiving about linear algebra, and Capstone A is unforgiving about DSP.
- Install Python 3.12+, create a virtual environment, install
numpy,matplotlib,scipy,jupyter. - Create your lab notebook: a git repository (GitHub, private is fine) with one folder per week. Every exercise lands here.
Linear algebra, visually
Vectors, span, linear transformations, matrix multiplication, determinants. The goal is geometric intuition - you should see a matrix as a transformation of space.
Watch
Exercises
- In NumPy, implement matrix-vector multiplication by hand (no
@), then verify againstnp.matmul. - Write a function that rotates 2D points by an angle theta using a rotation matrix; plot a shape before and after.
- Compose two transformations (rotate then shear) and show the composed matrix equals the product.
Checkpoint
Explain, out loud, why matrix multiplication is not commutative - using pictures, not algebra.
Eigenvectors, complex numbers, and the math of learning
Finish the linear algebra series (dot products, cross products, change of basis, eigenvectors). Then the two extras your quantum future depends on: complex numbers and unitary/hermitian matrices. Close with derivatives and gradients for training neural nets.
Study
- Essence of Linear Algebra, chapters 9-16 (same playlist as Week 1).
- Mathematics for Machine Learning (free book): skim ch. 2-4 as reinforcement; read section 5.1-5.5 on gradients properly.
- Complex numbers refresher: any source you like; you need
e^(i*theta), magnitude, conjugate, and why|z|^2 = z * conj(z).
Exercises
- Compute eigenvalues/eigenvectors of a 2x2 matrix by hand, verify with
np.linalg.eig, and plot the eigenvector directions before/after the transformation. - Show numerically that a 2x2 rotation matrix is unitary (its conjugate transpose is its inverse).
- Implement numerical gradient checking for
f(x, y) = x^2 y + sin(y)and compare with the analytic gradient.
Checkpoint
You can state what makes a matrix unitary and why that will matter for quantum gates (they preserve vector length - probability).
Python and NumPy fluency
Vectorized thinking. The difference between someone who can use PyTorch and someone who fights it is NumPy broadcasting.
Study
- CS231n Python/NumPy tutorial - do every snippet, do not copy-paste.
- NumPy broadcasting rules - read the official docs page and predict outputs before running.
Exercises
- Implement k-nearest-neighbors from scratch (no loops over samples - vectorize the distance matrix) on a toy 2-class dataset; plot the decision boundary.
- Implement standardization, one-hot encoding, and a train/validation/test split as reusable functions in your lab repo.
- Speed check: time the looped vs vectorized distance computation on 10,000 points and record the ratio in your notes.
Checkpoint
Given shapes (32, 1, 8) and (8,), you can predict the broadcast result shape without running it.
Signals: I/Q data, FFTs, and modulation
The domain layer. Radio signals arrive as complex I/Q samples; every model you build later eats these. This week you learn what they are and how to make them.
Watch
Study
- PySDR (free book) - chapters on I/Q sampling, the frequency domain, and digital modulation. This is your DSP spine; it is written for exactly this course's purpose.
Exercises
- Generate a BPSK and a QPSK signal in NumPy from random bits; plot the constellation diagrams.
- Add white Gaussian noise at several SNRs; watch the constellations smear. Write a reusable
add_awgn(signal, snr_db)function - Capstone A will use it. - Compute and plot the FFT and a spectrogram of your QPSK signal with
scipy.signal.spectrogram. - Optional hardware: with an RTL-SDR dongle, capture live FM radio and plot its spectrum. Nothing makes I/Q data feel real faster.
Checkpoint
You can explain to a friend what the I and Q in I/Q stand for, and why complex numbers show up in radio at all.
Phase gate: self-test before Phase 2
Closed book. Target: 8 of 10 without looking anything up.
- Multiply a 2x3 and a 3x2 matrix by hand.
- What does the determinant of a transformation tell you geometrically?
- Define eigenvector and eigenvalue in one sentence each.
- Why must quantum gates be unitary? (Preview question - a good answer mentions preserving lengths/probabilities.)
- Compute the gradient of
f(w) = (w x - y)^2with respect to w. - Predict the broadcast shape of (64, 1) times (1, 10).
- Vectorize: given X with shape (n, d), compute all pairwise squared distances without a Python loop - write the expression.
- What is an I/Q sample? Why two components?
- Sketch what the FFT of a pure 1 kHz tone looks like.
- At low SNR, what happens to a QPSK constellation and why does that make classification hard?
Scored below 8? Spend up to one catch-up week on the weak areas, then move on regardless - Phase 2 will re-exercise all of this.