# 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

Number theory

Sets, functions, and sequences

Generalized Mobius function and asymptotics

Relations

Recurrence relations

Counting techniques

Logic and techniques of proof

Trees and graphs

Partitioning numbers into terms

Algorithms

Mathematical theory of sampling

Normal populations and distributions

Chi-square, t, and F distributions

Hypothesis testing

Estimation

Confidence intervals

Sequential Analysis

Correlation, regression

Analysis of variance

Limit theorems

Chromatic numbers of graphs and Kneser graph

#### Algorithms and Data Structures

Simple data structures

Sorting

Binary and ternary search

Divide and conquer method

Recursion

Hash functions and hash tables

Graphs

Dynamic programming

Greedy algorithms

Tree data structures

Balanced trees

Heap, priority queue, and more

String algorithms

Segment tree, Fenwick tree, SQRT-decomposition, Cartesian tree, and more

Iterating over all subsets for som sets

Optimizations

Enumeration of all combinations, permutations, other combinations

#### Data Science

Basic tools for data analysis

Simple data collection and analysis

Probability and expected values

Variability, distribution, and asymptotics

Intervals, testing, and Pvalues

Power, bootstrapping, and permutation tests

Logistic regression & Poisson regression

Prediction, errors, cross-validation

Caret package

Predicting with trees, random forests, and model-based predictions

Regularized regression and combining predictions

Exploratory data analysis & modeling

Prediction model

Creative exploration

Least-squares, linear regression, multivariable regression, residuals, and diagnostics

#### Advanced Programming Languages

Language design principles

Programming languages

Syntax description

Semantic description

Lexical and syntax analysis

Variables

Data types and assignment statements

Expressions and assignments

Parallel and concurrent programming

Functional programming

Logic programming

## Semester 2

#### Networks & Clouds

IoT (Business and Products, Architecture and Technologies, Networks)

Wi-Fi and Bluetooth

Cloud technology

Key security concepts and security tools

Authentication and access control

Windows/Linux/MacOS operating system security basics

Virtualization

Compliance frameworks and industry standards

Client system administration

Server and user administration

Cryptography and compliance Pitfalls

TCP/IP Framework, IP adressing and the OSI Model

Security (injection vulnerability, penetration testing, incident response, digital forensics, threat intelligence, thread hunting

Application security and testing

Phishing scams and more

#### Systems Architecture

System calls and interrupt handling

The concept of process, stream, and thread

Multitasking

Stream synchronization

Classification of types of memory

Pointers

Process memory

Disk storage device

File systems

Architecture: scheduler, memory manager, IPC

Basic elements of the operating system

#### Real-Time Backend (Architecture)

Processing and storage of large amounts of data

Data storage methods

Databases and their use

Implementation of an individual project for the course

#### Operating Systems

Processes and execution

Scheduling

Concurrency and Threads

Data structures and variables

I/O and directions

File systems

Data integrity and protection

Distributed systems

Memory, segmentation, paging, swapping