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.
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.
More on trees - Prefix trees. Automata.
Interval trees. Dynamic Order Statistics.
Regular trees with higher dimension. KD-trees. BVH.
Introduction to GPGPU programming - how GPU works, thread divergence, dot product reduction, prefix sum.
More on probabilities and statistics. Monte Carlo and Las Vegas algorithms.
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. Armyanov has more than 10 years of professional experience as a programmer.
Lyubomir Koev is a C++ developer at Chaos where he has worked for more than six years. His core strengths are C++ and algorithms (his weakness is gaming!). For the past seven years, he’s been a teaching assistant at FMI at Sofia University for courses in C++, data structures and algorithms — you can find his published materials on his GitHub profile.
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 of the European Junior Olympiad in Informatics.
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.
Vasil Pashov is a member of the GPU team at Chaos for more than 3 years. His main interests are GPU programming, computer graphics, physics (mainly fluid dynamics) and applied mathematics. He has been assistant at the Faculty of Mathematics and Informatics (FMI) at the Sofia University for courses in Numerical Methods, Numerical Methods for Differential Equations, Introduction to programming and OOP.