I was teacher of some online courses for students preparing themselves for IOI. I recorded my course sessions in some video files and they can be useful for Iranian (or who knows Persian) high school and also university students.
If anybody wants the videos contact me here or my Gmail with address email@example.com or telegram id @kerpoo .
The first course was about introduction to programming with C++ and the content of the course was:
Introduction to the general programming tools with c++ syntax (Variables, Arrays, Conditions, Loops, Functions & ...)
Time and memory complexity
Sort algorithms and implementation of Merge-sort
Algorithms about Prime numbers and Eratosthenes sieve
Introduction to big numbers and their algorithms
Introduction to binary search trees (BST)
Working with files by fstream library
Introduction to important libraries and structures for competitive programming (Pair, Vector, Sort function and custom sort, Next_permutation function, String, Set, Map, Struct & ...)
Solving and implementing some projecteuler.net problems.
After this course you will be able to accept about 25 problems of projecteuler.net and a lot of programming exercises.
The second course was about introduction to algorithms and data structures and the content of the course was:
- Dynamic programming:
Simple dp and memorization
Bitmasks and subset dp
Dp on trees
Divide and conquer method
Brute force with bitmasks
Bfs and shortest path
Eulerian tour (Fleury)
Strongly connected components (SCC)
Directed acyclic graphs (DAG)
- Data structures:
Disjoint sets union (DSU)
Lazy segment tree
Fenwick tree (BIT)
Red black tree
working with offline queries
Lowest common ancestor (LCA)
- Modular inverses and combinatorics problems
All the above algorithms are introduced and implemented by C++ and also There are a lot of problems from various online judges about each of them as exercises.
There is also a course in graph theory topic (that is completely theory).