BQN

Looking at the lens of array programming.

Planned Exercises

  1. Game of Life
  2. convolutions
    • valid convolution
    • same convolution
    • stride
    • padding
    • separable convolution
    • blur filter
    • sharpen
    • Sobel edge detection
  3. matrix multiplication Do NOT call builtin matmul
    1. Version A — nested loops
    2. Version B — outer products
    3. Version C — broadcasting
    4. Version D — tensor contraction
  4. image transforms
    • invert
    • threshold
    • brightness
    • contrast
    • blur
    • edge detection
    • emboss
    • affine transforms
    • rotation
    • scaling
    • perspective transforms
  5. histograms
    • start with 1d histogram
    • then 2D histograms
    • image histograms
    • cumulative histograms
    • histogram equalization

"no for-loops" constraint to convolutions, not just matmul. Once you've done the nested-loop version for intuition, try expressing the same convolution using only indexing and arithmetic — it's a harder challenge than matmul and teaches you more about sliding window thinking.