Real-Time Backend

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