Target Age: Grade VII and above (school students only)
Registration Prerequisites:
- Basic computer skills;
- Basic mathematical and logical reasoning skills;
- Basic knowledge of programming fundamentals is preferred;
- Interest in problem-solving and analytical thinking is preferred.
Format: Online
Course Duration: 1 month (12 sessions)
Session Frequency: 3 days a week
Session Duration: 1.5 hours
Registration Period: October 20 – November 6, 2026
Teaching Period: November 9 – December 11, 2026
Maximum Number of Participants: 20–25 participants
Course Overview
The course introduces participants to the theoretical foundations of basic, fundamental algorithms and elementary data structures. Participants will learn the principles of selecting optimal algorithms and develop basic skills for constructing efficient algorithms.
Lesson 1 (2 hrs)
Searching and Sorting:
Overview of general objectives. Algorithms as a technology. Explanation of the practical importance of algorithms.
Searching: searching for a single element equal to a given element and multiple elements equal to a given element in an array. The sentinel (barrier) search method. Finding the maximum and minimum elements in an array. Quadratic time sorting. Selection sort.
Lesson 2 (2 hrs)
Searching and Sorting:
Exchange sort (Bubble sort). Enhanced search method – Binary search. Insertion sort (simple insertion and binary insertion sort).
Lesson 3 (2 hrs)
Integer Arithmetic Algorithms:
Divisors and multiples. Finding the divisors of a number, prime numbers, various algorithms for prime testing, prime factorization using odd number methods.
Lesson 4 (2 hrs)
Integer Arithmetic Algorithms:
Algorithms for finding all prime numbers in the range 1 to N – the Sieve of Eratosthenes and its alternative algorithms. Finding the Greatest Common Divisor (GCD) of numbers – Euclid’s algorithm. Finding the Least Common Multiple (LCM) of numbers.
Lesson 5 (2 hrs)
Integer Arithmetic Algorithms:
Arbitrary-precision (long) numbers: converting standard representation of a number to tabular representation, converting tabular representation back to standard representation, Horner’s method (Horner’s scheme).
Lesson 6 (2 hrs)
Integer Arithmetic Algorithms:
Arithmetic operations on long numbers – division of a tabular-represented number by a standard-represented number, addition, subtraction, and multiplication of multi-digit numbers.
Lesson 7 (2 hrs)
Dynamic Programming:
The essence of dynamic programming, breaking down problems into subproblems. Concept of recurrence relations.
Organization of 1D and 2D tables, calculating elements of 1D and 2D tables (Staircase problem, Binary array problem).
Lesson 8 (2 hrs)
Dynamic Programming:
Calculating elements of 2D tables with additional constraints (Knapsack problem), Number Triangle, Longest Increasing Subsequence (LIS).
Lesson 9 (2 hrs)
Data Structures:
Queue: basic definitions, implementing a queue using an array, operations on a queue and their implementation.
Stack: basic definitions, implementing a stack using an array, operations on a stack and their implementation.
Evaluation
- Practical assignments;
- Final testing;
- Certificate.
