Hello Codeforces community,
I am writing to you to seek help and guidance.
I'm running algorithm class in my former high school. We meet online, since I do not live at my hometown anymore. Every week me and/or my assistant (also, my former student) try to cover one new topic and explain related problems. We run the class entirely for free dedicating our free time and energy to it. We do not get any help from the school and teachers. Mainly it's because they do not have enough skills to teach CP. And they're simply too lazy to learn it.
I started the class, because I know how difficult is to achieve something in this field when you encounter CP late in college for the first time. I needed to work like mad to catch up, Even though made me fell inadequate many times I do not regret any minute spent on solving problems. I think it taught me analytical thinking, forced me to find a proof of the solution before implementing it (sometimes very painfully) and, in general, helped me to become a better programmer. Also, I landed my dream job by virtue of knowing algorithms well.
So I decided to share my gratefulness by helping other young people :)
Unfortunately, it's much easier said than done. We've been running the class for more than 3 years with small breaks. At the beginning, it was pure fun, but over time it gets more and more frustrating when you spend your time and energy and you get nothing in return. And I don't mean money here. What we strive for is to help these young guys to get to Polish OI finals. For now, with no luck.
I understand that some of the people are just not gifted enough to get there. Especially, given polish OI is considered as one of the most difficult in the world. However, I would like to focus more on what we can do, not on the things we cannot change. I see the following problems and questions:
It's difficult to advance to finals without systematic training at school and constant pressure from teachers and peers. We do not have any ways to put the pressure on them. We're not there (I live abroad). We do not grade them. Even if we did, the grades would be meaningless.
If you don't advance to finals, you get nothing at high school. It's all or nothing game. So you need make a decision what to sacrifice (unless you're a genius kid). How to convince them to let go (within reason) other classes?
We do not get any help from teachers. Even parents do not know what we're doing. Perhaps this is the main point we're doing badly. Should we strive for more publicity?
We decided to ask you, guys, because well... you are really good in this matter, :) You've all made the way from total beginners to advanced competitive programmers. And some of you are experienced with well organised, efficient algorithm classes at your schools. Sharing your experience would be of great help to us. In particular, we would like to ask you:
How did you manage to solve many problems and, at the same time, learn stuff for other classes? Did your school help you focus solely on preparation for OI?
What motivated you the most (other peers, prizes, OI camps, feeling doing something special)?
How did meetings look like? How often did you meet?
How the collaboration between students was formed and fostered?
... Or perhaps you run your own class and you can tell us more how you do it. How do you spark students' interest? What resources do you use? Do you have strict teaching plan?
Please share your thoughts with us. Any help would be greatly appreciated!
Best of luck,