This diagnostic is totally optional. You don't need to be able to answer all (or even any) of these questions to be ready to take the course.

It is designed to help us both understand which topics are going to be the most challenging for you individually, and faciliate a conversation about whether the course is a good fit.


The questions in this section gauge your familiarity with specific areas of math.

1) If you sample a random variable from a normal distribution, what is the chance that value will fall within +/- one standard deviation of the mean?

2) What is a scalar? What is a vector?

3) What does the ∇ operator do?



The questions in this section gauge your level of Python experience.

4) Write a Python loop that sums all the integers from 1-100.

5) In the following code, What does super().__init__() do?

class DynamicNet(torch.nn.Module):
    def __init__(self):

6) The following program has 2 bugs. Fix them.

learning_rate = 1e-6
for t in 2000:
    # Forward pass: compute predicted y
    # y = a + b x + c x^2 + d x^3
    y_pred = a + b * x + c * x ^ 2 + d * x ^ 3

Machine Learning

All the questions in this section will be covered as part of the core course material, but I want to gauge if you already have some ML knowledge.

7) What is activation in neural networks? Why is it important?

8) How are words represented inside a neural net?

9) Discuss the challenges and tradeoffs of finding the global minimum when doing gradient descent?

Bonus Question

10) Bonus Question: Use NumPy to create a vector of 1000 random values from a normal distribution and find the R-Squared value of a linear regression of that data set. Or explain why you don't need to. Or both.

I will score the diagnostic by hand and send you the results via email: