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