Welcome to a comprehensive learning journey designed for students of all levels, frm absolute beginners to those aiming to compete in programming Olympiads.
Every Saturday and Sunday,
10:00 AM - 11:30 AM,
12:00 PM - 1:30 PM.
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.
Students receive material to practice at their own pace.
Students can request private tutoring sessions to strengthen their abilities.
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.
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 provides an ongoing learning journey, allowing for continuous growth and refinement in competitive programming skills without a defined end.
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.
Learn the basics of programming, fundamental concepts.
Enhance your Python skills and tackle more complex projects through engaging and practical problem-solving exercises.
Learn advanced algorithms and data structures. Students are prepared to participate in national and international olympiads including IOI.
Understanding the Scratch interface
Creating sprites and backdrops
Using motion and looks blocks
Working with sound and events
Creating sequences of actions
Using loops for repetition
Implementing conditionals for decision-making
Handling variables and simple data
Developing interactive stories and animations
Basic debugging and troubleshooting
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.
Introduction to Python and its Environment
Python Syntax and Basic Commands
Data Types and Variables in Python
Input and Output Operations
Conditional statements: if, elif, else
Looping structures: for and while loops
Simple function definitions
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.
Functions: Definition and Usage
Working with Lists and Dictionaries
Basic File I/O Operations
Introduction to Algorithms and Flowcharts
Basics of Object-Oriented Programming (OOP)
Creating and Using Simple Classes
Developing Intermediate-Level Projects
Error Handling Basics
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.
Advanced Functions and Recursion Basics
Introduction to Data Structures: Stacks, Queues, and Linked Lists
More on Object-Oriented Programming: Inheritance and Polymorphism
Algorithm Basics: Searching and Sorting
Intro to Dynamic Programming Concepts
Practice with Simple Competitive Programming Problems
Developing More Complex Projects and Games
Regular Coding Practice Sessions and Peer Reviews
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.
Introduction to Olympiad Programming
Transitioning to Competitive Programming Languages (e.g., C++)
Advanced Algorithms and Data Structures
Graph Theory and Network Flow
Advanced Problem-Solving Techniques
Practice with Real Olympiad Problems
Time and Space Complexity Optimization
Strategies for Different Types of Olympiad Challenges
Mock Competitions and Timed Practices
Reviewing and Analyzing Top Solutions
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.