We designed a learning model that helps our students learn better and faster in a way that’s more fun too. Expect a combination of learning-by-doing, working together with classmates at the same level and a healthy dose of competition - so every curious learner can go full-speed ahead.
Our curriculum focuses on practice using methods, ideas, and concepts as interesting practical tasks. Students are able to use these tools to solve one problem in several ways.
We monitor the progress of students, and after each module, adjustments are made to our curriculum for each student. High performing students are gathered into strong groups and practice more challenging material.
Students develop a competitive spirit through our team and individual competitions which encourages active communication, enhanced performance, and motivation.
Learn the programming language, fundamental concepts, algorithms, and data structures
Develop skills using the most used algorithms and data structures in computer science.
Learn advanced algorithms and data structures. Students are prepared to participate in national and international olympiads including IOI.
Numbers, Arithmetics, Variables, Console I/O
Booleans and Conditionals
Strings & Loops: Part I
Strings & Loops: Part II
Lists: Part I
Lists: Part II
Lists: Part III
Sets & Dictionaries
Working with Files
The beginning is a great place to start. Learn the most fundamental programming concepts and data structures. Formulate problems, think creatively about solutions, and implement them accurately and clearly. Developing these skills demands serious practice, that’s why we have over 200 practical problems ready to go.
Recursion & Backtracking
Stacks, Queues, Deques
Quadratic Sorting Algorithms
Fast Sorting Algorithms (MergeSort and QuickSort)
Modules & Standard Library
Introduction to Object-Oriented Programming: Part I
Introduction to Object-Oriented Programming: Part II
Project: Part I
Project: Part II
Project: Part III
In League 4, students firstly delve into the concept and properties of algorithms and expand this knowledge with simple and efficient data structures. Secondly, students learn the fundamentals of Object-Oriented Programming and explore a Standard Library’s possibilities.
Complexity Analysis, Heaps & Heap sort
Binary Search & Ternary Search
Number Theory & Combinatorics: Part I
Dynamic Programming: Part I
Dynamic Programming: Part II
Graphs: Part I
Graphs: Part II
Graphs: Part III
String Algorithms: Part I
Segment Trees: Part I
When you make it to League 4, you start specialising in computer science. You’ll tackle its fundamental concepts with modules in mathematics: number theory and combinatorics. You gain next-level experience in competitive programming and are encouraged to participate in olympiads and other contests. The year closes with an introduction to graph theory and related algorithms.
Segment Trees: Part II
SQRT Decomposition and MO's algorithm
Cartesian Trees (Treaps)
Dynamic Programming: Part III
String Algorithms: Part II
Graphs: Part IV
Graphs: Part V
Computational Geometry: Part I
Number Theory & Combinatorics: Part II
In League 2, it gets seriously interesting. You progress to more advanced graph algorithms: finding the shortest paths and minimum spanning trees and you deep-dive into efficient data structures. You will learn about computational geometry, string algorithms and game theory. The Pro league aims to get you competing in national competition