List of academic disciplines of the Department of DSAS
List of academic disciplines of the Department of DSAS
№
Name of the discipline
Description of the discipline
1
Automated control systems
Learning and consolidating the skills of working with automated control systems, their classification.
2
Algorithms and data structures
This course introduces students to the basic concepts of data structures and related algorithms.
Course topics include recursion, object-oriented programming philosophy, basic data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), algorithm analysis, and algorithm design strategies.
3
Software Requirements Analysis
Mastering methods of identifying and formalizing software system requirements.
Study of requirement representation languages and models, analysis of system and quality requirements. UML language. Business requirements for the system, software requirements management. Defining requirements for various systems – web systems, business systems. Standards for requirements documentation.
4
Computer Architecture
Study of the architecture, characteristics, principles of operation, and software control methods of all functional units of modern computers.
Covers: the current state and prospects of computing technology development; structure, organization, and characteristics of processing units of computing systems, storage devices, peripheral equipment, interfaces; systems engineering and operating principles of main computer types.
5
Software Architecture and Design
In-depth study of software design.
Continuation of studying design patterns, development environments, and software architectures. Exploration of existing middleware architectures. Design of distributed systems using middleware. Component-based design. Measurement theory and the use of metrics in design. Design considering qualities such as performance, security, safety, reusability, reliability, etc. Modifying internal parameters and complexity of software. Evaluation and evolution of software design.
6
Databases
Study of concepts and methods of working with databases:
principles of database system organization, information models and systems, data modeling methods, concepts and methods of working with relational databases, stages of database design, development and operation, and database management systems. Special attention is given to acquiring skills in developing application programs for databases.
7
Software and Data Security
Security issues are an important part of implementing new information technologies across all areas of society.
The widespread use of computing and telecommunication systems leads to fundamentally new opportunities for unauthorized access to resources and information system data, resulting in high vulnerability. Therefore, ensuring the integrity, reliability, and availability of information is a crucial factor for the success of any organization.
8
Group Dynamics and Communication
The course "Group Dynamics and Communication" aims to teach the basics of oral, written, and graphic communication for software engineers.
The goal is to study and apply principles of documentation writing, types of documents, presentations, basics of effective work and oral communication with colleagues and in interpersonal interactions, motivation of people, concepts of group dynamics, principles of communication, persuasion and influence on people, and methods of avoiding stressful and conflict situations.
9
Extreme Programming
Study of the XP methodology and introduction to the main 12 practices of agile programming.
10
Empirical Methods in Software Engineering
Mastering the principles of applying empirical methods in the field of software engineering.
Covers basics of descriptive statistics, discrete and continuous probability distributions, methods for estimating regression parameters, correlation, statistical tests most commonly used in software engineering. Also includes experimental design methods and hypothesis testing. Application of empirical methods for analyzing performance and reliability of software systems, etc.
11
Information Security
Introduction to the main data encryption algorithms.
Study and consolidation of skills in implementing data protection algorithms in computer networks.
12
Instrumental Software Tools
Introduction to testing, mathematical, and spreadsheet processors of the Windows operating system.
13
Intelligent Data Analysis
The course aims to study the theoretical foundations of information processing using
various methods for evaluating multi-faceted relationships in data. Methods for representing unknown knowledge and patterns, technologies for discovering logical patterns and revealing the internal structure of data, acquiring skills in analyzing and using technologies for data preparation, analysis, and analytical summarization.
14
Intelligent Systems
Study of theoretical principles of organizing intelligent systems, methods of analysis and
design of subject domains, acquisition of practical skills in development, representation, and implementation on computers of instrumental software tools, conceptual models of problem domains and software support, agent technologies, machine learning, and neural networks.
15
Information Banking Systems
The course aims to study types of data processing systems,
classification and properties of information systems, basic principles of functioning of factual and documentary systems, automation of technological formation processes.
16
Software Construction
Study of general principles of software design.
Covers formal methods of software development, fundamentals of formal language description theory based on grammars and regular expressions, methods of lexical and syntactic analysis, principles of scanners and parsers operation, tools for automatic generation of scanners and parsers for programming languages based on specifications, and tools for automatic software design and development.
17
Human-Computer Interaction
The course aims to study concepts, principles, and tools used in
creating human-computer interfaces for software systems.
The course objectives include: acquaintance with concepts such as interface, interface style, interface quality, types of models used in interface design; study of basic processes of human perception and learning; mastering standards and principles of ergonomic application interface design; studying main aspects of programming graphical user interfaces (GUI); studying and practical use of various interface testing methods.
18
Software Project Management
The course aims to teach students the basics of project management theory for software development
and to acquire practical skills in planning, controlling, and optimizing software development processes. Upon completion, students should understand the basic concepts of project management, be able to identify and classify projects and project management tasks, apply systematic approaches and methods in project management, and use modern practical tools for supporting project management.
19
Networks and Streams
Study of technologies based on Ethernet (FastEthernet, GigabitEthernet),
TokenRing, FDDI. Technologies of global networks X.25, FrameRelay, ATM. Communication in networks and modem connection via dedicated and switched channels (ISDN, xDSL, V.x). Web, FTP, telnet services. Network utilities through operating systems (Windowsxx, NetWare4.x, 5.x, Linux). Network protocols (TCP/IP, IPX/SPX). Methods of network switching, methods of improving network efficiency. Routing in networks and protocols (RIP, OSPF).
20
Software Modeling and Analysis
Modeling and analysis are considered fundamental concepts in any engineering
discipline because they are necessary for documenting and evaluating design decisions and alternatives. Modeling and analysis are primarily applied to the analysis, specification, and validation of requirements. Requirements represent the real needs of users, clients, and other stakeholders whose interests are affected by the system.
21
Multitasking Programming
The course aims to study methods for creating parallel algorithms and programs. Modern technologies of parallel data processing (SSE), execution of instructions (superscalar), functions (multithreading), and programs (multiprocessing) are considered, along with the mathematical apparatus for creating parallel algorithms, stages of parallel program development, evaluation of computational complexity in different execution modes, and modern technologies for creating, debugging, and analyzing the execution of such programs.
22
Multimedia Technologies
The course aims to form methodological concepts for software engineers
about multimedia software development technology, mastering virtual reality technologies based on the principles of combining audio and visual information representation. Students should become familiar with methods and provisions of theory and practice of development, prospects and trends in multimedia technology development, and acquire knowledge of principles, technologies, and software products for storing and distributing multimedia information on the Internet, digital animation and audio accompaniment on web pages, and software technologies for creating virtual reality.
23
Object-Oriented Programming
This course is an introduction to object-oriented programming (OOP).
It begins with an overview of control structures and common data structures focusing on arrays. Then the main OOP concepts are introduced, with special attention to defining and using classes. Different programming languages in relation to OOP are considered, along with the most common algorithms, basic algorithm complexity analysis, and certain software engineering topics.
24
Operating Systems
Mastering fundamental knowledge in the use and development of operating systems.
The course covers classification of modern operating systems, their architecture and design principles, ensuring parallelism in single- and multi-processor systems, management of external devices, process and thread management, and memory management.
25
Computer Network Organization
Student knowledge in the field of modern networking technologies.
After completing the course, students should understand concepts, principles, and rules of building LAN and WAN networks. This is a general course on network technologies. Students will use technologies, procedures, and equipment for communication and operation of computers in networks. Topics include: network classification, OSI model and IEEE standards, network equipment (hubs, multiplexers, switches, routers, gateways), communication protocols (HDLC, PPP, SLIP).
26
Fundamentals of Algorithmization
Study of basic programming algorithms. Reinforcement of skills in using flowchart editors.
27
Fundamentals of Information Flow Integration
The program involves students studying the basic principles of quantitative and qualitative
analysis of processes in the modern information space using information flow analysis methodology. The aim of this special course is to prepare master's students for scientific research of electronic publications, which is impossible without quantitative assessment of process characteristics in the system of production and dissemination of internet content.
28
Fundamentals of Software Engineering
Mastering foundational knowledge in the field of software engineering.
The course covers the main principles of software engineering, goals, development tasks, possibilities of implementation, necessary resources, principles of defect correction, and implementation of necessary changes caused by the evolution of user needs and conditions.
29
Fundamentals of Programming
Mastering the basics of machine arithmetic (binary and hexadecimal numeral systems) and
methods for converting numbers from one numeral system to another; understanding typical algorithmic structures and basics of algorithmization; developing algorithms combining these typical algorithmic structures; mastering procedural programming technology using C++.
30
Fundamentals of Software Project Management Systems
Students study the basics of project management theory for software development
and acquire practical skills in planning, controlling, and optimizing software development processes. As a result of the course, the student should master the main concepts of project management, identify and classify projects and project management tasks, apply systemic approaches and methods of project management, and be proficient in modern software tools supporting project management. Main topics include the software development project life cycle.
31
Computer Network Software
Consolidation of skills in software development for computer networks, development of custom protocols.
32
Software for Automated Control Systems of Technological Processes
Participants will become familiar with modern approaches to creating software products
and large software systems. They will gain an understanding of programming paradigms and methodologies. Detailed study of main phases and processes of software development. Detailed study of methodologies such as Rational Unified Process and Extreme Programming. They will be able to use, invent, and document new patterns.
33
Business Logic Design in Databases
Formation of a systematic and scientific approach to developing enterprise-level automated
information systems and acquiring practical skills in using database management systems that underlie them, using the example of ORACLE DBMS; understanding the relationship between data architecture at physical and logical levels; mastery of modern methods and tools for developing information systems, such as client-server technology and distributed systems. Special attention is paid to acquiring skills in developing server parts of information systems.
34
Internet Programming
Providing future specialists with an understanding of the principles of Internet programming using the example of the server-side scripting language PHP.
35
Project Practicum
The course aims to acquire practical skills in software system development.
Practically master the software product life cycle. Implement one of the methods for organizing software system development. Gain skills in working as part of a team of programmers (division of responsibilities, work and ethical relations among team members, specifics of each process component). Deepen knowledge and skills in creating models, algorithms, and programs for specific tasks. Learn to create programs that are components of higher-level systems.
36
Design of Distributed Information Systems
The course aims to study methods of creating parallel algorithms and programs.
Modern technologies of parallel data processing (SSE), instruction execution (superscalar), functions (multithreading), and programs (multiprocessing) are considered, as well as the mathematical apparatus for creating parallel algorithms, stages of parallel program development, evaluation of computational complexity in different execution modes, and modern technologies for creating, debugging, and analyzing such programs.
37
Programming Environments
Familiarization with and consolidation of skills in implementing programming algorithms in Delphi and Visual Studio environments.
38
Certification and Patent Studies
This course is intended for master's students and concludes the creative block of disciplines
for master's students, including "Research Methodology." This course has an integrative scientific nature and is located at the intersection of several independent disciplines, including technical, legal, economic, and specialized fields of knowledge.
39
System Programming with API
Familiarization with the features of interface programming, defining the main methods and tools for automated programming of software interfaces.
40
Decision Theory
The study covers the systemic paradigm and tools of decision making, axiomatic
theories of rational behavior in decision making; multi-criteria mathematical models and methods in decision making, as well as tools of artificial neural networks and genetic algorithms; expert evaluation in decision making; decision making under uncertainty considering and assessing risks. In addition, the theory and tools of fuzzy sets and synthesis of neural networks, fuzzy sets, and genetic algorithms in decision making are considered.
41
Pattern Recognition Theory and Classification in Artificial Intelligence Systems
Systematization of knowledge about the capabilities and features of applying neuro-computer algorithms and digital information processing systems.
42
Digital Signal Processing
The main goal of the course is to develop in students a systematic approach to the basics of
digital signal processing; to teach methods of digital processing considering error analysis features; and to apply this knowledge in solving problems of information and measurement technology.
43
Software Quality and Testing
Quality: how to ensure and verify it; the necessity of a quality culture.
Prevention of errors and problems. Inspections and reviews. Methods of testing, verification, and validation. Process quality combined with product quality. Quality standards. Ensuring product and process quality. Statistical approaches to quality control.