# 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

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

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

React, React Components, Data and State, Hooks, Redux, JSX and testing

Navigation, Updating and Assets in React.js

TypeScript

The typing system of TypeScript

Common types in Typescript

Functions in TypeScript

Interface, Modules and Loaders

Angular

Templates and mustaches, computed props, and directives

Custom directives

Components, events, modules, and routing.

#### UX/UI Design

Familiarity with UX and UI

UX Goals + Quality Components

UX process

Figma's first steps

Tools of empathy

Design evaluation

Form design

Components in user interface design

Frames, layers and basic shapes

Type, Text, Meshes and Constraints

Manipulation elements

Working with images

Frame

Usability 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