Real-Time Frontend

This specialty was created for those who are interested in front-end development.
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, you will first get acquainted with the main tools of Front-end development in the Introduction to Front-End Development course. In parallel with this, you will learn JavaScript, React, TypeScript and Angular in the Frontend programming languages course, as well as learn the principles of UX / UI Design. The result of the semester will be a written group project on the Real-Time Frontend course.
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
Introduction to Front-End Development
HTML, CSS and Javascript
Web pages, websites and web applications
Popular development tools
Frameworks and libraries
APIs and services
HTML documents, linking documents, images in HTML, HTML and tables, forms
Document Object Model
Web accessibility
Selection and styling, box model, responsive design
Single page application
Frontend programming languages
JavaScript. Programming paradigms, DOM, testing
TypeScript. OOP, decorators, modules, types, interfaces, generics, namespaces
React. React components, props, children, dynamic calculation, lists, keys, common hooks, state, lifestyle, work with forms, router, context, useReducer
Redux. Redux toolkit, middleware, toolkit-query, react-query
Node. Web server, configuration/dependencies, env, event loop, errors, modules, npm, typescript, file system (path, env), express, routing, postman, authentication, middleware
MongoDB. NoSQL, installing (compass), populating data, CRUD, relations, joins
UX/UI Design
Familiarity with UX and UI
UX goals + quality components
UX process
Figma
Design process
Audience and basic researches
Tools of Empathy
Structure and navigation
Composition
Images and colors
Typography and Icons
Basic UI elements
UI Kit and design system
Mobile apps
Complex website design
Animation, animation Figma, animation Aninix
Prototyping and testing
Real-Time Frontend
Project fundamentals, creating a modern HTML structure for a web application
UX, validating forms and writing unit tests
Table reservation system using React
Development of a group project together with a team from the Real-Time Backend specialty