# Complex Logic

## Graduates of this special program will have general expertise in various areas.

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 **Product Strategy, Vision, Marketing, and Innovation** course, students will learn how to build their own project, create financial forecasts, and develop the project for the entire product. **Data Science **(part 2) will give an insight into machine learning, where students will try some of the most popular concepts. **Networks & Clouds** offers fundamentals of networks, storage, and security. In the **System Architecture** course, students will get familiar with the main concepts of systems architecture.

## Semester 1

#### Math & Statistics

Number theory

Sets, functions, and sequences

Logic

Induction

Sequences

Combinatorics

Relations

Recurrence relations

Graphs (basics)

Counting techniques

Graphs and Numbers

Growth of Functions

The probability of an Event

Conditional probability

Discrete Random Variables

Continuous probability

Sampling Theory

Statistics

#### Algorithms and Data Structures

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

Minimum Spanning Trees

Matching

Segment Trees

Binary Search Trees

LCA

What is NP and how is it useful?

Strings

#### Data Science

Basic tools for data analysis

Simple data collection and analysis

Data Types in Statistics

Visualization

Stat in Data Science

Probability and its applications

Estimation, Confidence Intervals

Hypothesis testing

Correlation and Dependence

Regression

Generalized linear model

Feature engineering (Linear Regression Deep Dive)

Decision Trees

ANOVA

#### Advanced Programming Languages

Grammars, Regular Expressions, Backus-Naur Form

Computation Models

Functional Programming

Clojure Programming Language (Basics, Concurrency, Actors, Refs, Atoms, Macros)

Compiling and linking

Monads

Custom hierarchies and multimethods in Clojure

Logical Programming

Prolog

LLVM (basics, garbage collection)

Constraint Programming

MiniZinc

Guiding the Search in Constraint Programming

Data Oriented Programming

Data storage and querying in XML ecosystem

## Semester 2

#### Networks & Clouds

OSI, analogues, comparison

Data layers of OSI, REST/RPC/SOAP/GraphQL, solutions for this levels

SSH, Telnet, working remotely, solving OverTheWire: Bandit

Media layers

Clouds

Containerization

IoT, smart home, zigbee/bluetooth, wifi, making smart home ourselves

#### Systems Architecture

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

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

Memory allocation, caching algorithms

Memory (its components), cache-friendly algorithms

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

Syscalls

Processes, Scheduling

Threads, mutexes, condvars, atomics

Verilog

System limits - rlimit, cgoups, Linux namespaces, seccomp

#### Data Science

Visual data exploration and communication

Imputation and outlier detection in time series exploratory analytics

Outlier detection using PyOD library, KNN, SVM and other methods

Forecasting using neural networks in pytorch

Data Analysis with Tableau

Declarative Visualization with Vega-Altair

Long short-term memory networks (LSTM) for time series

Recurrent neural networks (RNN) and Gated recurrent units (GRUs) for time series

#### Product Strategy, Vision, Marketing, and Innovation

Description of the project or product selected by the student or teacher

Building a business plan for the project and presentation of the project

Financial evaluation of the project, Risk assessment, and forecasts

Implementation of the project, search for sponsors and further promotion of the project