PROGRAMMING GROUP CLASSES
Computer Science online group classes
Welcome to a comprehensive learning journey designed for students of all levels, from absolute beginners to those aiming to compete in programming Olympiads.
Our program starts on 21st of September!
Inside the classroom
1.5 hours a week
Schedule
Every Saturday and Sunday,
10:00 AM - 11:30 AM,
12:00 PM - 1:30 PM.
Extra activities
Each group session is paired with an extra activity for the students to practice and learn new skills. Extra activities include webinars, team and solo contests.
Self-study activities
2 hours a week
Practice exercises
Students receive material to practice at their own pace.
Private tutoring
Students can request private tutoring sessions to strengthen their abilities.
A personalized journey for every student
The Leagues
Our program is organized in 5 Leagues. Once per 20 classes students take the exam in order to try to advance to the next League. Students start in the League that matches their current ability.
Placement
Each student is initially assigned to the League they choose. During the first class instructor will decide whether this League is suitable for this particular student or not, and if not, assign them to a different League. As a result, students are always placed in a group with peers at the same level and progress naturally.
League 1
League 1 provides an ongoing learning journey, allowing for continuous growth and refinement in competitive programming skills without a defined end.
Our approach
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.
Our program can be divided into 3 stages:

League 4-5
Learn the programming language, fundamental concepts, algorithms, and data structures

League 3
Develop skills using the most used algorithms and data structures in computer science.

League 1-2
Learn advanced algorithms and data structures. Students are prepared to participate in national and international olympiads including IOI.
The Leagues structure

League 5

League 4
Learn the basics of programming, fundamental concepts.

League 3
Enhance your Python skills and tackle more complex projects through engaging and practical problem-solving exercises.

League 2

League 1
Learn advanced algorithms and data structures. Students are prepared to participate in national and international olympiads including IOI.
Topics per module
- 01
Understanding the Scratch interface
- 02
Creating sprites and backdrops
- 03
Using motion and looks blocks
- 04
Working with sound and events
- 05
Creating sequences of actions
- 06
Using loops for repetition
- 07
Implementing conditionals for decision-making
- 08
Handling variables and simple data
- 09
Developing interactive stories and animations
- 10
Basic debugging and troubleshooting
League 5
The beginning is a great place to start. This chapter introduces students to the fundamentals of programming using Scratch, a visual programming language. The interactive and visual nature of Scratch helps learners grasp core programming concepts through engaging projects and games. Developing these skills demands serious practice, that’s why we have over 200 practical problems ready to go.

Topics per module
- 01
Introduction to Python and its Environment
- 02
Python Syntax and Basic Commands
- 03
Data Types and Variables in Python
- 04
Input and Output Operations
- 05
Conditional statements: if, elif, else
- 06
Looping structures: for and while loops
- 07
Simple function definitions
League 4
This chapter bridges the gap between visual programming in Scratch and text-based programming in Python. Students learn Python syntax and basics, comparing it with Scratch to ease the transition. They will replicate simple Scratch projects in Python to solidify their understanding.

Topics per module
- 01
Functions: Definition and Usage
- 02
Working with Lists and Dictionaries
- 03
Basic File I/O Operations
- 04
Introduction to Algorithms and Flowcharts
- 05
Basics of Object-Oriented Programming (OOP)
- 06
Creating and Using Simple Classes
- 07
Developing Intermediate-Level Projects
- 08
Error Handling Basics
League 3
This chapter builds on basic Python knowledge, introducing more programming concepts such as functions, lists, and dictionaries. Students will engage in problem-solving using algorithms and flowcharts, and get a primer on object-oriented programming.

Topics per module
- 01
Advanced Functions and Recursion Basics
- 02
Introduction to Data Structures: Stacks, Queues, and Linked Lists
- 03
More on Object-Oriented Programming: Inheritance and Polymorphism
- 04
Algorithm Basics: Searching and Sorting
- 05
Intro to Dynamic Programming Concepts
- 06
Practice with Simple Competitive Programming Problems
- 07
Developing More Complex Projects and Games
- 08
Regular Coding Practice Sessions and Peer Reviews
League 2
This chapter explores more advanced Python topics in a less challenging manner, focusing on data structures, algorithms, and more complex projects. Students will also get an introduction to competitive programming concepts.

Topics per module
- 01
Introduction to Olympiad Programming
- 02
Transitioning to Competitive Programming Languages (e.g., C++)
- 03
Advanced Algorithms and Data Structures
- 04
Graph Theory and Network Flow
- 05
Advanced Problem-Solving Techniques
- 06
Practice with Real Olympiad Problems
- 07
Time and Space Complexity Optimization
- 08
Strategies for Different Types of Olympiad Challenges
- 09
Mock Competitions and Timed Practices
- 10
Reviewing and Analyzing Top Solutions
League 1
Students in League 1 can count themselves amongst the top 3% of programmers in the world. In this final chapter, students focus on preparing for programming Olympiads and may transition to different programming languages used in competitions. They will practice extensively with Olympiad-style problems and learn strategies for excelling in competitive environments.
