Chaos Camp

C++ Algorithmic Course 2020 - 2021

Chaos Camp 2020 - 2021 is a series of free courses for young people interested in gaining knowledge and skills in different aspects of coding. After successfully attending one of these courses, you will also have the opportunity to apply for our 2021 Chaos Internship program.

Chaos Camp 2020 - 2021 will start with a C++-based algorithmic course in November 2020 and will continue with a Golang course in January 2021. The courses will be held online in Bulgarian language. Up to three onsite live sessions will be organised for each course.  

C++ Algorithmic Course 

This intensive training will start in early November. The main sessions will be held online 2 times per week from 18:00. 

Who is it for?  

C++ Based Algorithmic Course is suitable for students and junior professionals interested in mathematical algorithms, coding and cutting-edge technologies. 

What are the benefits? 

By successfully completing the C++ Based Algorithmic Course you will acquire fundamental knowledge of a wide variety of algorithms and will gain highly valuable skills and knowledge. The best performers during the course will have the chance of participating in Chaos Internship 2021 program. 

How can I apply? 

Entry is now closed. Thank you to all that took part!


  • Entry test
  • Data types and their behavior. Some math algorithms. Dealing with the floating point numbers. Precision in floating point calculations. Specifics.
  • A high level look at the computer architectures. Memory structure. Why we need to know that? Access patterns and according data arrangement.
  • Recursion. Back tracking. Memoization.
  • Statistical and probabilistic algorithms. Randomized algorithms.
  • Introduction to parallel calculations and algorithms. Specifics and what to be aware of. A simple example with OpenMP. Examples with statistical algorithms.
  • Sorting algorithms. Types, specifics. Generic algorithms: Selection sort, insertion sort, bubble sort, shaker sort, Shell sort, merge sort. Quick sort.
  • Data dependent algorithms.
  • Counting sort, radix sort.
  • Searching - linear, binary, interpolation and parallel.
  • Heap, Heap sort. Hash functions and hash tables.
  • When we run out of memory - external searching and sorting. Indexing.
  • Mid-term exam.
  • Some special linear data structures - Chunk array, Skip list.
  • Non-linear data structures. Trees, DFS and BFS. Binary ordered tree. When we can use it and when to avoid it.
  • How to fix the broken tree? Balanced trees. SDW algorithm for balancing.
  • Self-balancing trees. Red-Black tree. AVL tree
  • Shared access to the tree. Parallel building and searching in a BST.
  • B-trees.
  • More on trees - Prefix trees. Automata.
  • Interval trees. Dynamic Order Statistics
  • Regular trees with higher dimension. KD-trees. BVH.
  • More on probabilities and statistics. Monte Carlo and Las Vegas algorithms.
  • Final exam.


Associate Professor Petar Armyanov, Ph.D

Associate Professor Petar Armyanov, Ph.D. holds an MSC and Ph.D. degree in Informatics from Sofia University St. Kliment Ohridski. He joined the faculty in 2016 to teach 12 subjects all related to programming. He was also the assistant coach of the University’s programming team. His interests include algorithms, programming languages, computer graphics, and high-performance computing. Additionally, Armyanov has more than 10 years of professional experience as a programmer.

Lyubomir Koev
Lyubomir Koev is a C++ developer at Chaos where he has worked for more than four years. His core strengths are C++ and algorithms (his weakness is gaming!). For the past six years, he’s been a teaching assistant at FMI at SU for courses in C++, data structures and algorithms — you can find his published materials on his GitHub profile.

Guest lecturers

Associate Professor Boyko Bantchev, Ph.D

Associate Professor Boyko Bantchev is an alumnus of Sofia University and has been teaching there for many years. Being affiliated with the Institute of Mathematics and Informatics of the Bulgarian Academy of Sciences, he does some research, experimentation, computer programming, and teaching in the fields of programming languages, geometric computing, vector computer graphics, and programming in general.
Professor Krassimir Manev, Ph.D

Krassimir Manev is a Bulgarian mathematician and computer scientist, professor in New Bulgarian University. He has years of experience in the Bulgarian National Olympic team in informatics and from 2014 to 2017 he is the President of the International Olympiad in Informatics. He is also а founder and President of EJOI.
© 2023 Chaos Software EOOD. All Rights reserved. Chaos®, V-Ray® and Phoenix FD® are registered trademarks of Chaos Software EOOD in Bulgaria and/or other countries.