MindTech Academy

Online course
Algorithms
and data structures

From classical algorithms to blockchain
in the Python 3 programming language

About the course

The course "Algorithms and Data Structures" is designed by novice programmers who want to learn how to design efficient and robust algorithms to successfully solve work problems, and increase their chances of being interviewed for higher positions.

Algorithm training takes place in the mode online with the study of the theoretical and practical part in the language of Python . After watching the instructional video tutorials, students reinforce the material with practice, also in Python.

The course will introduce you to both classic search and sorting algorithms and more modern ones: onion routing, blockchain, and digital signature.

What you'll learn

By going through all the lessons, studying the schematics and source codes, and solving the assignments you will learn:

  • Use classical data structures.

  • Select optimal structures for the tasks.

  • Determine the complexity of algorithms.

  • Optimize algorithms.

  • Design recursive algorithms in Python.

  • Optimize recursive functions.

  • Construct and traverse trees and graphs.

  • Sort arrays and linked lists.

  • Quickly search for data in arrays, trees, and text.

  • Search for and generate large prime numbers.

  • It is more efficient to use Python.

  • Design robust and fast algorithms.

  • Work with hash tables, dictionaries, and associative arrays.

  • Encrypt and compress data.

  • Generate and exchange encryption keys.

  • Sort data, including by multiple criteria.

  • Use combinatorial algorithms and functions.

  • Going through and optimizing trees.

Serious course
for future professionals

Algorithms are the foundation of any program, and the ability to write algorithms is a key skill of the modern developer.

We've prepared thoughtful HD lessons with lots of practice,
so that you not only understand how algorithms work and data structures work,
but they were also able to independently design, analyze and optimize .

  • 2000 slides and diagrams

    Each lesson contains a detailed diagram and description of how the algorithm works in Python.

  • 100 animations

    In particularly difficult and important places
    we've added animation.

  • 200 sources

    Except for charts and graphs,
    all algorithms contain well-documented sources
    in Python.

It is not enough to know only the programming language, you need to be able to effectively to use it.

Course Program

A sequential program with short video tutorials and practical assignments.
Teaching the construction of algorithms by example Python - one of the most popular programming languages.

  1. 1

    Introduction to algorithms

    7 lessons

    Familiarize yourself with the main characteristics of algorithms.
    Learn simple and effective ways to estimate the complexity of algorithms.

  2. 2

    Data structures

    10 lessons

    Familiarize yourself with basic data structures.
    Learn how to work with linked lists and arrays.
    Learn what a stack, queue, and deck are in Python.
    Learn how to choose the right data structure depending on the tasks.

  3. 3

    Sorting

    13 lessons

    Familiarize yourself with popular sorting algorithms in Python.
    Learn how to choose sorting algorithms to fit the tasks and data.
    Learn how to sort by multiple fields.
    Learn what sustainable sorting is.

  4. 4

    Search

    2 lessons

    Familiarize yourself with linear and binary search.
    Learn how to use interpolation search.

  5. 5

    Numerical algorithms

    7 lessons

    Learn how to generate random numbers as well as how to calculate the greatest common divisor.
    You will learn about fast degree algorithms.
    Expand your knowledge of prime numbers and learn how to build Eratosthenes' sieve and quickly check any number for simplicity.
    Familiarize yourself with basic numerical methods.

  6. 6

    Hashing

    9 lessons

    Learn what hash tables are and how python dictionaries and associative arrays are organized.
    Learn different ways of punching and dealing with collisions.
    Familiarize yourself with Bloom filters.

  7. 7

    Recursion

    11 lessons

    Explore the mechanism of recursive calls in detail.
    Learn basic recursive Python algorithms: calculating factorials, constructing Fibonacci series, 8 queens and Tower of Hanoi problems.
    Master combinatorial algorithms: combination, repetition, and placement.
    Learn how to optimize recursion and bring recursive algorithms to iterative algorithms.
    Familiarize yourself with fractals.

  8. 8

    Trees

    12 lessons

    Get to know the trees.
    Learn how to get around trees in width and depth.
    Learn how to search for elements in a binary tree.
    Familiarize yourself with stitched binary trees, AVL trees, 2-3 trees, B-trees, and red-black trees.

  9. 9

    Decision trees

    11 lessons

    Learn what decision trees are.
    Learn the full brute-force method, as well as the branch and bound method.
    Master tree optimization techniques.
    Learn how to search decision trees.

  10. 10

    Algorithms on graphs

    20 lessons

    Familiarize yourself with networks and graphs.
    Learn how to get around trees as well as find the shortest route.
    Master topological sorting.
    You will learn how about the loop search algorithm.

  11. 11

    String algorithms

    10 lessons

    Learn to look for information in texts.
    Familiarize yourself with the Knuth-Morris-Pratt algorithms,
    as well as Boyer-Moore-Horspool.
    Learn what syntax trees are.

  12. 12

    Cryptography

    12 lessons

    Familiarize yourself with substitution and permutation ciphers.
    Learn how SP networks and block encryption work.
    Learn how to apply the Diffie-Hellman protocol.
    Learn several uses of public key algorithms, including encryption, digital signature, and hybrid schemes.
    Learn about cryptographic hashing and its application in practice.
    Become familiar with the onion routing scheme and learn how Tor works.

  13. 13

    Compression

    5 lessons

    Learn about compression algorithms.
    Learn how to code a series of data.
    Familiarize yourself with the Huffman code.
    Master the Lempel-Ziva-Welch compression.
    Learn how lossy compression works using bitmap images and music formats as examples.

  14. 14

    Blockchain (bonus)

    4 lessons

    Familiarize yourself with the structure of the blockchain.
    Learn how to generate blocks and build them into a chain.
    Learn about the main challenges of blockchain.

Who will benefit from this course

The Algorithms course is suitable for trained Python programmers,
as well as students and developers in other languages,
who want to expand their skills with effective tools.

  • Алгоритмы для начинающих разработчиков

    Python programmers

    Learn to write efficient and fast algorithms in Python. Significantly expand the horizons of your skills.

    You will be able to better prepare for interviews with serious companies.

  • Алгоритмы для студентов

    Students

    Familiarize yourself with classical algorithms in practice, not just in theory.

    You will be able to hone your programming skills and prepare for the session.

  • Алгоритмы для программистов

    Self-taught programmers

    Fill in your missing algorithmic skills. Learn to write fast code and use efficient data structures to solve business problems.

How algorithms are trained

The algorithms course consists of video tutorials as well as practice assignments in Python.
Once you register, you will be able to familiarize yourself with free lessons and assignments so that you can assess the complexity of the topics and presentation of the material.

After paying for the course, you will receive full online access to all video tutorials, source code, assignments, instructor solutions and support forum.

Certificate

Students who learn the theory and solve all the problems - receive a certificate of completion of the course on algorithms.

You can add the certificate to your resume or send the link to your employer.

A certificate is a validation of your skills and knowledge.

Tariffs

  • Basic

    Learn JavaScript basics at your convenience

    • 60 video lessons

      Over 6 hours of video

    • Supplementary materials

      Tutorials, tables, code samples

    • Access to the course forever

      You can go back to the materials

    • Practical tasks

      There's no access

    • Teacher support

      No assistance is available

    • Certificate

      No confirmation of course completion

  • Advanced

    Practicing and deepening knowledge

    • 90 video lessons

      Over 9 hours of video

    • Supplementary materials

      Tutorials, checklists, code samples

    • Practical tasks

      200+ tasks on the simulator

    • Certificate

      Confirmation of programming skills

    • Teacher support

      No help available

  • Premium

    Maximize your JavaScript learning experience

    • 120 video lessons

      Over 12 hours of video

    • Supplementary materials

      Checklists, charts, reference solutions

    • Practical tasks

      300+ assignments with automatic checking

    • Teacher support

      Answers to questions within 24 hours

    • Certificate

      Course completion document

Any questions?

  • 1. Will your training program be right for me?

    In this course, we have removed complex math, formulas, and proofs, and focused on practical application of algorithms. This reduces the complexity of the course as a whole, but you will need to have a good command of Python to successfully complete it.

  • 2. How, when and at what time will I study?

    All lessons are recorded and available Online immediately after registration - training can begin at any time .
    You can watch the lessons at your convenience from any device, although we recommend using a computer or laptop.

  • 3. Can I interrupt training and then resume access?

    Yes, you can. We have no deadlines or time limits for the course.
    You can go on vacation in peace and then continue with your classes.

    However, we do not recommend doing large re-runs to avoid forgetting previously covered material.
    In case of long interruptions, you always you can start at the beginning .

  • 4. What programming language do you use in the course?

    All examples are given in Python. However, we try to minimize the use of Python peculiarities and provide universal code that will work in other languages with minimal changes.

  • 5. What should I do if I have difficulties during the training?

    Under each lesson and assignment there is a mini forum where students can communicate with the teacher and each other.
    If you have any questions, feel free to ask them through the forum and you will be will definitely help .

    Help usually arrives within 24 hours.