Real-Time Backend

Back to Programs

We created this program for those of you, who want to learn how to work with large amounts of information in real-time.

During the first semester, we focus on the essential fundamentals, such as basic concepts of math and programming, which are the same for all programs.

In the Math & Statistic course, students will learn about discrete mathematics and the basics of probability theory. Algorithms & Data Structures covers the basic algorithms on graphs, data structures, and recurrence relations. Also, during the first semester, students learn how to process and analyze data, and build simple models based on this data in the Data Science course. In the Advanced Programming Languages course, students will learn about programming languages and their fundamental differences.

During the second semester, in the Operating Systems course, students will learn about various operating systems and their features. Networks & Clouds course goes over the basics of networking and security. The Systems Architecture course will cover the features of system architecture for different operating systems.

Real-Time Backend is the major course of this program, where students will be offered a real-life project example to work with a large amount of data.

Semester 1

Math & Statistics

  • Set Theory

  • Relations and Functions

  • Logic and Induction

  • Sequences

  • Number Theory

  • Combinatorics

  • Recurrence relations

  • Counting techniques

  • Graph Theory

  • Graphs and Numbers

  • Growth of Functions

  • The Probability of an Event

  • Discrete Random Variables

  • Continuous Probability

  • Conditional Probability

  • Distributions and Approximation

  • Sampling Theory

  • Statistics

  • Advanced Algebra

Algorithms and Data Structures

  • Sorting and Searching

  • Graphs (basics)

  • BFS and DFS

  • Dynamic Programming

  • LIS, LCS and other 2D problems

  • Heaps

  • Dijkstra, Floyd, Bellman-Ford

  • DFS applications

  • Knapsack problem

  • Dynamic programming over subsets

  • Amortized Time Complexity (Queue via Stack)

  • Disjoint Set Union

  • Dynamic programming on a tree

  • Data Structures. RSQ/RMQ, Sqrt Decomposition, Sparse Table

  • Minimum Spanning Trees

  • Matching

  • Segment Trees

  • Trie

  • Binary Search Trees

  • LCA

  • What is NP and how is it useful?

  • Strings

Data Science

  • AI Introduction

  • Machine Learning Basics

  • ML as a task of optimization

  • Hyperparameters

  • Probabilistic Approach in ML

  • Models Validation

  • Linear regression

  • Logistic regression

  • Decision tree

  • SVM algorithm

  • Naive Bayes algorithm

  • KNN algorithm

  • K-means

  • Random forest algorithm

  • Dimensionality reduction algorithms

  • Gradient boosting algorithm and AdaBoosting algorithm

  • Data Preprocessing

  • Time Series Forecasting

  • Ranking task

Advanced Programming Languages

  • The dawn of programming

  • Grammars

  • Programming Language Spectrum

  • Programming paradigms

  • Programming language syntax

  • ANTLR

  • Compilation and interpretation

  • Binding and memory management

  • Mutable vs. immutable data structures

  • Data-Oriented Programming

  • LLVM

  • Linking

  • Introduction to Clojure

  • Clojure macros

  • Languages for data

  • Constraint programming

  • Lua

  • Elixir

  • Learning and coding with LLMs

Semester 2

Networks & Clouds

  • What is DevOps?

  • OSI model and networking

  • Advanced networking and Web APIs

  • SSH and basic Linux CLI commands

  • Linux CLI commands and Bash scripting

  • Cloud Computing Explained

  • AWS: The Leading Cloud Service Provider

  • Containers: Virtual Machines of the Future

  • Advanced Docker

  • Introduction to AWS Lambda

  • AWS RDS

  • CICD Tools Review

  • CDN and Website Protection: Cloudflare & AWS CloudFront in Action

  • AI on AWS: Tools, Models, and Best Practices

Systems Architecture

  • C++ - syntax, OOP basics, UB, numbers

  • Rust - syntax, programming paradigms, safe/unsafe, comparison with C++

  • Memory Management. Stack and heap memory, variable sizes, Ownership, smart pointers

  • Memory Management. Core containers, iterators, internal implementations. Error handling

  • Syscalls, Processes, Scheduling

  • System limits - rlimit, cgoups, Linux namespaces, seccomp

  • Multithreading. Mutex, atomic operations. Condition variables, channels

  • Multithreading. Async functions, coroutines, green threads

  • Observability. Metrics, Prometheus, Grafana. Logging, telemetry, alerts

  • Distributed Systems

  • Data encoding: UTF-8, big-endian vs. little-endian, prefix encoding, possibly Huffman trees

  • Deserialization: JSON, Protobuf, etc.

  • Traffic balancing, Nginx

  • Databases, message queues

  • Assembler (Instructions, RISC, CISC, x86, Intel, asm basics)

Real-Time Backend (Architecture)

  • CAP. MapReduce

  • Storage. GFS

  • RPC. Models. Fault tolerance

  • Physical & logical time, clocks, ordering of events

  • Broadcast protocols

  • Consensus and transactions in distributed systems

  • Election

  • Consensus

  • FLP theorem

  • Raft algorithm

  • State machine replication

  • Distributed transactions

  • Atomic commit protocols

  • 2-phase commit

  • Distributed File System (DFS)

  • Industrial Systems Design & System Design. Principles and main concepts. Technology overview

  • TinyUrl/Pastebin Design Design of industrial systems

  • Netflix/Youtube architecture

  • Development of a group project together with a team from the Real-Time Frontend specialty

Operating Systems

  • UNIX Filesystem basics

  • Processes and signals

  • Permissions, ownership, setuid executables

  • Basics of Bash scripting language

  • System calls

  • Usage of system calls in C language

  • Fork/exec technique

  • Signal handing in C

  • Virtual memory

  • chroot, Linux namespaces and containers

  • Sockets

  • Operating system internals

Check admissions to learn if you are eligible and enrol.