# Time Series Analysis

## We created this program for those of you, who are interested in working with time series data.

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, students will get acquainted with the basics of machine learning, learn how the main machine learning models work (in the **Machine Learning** course), and also try to use them in practice on complex tasks in the **Data Science** course (part 2). Students of this program will also take a **Systems Architecture** training course.

The major course of this program is **Practical Time Series Analysis**. We will offer students to put into practice their knowledge of algorithms for constructing and analyzing time-series data, including, but not limited to, analysis of various indicators of the financial markets.

## 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

#### Machine Learning

Dimensionality Reduction

Support Vector Machines

Clustering algorithms

Gradient descent, Backpropagation

Perceptrons

Multi layered perceptrons

Neural networks for regression and classification problems

Boosting Algorithms

Gradient Boosting

Computer vision

Image processing

Convolution neural networks (CNNs)

Object detection

Reccurent neural networks (RNNs)

#### 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

#### Practical Time Series Analysis

Introduction to Forecasting

Baseline models

Random Walks

Moving Average Process

Autoregressive Process

Forecasting an Autoregressive Process

Mixed Autoregressive Moving Average Process

Non-stationary Time Series

Seasonality

External Variables

Forecasting Multiple Time Series

Introduction to Forecasting with Deep Learning

Baselines for Deep Learning

Linear Models

Implementing a Deep Learning Network

Long Short-Term Memory Models