๐—ข๐—ฝ๐—ฒ๐—ป-๐˜€๐—ผ๐˜‚๐—ฟ๐—ฐ๐—ฒ ๐— ๐—Ÿ ๐—ต๐—ผ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐—ฎ๐˜‚๐˜๐—ผ-๐˜๐—ฒ๐˜€๐˜๐˜€ - ๐—ณ๐˜‚๐—ป๐—ฑ๐—ฎ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—น ๐—ฎ๐—น๐—ด๐—ผ๐—ฟ๐—ถ๐˜๐—ต๐—บ๐˜€ ๐—ณ๐—ฟ๐—ผ๐—บ ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ ๐—ฝ๐—ฟ๐—ถ๐—ป๐—ฐ๐—ถ๐—ฝ๐—น๐—ฒ๐˜€

Mar 21, 2026ยท
Fail. Learn. Repeat.
Fail. Learn. Repeat.
ยท 2 min read
blog

This year I’ve been designing homework assignments for an ML course at Skoltech (Russia’s answer to MIT/Caltech for science and technology). After bombing more job interviews than I care to count, I think I’ve finally figured out what I was personally missing during my studies - a deep understanding of a relatively small set of fundamental algorithms. Well, my pain is the next generation’s gain!

In my engineering worldview, you can’t truly understand something unless you’ve built a replica from scratch with your own hands. At the same time, I didn’t want learning to stall at the terror of a blank page. I wanted to guide students toward each problem step by step. Show them how it’s assembled from small building blocks.

Once I’d settled on how to frame the problems, the remaining question was how to grade them and give students feedback. Sure, you could review solutions by hand - but that puts a massive load on the teaching team and robs students of the chance to learn from their own mistakes. So why not borrow from industry software development and go all-in on automated testing? Students get a starter template and a test suite. And then… well, then they’re adults who need to learn to read error messages and meet the spec by any means necessary.

๐—ง๐—ต๐—ฒ ๐—ฟ๐—ฒ๐˜€๐˜‚๐—น๐˜: a set of classic machine learning exercises with automated test-based grading. Which means anyone can try these assignments and feel just a tiiiiiny bit like a Skoltech student.

The course has already finished, and I am free to ๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐˜€๐—ต ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ - https://lnkd.in/e3RV3Xq6

๐—ง๐—ต๐—ฒ๐—ฟ๐—ฒ ๐˜†๐—ผ๐˜‚ ๐˜„๐—ถ๐—น๐—น ๐—ณ๐—ถ๐—ป๐—ฑ:

  • Notebooks with tasks

  • Helper scripts to keep the main jupyter notebooks clean

  • Auto-tests to provide students with immediate feedback and to automate grading

  • Grading script sto allow students see what grade they are going to get, prevents them to accidentally use extra files and get 0!

  • Pre-generated data for tests

๐—ง๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ฑ๐—ฒ ๐—ถ๐˜€ ๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐˜€๐—ต๐—ฒ๐—ฑ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ ๐—ฎ ๐—ฝ๐—ฒ๐—ฟ๐—บ๐—ถ๐˜€๐˜€๐—ถ๐˜ƒ๐—ฒ ๐—น๐—ถ๐—ฐ๐—ฒ๐—ป๐˜€๐—ฒ - feel free to build upon it or re-use it in any way you want.