*Annotations to the special courses of the Department of Theoretical and Applied Informatics*

*2017-2018 academic year*

**2 semester (1)**

**1. Introduction to the Python programming language – Assoc. Zaretska I.T.**

The basic elements of the Python programming language are considered.

**2. Introduction to the programming language Basic – prof. Frolov VV**

The basic elements of the programming language Basic are considered.

**4 semester (1)**

**1. Algorithms of computational geometry – art. Off Vlasenko D.I.**

The course will consider the problems of constructing a convex hull in space, constructing a spin of a polyhedron, and calculating the diameter of a polyhedron.

Also, the problem of restoring the curve and surface from a given set of points will be considered.

**2. Symbolic calculations (on the example of SCM Maxima) – Petrov Ye.V.**

The course deals with methods for solving classical problems of mat. Analysis, algebra and diff. Equations with SCM Maxima package.

**5 semester (1)**

**1. The theory of computability – Polyakova**

The purpose of the course is to teach future specialists to the fundamentals of the theory of computability. Within the course, the basic concepts of the theory of computationality are taught: algorithm, computational function; Computing models – Turing machine, machine with unlimited registers, partially recursive functions; The method of numbering of computed Gödel functions, the concept of a universal computable function, the concept of solvability, partial solvability and insolubility of problems, and methods for proving solvability and insolubility of problems; The notion of complexity of computing and the definition of complexity classes P, NP.

**2. Introduction to numerical methods – associate professor. Dolya P.G.**

The course outlines the foundations of numerical methods and how to use them with tools.

**6 semester (2)**

**1. Theory of information and coding – prof. Rukkas K.M.**

General information on the theory of information. Quantity of information. Entropy Optimal encoding and compression of information (Shannon-Fenno codes, Huffman codes, arithmetic coding, dictionary compression methods).

Basics of impedance coding. Control of oddity. Matrix codes. Hamming Cheats. Cycle codes.

**2. Introduction to cryptography – Karolinsky Ye.O.**

**3. The theory of automata – prof. Zholtkevich G.M.**

**4. Object-Oriented Programming in Python – Assoc. Zaretska I.T.**

The basic elements of the object-oriented approach in the Python programming language are considered.

**5. Object-oriented programming in C # – Frolov VV
**

The basic elements of the object-oriented approach in the programming language C # are considered.

**7 semester (2)**

**1. Angular JS – popular frontend solution – Godun Ye.D.**

Typescript, Components, Data binding, Directives, Services, Dependency injection

**2. Analytical methods of geometric modeling – Assoc. The fate of PG**

The questions, connected with the strict mathematical description of elements of complex geometric form, as well as modern methods of modeling curves and surfaces on a computer are considered. The following sections are covered: interpolation and approximation of curves and surfaces; Theory of splines, methods of their analytical description; Geometric applications of the theory of R – functions; Lump functions and their application. The following topics are considered: explicit and parametric equations of complex curves; Explicit and parametric equations of piecewise polynomial functions and splines; Broken equation; Explicit and parametric equations of composite surfaces (for example, parametric equations of the pyramid, cube, prisms, etc.); Implicit equations of the boundaries of flat zones (for example, implicit square equation, triangle, etc.); Implicit equations of boundaries for three-dimensional zones (for example, implicit equations of a cube or a pyramid).

Note In fact, the course is a computer version of the advanced course of analytic geometry, with the addition of some “ocogoleometric” topics, the presentation of which is convenient (and vividly) conducted using computer mathematical systems. The course more than 10 years was read to students specializing in the department of geometry, however, it is useful to all mathematicians and “informatics”, especially those who did not have a separate course in analytic geometry.

**3. The theory of automata – prof. Zholtkevich G.M.**

**4. Topological Methods in Robotics – Assoc. Okrut S.I.**

Mathematical modeling of manipulators naturally leads to topological problems of constructing and analyzing configurations. The methods of computational topology for the analysis of homology of configuration spaces are considered. Direct and inverse kinematic task.

**5. Simulation of complex systems on the example of biological systems – Assoc. Vladimirova MV**

**8 semester (3)**

**1. The theory of automata and cyber-physics systems – prof. Zholtkevich G.M.**

**2. Mathematical methods of image processing-dotz. The fate of PG**

The course contains materials for familiarizing with modern methods of processing and some methods of image analysis. Using the system of computer mathematics (for example, Matlab), you will get acquainted with the methods for presenting digital monochrome and color images, mathematical methods for their processing and restoration. The course deals with the following topics: image as a mathematical function; Types of images; Algebraic methods of processing monochrome images; Spatial filtration; Two-dimensional discrete Fourier transform; Filtering in the frequency zone; Restoration of images in the presence of noise; Filters for spatial noise; Color image processing; Algebra of images; Detection of points and lines.

There are tutorials on various course topics on the page:

http://geometry.karazin.ua/~dolya/documents

**3. Development of applications for mobile devices – Medvedyuk D.**

Getting to know the development of the Android mobile platform. The creation of Android applications using various technologies and capabilities of devices (camera, gyroscope, location, bluetooth, etc.). Understanding the development environment, the basic elements of Android application, activity and fragments, use of service and broadcastreceiver, data storage, camera work, media work, work with maps.

**4. Modern Java technologies – Godun Ye.D.**

Lambdas, Streams, Functional interfaces, Java 9, AWS, Testing frameworks (Mockito, PowerMock), Spark, Reactive programming

**5. Modeling of information processes – prof. Rukkas K.M.**

Mathematical models of operations research. General statement of the task of the study of operations. Linear programming. Transport task. Purpose of appointment. Integer programming. Dynamic programming. Stochastic programming. Markov chains. Basics of the theory of mass service.

**6. Agent technologies – prof. Rukkas K.M.**

The concept of an agent. Agent structure. Options for the environment. Decision making under uncertainty. Fundamentals of training agents. Statistical teaching methods. Training with sub-script.

**7. Functional programming – Chernomaz B.O.**

In this course you will learn the basics of functional programming using Haskell. In addition to the basics of Haskell’s syntax, you will learn about the theoretical categorical fundamentals of functional programming, the types of output systems, covariance and contravariety of types and polymorphism of functions, functors and calculations using monads, and more. We also pay attention to the use of a functional approach in developing programs that arise in practice.

**9 semester (1)**

**1. Architecture of corporate systems – prof. Frolov VV**

The discipline implies understanding: the program organization of modern corporate information systems (CIS) and tools for their development and integration; Places of KIS in the processes of enterprise management; Methods of system analysis of the suitability of certain architectural decisions and methods of development in specific conditions of economic activity of the enterprise. As a result of studying the discipline the student must: know the principles of organization of software architecture of modern corporate information systems, standard means of integration of heterogeneous solutions as part of a unified system and methods of objective analysis of various options; Be able to apply the obtained theoretical knowledge to the decision of practical issues of tuning and integration of KIS in specific conditions of the enterprise; Have an idea of the potential of modern commercial KIS and development tools from leading international manufacturers.

**2. Modern Java technologies – Godun E. D.**

Lambdas, Streams, Functional interfaces, Java 9, AWS, Testing frameworks (Mockito, PowerMock), Spark, Reactive programming

**3. Grids of formal concepts in data analysis – off. Chernomaz B.O.**

In this course, you will learn the basics of lattice theory and its application part called Formal Concept Analysis (FCA). You will find out how the resulting data can be processed into so-called formal logic lattices, which can then be processed using algebraic manipulations and which can be visualized visually. You’ll also learn how lattices can be used to represent complex relationships in the concept hierarchy. Finally, you will learn how these methods can be used to find dependencies in the data and to the classification problems based on positive and negative examples.

**4. Methods of constructing artificial neural networks – associate professor D.P.G.**

**The technique of constructing artificial neural networks using the functions of the Matlab Neural Network Toolbox (NNT) package is considered.**

**5. Fractal dynamics – Assoc. Okrut S.I.**

1. Fractals arise both in inanimate nature and in systems of artificial origin, including in information systems. Various types of dimension, from small inductive dimension to Hausdorff dimension, are studied. The size of an object is a measure of its complexity. Examples of fractal structures are considered and their dimensions are calculated.

**10 semester (2)**

1. Modern Java Technologies – Godun E. D. (Optional)

Lambdas, Streams, Functional interfaces, Java 9, AWS, Testing frameworks (Mockito, PowerMock), Spark, Reactive programming

**2. Grids of formal notions in data analysis – off Chernomaz B.O.**

In this course, you will learn the basics of lattice theory and its application part called Formal Concept Analysis (FCA). You will find out how the resulting data can be processed into so-called formal logic lattices, which can then be processed using algebraic manipulations and which can be visualized visually. You’ll also learn how lattices can be used to represent complex relationships in the concept hierarchy. Finally, you will learn how these methods can be used to find dependencies in the data and to the classification problems based on positive and negative examples.

**3. Models and methods of processing large data – Morozova A. G.**

The special course examines the main models of organization of large data and methods of their processing. As models of large data organization, the OLAP star schema, file systems are distributed as an example of the GFS (Google File System) and Apache HDFS (Hadoop Distributed File System) architecture. Also in the special course are considered the main programming models for large data, in particular the MapReduce algorithm and its implementation in the Hadoop project, as well as the use of the Hadoop project to develop distributed data analysis programs Big Data and the ETL process for obtaining analytical data from operational data.

**4. Methods of constructing artificial neural networks – Assoc. Dolya P. G.**

The technique of constructing artificial neural networks using the funyctions of the Matlab Neural Network Toolbox (NNT) package is considered.

**11 semester (5)**

**Cluster analysis – Assoc. Dolya P. G.**

The mathematical methods used in the classification of multidimensional observations or objects and which are based on the determination of the distance between objects with the subsequent allocation of groups of objects (clusters) are considered. The following topics are considered: the basic concepts of cluster analysis; The distance between the objects, the degree of proximity and similarity; Distance between clusters; Functional quality of the partition; Calculating the number of clusters; Hierarchical cluster procedures; Classification of objects by the method of middle communication; Classification of algorithms of “nearest neighbor” and “distant neighbor”; Means of graphical representation of solutions, dendrograms.

**2. Methods of constructing artificial neural networks – Assoc. Dolya P. G.**

The technique of constructing artificial neural networks using the functions of the Matlab Neural Network Toolbox (NNT) package is considered.

**3. The theory of types in programming – prof. Zoltkevich G. M.**

The purpose of the training is to explain how to use system types to improve the quality of the software development process. Modern software design techniques have a wide range of formal methods to ensure the reliability of the software development process. Powerful tools such as dynamic and modal logic, languages of algebraic specifications, denotational semantics lie at one end of this range. But the price of their power is the complexity and the need for a high level of user qualification. System types lie on the other end of the range. Appropriate methods are widely used by compilers and easy software tools to control the correctness of programs. The course focuses on the application of system types in programming languages, rather than on the theory of types itself.

**4. Approximation of data using artificial neural networks – prof. Frolov V.V.**

The objectives of mastering the discipline are the formation of a complex of theoretical knowledge and methodological foundations in the field of development and research of intellectual systems of information processing, as well as practical skills necessary for the implementation and practical use of such systems. In particular, to solve problems of approximation it is necessary: to give an idea of applied software tools based on neural networks; Give an idea of instrumental software for training neural networks and experiments with them; Prepare students to use neural network technologies in research activities.

**5. Estimation of distributed systems performance – associate professor. Kabalyants P.S.**

Data transfer in information systems is modeled as a flow of events. For distributed systems, there is the task of synchronizing a collection of event flows. The course discusses the analysis of distributed scheduling systems, which are modeled using a set of event flows.

**6. Deep Machine Learning-Assoc. Kabalyants P. S.**

Depth learning here is understood as a class of machine learning algorithms that are based on the learning of several layers of attributes or representations of data. Signs of higher levels are derived from the signs of lower levels for the formation of a hierarchical representation. Basic learning algorithms are related to multilayer neural networks.

**7. Models and methods of processing large data – Morozova A. G.**

7B course deals with the main models of organization of large data and methods of processing them. As models of large data organization, the OLAP star schema, file systems are distributed as an example of the GFS (Google File System) and Apache HDFS (Hadoop Distributed File System) architecture. Also reviewed are the main programming models for large data, such as the MapReduce algorithm and its implementation in the Hadoop project, as well as the use of the Hadoop project to develop distributed data analysis programs Big Data and the ETL process for obtaining analytical data from operational data. Models and methods of processing large Data – art. Off Morozova A. G.

**8. Using the programming language R with databases (R and databases) – Morozova A. G.**

The course discusses the use of the programming language R to analyze data in relational databases. The course examines the basic design of language R, the mechanism for connecting to relational databases, access and database queries, updates and data changes, as well as data analysis methods using simple visualizations.

**9. Program Agents – Rukkas K. M.**

Basic education models. Data Processing. Search for dependencies. Training with reinforcements. Training on the basis of discretion. Study and use the scilearn package to solve the tasks of training agents.

**10. Modeling of information processes – prof. Rukkas K. M.**

**11. Visualization of data in the environment R – Art. Off Vlasenko D.I.**

The course examines the methods of pre-processing and eliminating contradictions in data for the disclosure of information using the languages R and Python. The following tools will be considered: packages ggplot2, dplyr, shiny for language R and pandas packages, mathplotlib for Python language. Other support packages will also be considered.

**12. Fractal dynamics – Assoc. Okrut S.I.**

Fractals arise both in inanimate nature and in systems of artificial origin, including in information systems. Different types of dimension, from small inductive dimension to Hausdorff dimension, are studied. The size of an object is a measure of its complexity. Examples of fractal structures are considered and their dimensions are calculated

**13. Topological Methods in Robotics – Assoc. Okrut S.I.**

Mathematical modeling of manipulators naturally leads to topological problems of constructing and analyzing configurations. The methods of computational topology for the analysis of homologous groups of configurations spaces are considered. The direct and reverse kinematic problem is considered.

**14. Modern methods of processing large amounts of data – Matviyenko T.V.**

The course is devoted to the methods of constructing large high-load systems (clusters), the advantages and disadvantages of working with them, algorithms of distributed computing in them. We will also talk about so-called noSQL data stores on the Apache Cassandra example, which are widely used in such systems.

**15. Stream processing of large volume data – Matviyenko T.V.**

For complex high-load systems it is very important to be able to react in real time to any changes. Moreover, sometimes a delay of a couple of seconds can lead to huge financial losses. The course is devoted to the questions of creating such systems, their fault tolerance, speed and consistency of data in them.

**16. Use of Cloud-Providers (OWS) in Modern Distributed Systems – Matviyenko T.V.**

Amazon Web Services is a platform that currently provides over 70 different cloud services for data storage, analytics, visualization, management, etc. Most modern projects are being built, if not entirely on the AWS infrastructure, using exactly at least part of it. As part of the course, we will look at the most popular of them.