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