Hi. Starting from August, I'm organizing CF problem-solving classes — weekly 1.5h lessons with heavy focus on homework (pre-assigned problems). It should be suitable for people with rating 1100-2400, but perfect for rating 1300-2300 (so that you would always get a few interesting problems at your level).
There'll be a private Discord server and a CF group with gym mashups and monthly leaderboards. Every week, I choose nice old CF problems (at least 6 per group), usually from 5+ years ago. You get 5-6 days to solve them. The idea is that you should struggle with the problems. A day before a lesson, you vote on Discord which problems you want to see covered. During a lesson, we discuss the solutions and the intuition, but also: wrong ideas, follow-ups, related problems. You can and should ask questions. I won't waste time on live coding, especially in the hard group.
motivationI think that this is the best possible classes format to practice competitive programming. It's partially inspired by old Codechef Long contests, and the Algorithmic Engagements in Poland.
I organized something more intense and expensive last Summer, and tried to do DP classes recently (where not enough people registered). From now on, these regular classes for bigger groups should be more affordable, especially with the lower price tier and the country discounts.
How I will choose the problems."Choosing nice problems" means that I read multiple problems, immediately skipping some of them. I come up with a solution, read the editorial, then decide if a problem is worth it. If so, I also read comments and think about alternative solutions.
My preferences: I like rephrasing a problem to make it easier (e.g. visualize values as ranges or points). I like tricks that are simple once you understand it, e.g. "BS in random order to get rid of log" from Blogewoosh #6. I don't like implementation-heavy problems. As a less important factor, I like short statements (possibly with a story); and I'm not a huge fan of many ad-hoc problems and the "you can do the following operation any number of times". Among the hard problems (2400+), I will have a small preference of topics that I'm good at, e.g. dp, probability, trees, geometry, segment trees (while avoiding topics like string data structures and hard number theory).
I will put a warning if a problem requires extra knowledge that you might not have. If there is no warning, you should try to solve it for a long time. It's good to switch between problems. You can look at the editorial after 2+ days of trying (it shouldn't be non-stop; but it's good to leave a problem and try again next day).
I will star some problems as particularly recommended. Perfectly, we won't just discuss the hardest problems (those you couldn't solve). An easier problem might be better, even if you've solved it. Maybe the official editorial is bad, or you don't understand the correctness of your solution. There might be multiple solutions to a problem, some more general and educational than others.
We usually won't cover all problems. If you request, I can discuss 1-2 more problems in my next YT/Twitch live-stream.
my motivationI like teaching algorithms and I want it to still be my job in the coming years. It's hard to do it only with 1-on-1 tutoring (and free YT/Twitch stuff). Even if I earned from YT live-streams, the issue is that viewers have huge spread of skill level. Maybe ongoing group classes are a way for me to earn a living and help a lot of people. I want to continue making live-streams and short educational videos. I'm more incentivized to do that if I can advertise paid classes.
Easy group: problem difficulty 1400-2000, Mondays 15:30-17:00 CEST. First class: 4.08
Hard group: problem difficulty 2100-2700, Tuesdays 15:30-17:00 CEST. First class: 5.08
Very hard group: Let me know if you're interested in a 2800+ difficulty group. I will start one if there are enough people. Though this group would be very time-consuming for me to prepare every week.
Which group to join?It's best if you can solve some of the assigned problems, but not all. I would recommend the easy group for people with rating up to 1600-1700, and the hard group for people with rating up to 2300. The higher your rating, the bigger chance that you can solve everything and you gain less from the analysis session. Note that your coding speed doesn't matter. You can later switch the group.
Price I: 100€ per month (or 8000 INR for India, 20% off). You get access to everything but need to choose which group classes to attend. Payment link: old-link-was-here (You should see the price in EUR/USD/INR/PLN, depending on your country.)
Price II: 50€ per month (or 4000 INR for India). You join the server, get access to recordings and problems from both groups. You don't attend classes, can't vote on problems, and you're not in the CF group leaderboard. old-link-was-here
If you register until Saturday (2.08), you get a 12% discount with code IOI. You keep the discount forever if you pay monthly/quarterly.
LeetCode / interview prep: I'm also going to do similar classes with Leetcode problems, same time of day. The price will be 150€/12000INR per month (or 75€ without attending the class). If you are interested, you can pay the promo-price 25€ for the first week here. Choose your preferred group difficulty there. If we don't start in August, I will refund you.
Hope you see many of you in the classes. Cheers.