Applied Informatics
Master's Degree Program
Field: | Computer Science |
Form: | full-time |
Typical duration: | 2 years |
Language of courses: | English |
Program director: | |
Co-Guarantors: | doc. RNDr. Damas Gruska, PhD. |
Related programs: | bachelor's degree program Applied informatics |
Program description
According to the National Education Classification of the Ministry of Education and Culture of the Slovak Republic, the mAIN study program belongs to the master's level (II level) of higher education.
According to the classification of computing disciplines developed by the renowned professional organizations ACM and IEEE-CS, which is also used as a standard at the international level, mAIN focuses on the following disciplines:
- Computer Science (CS)
- Software Engineering (Software Engineering, SE)
- Data Science (Data Science, DS)
The mAIN study program consists of a compulsory foundation (study blocks A, BA, BB, BC) and an optional specialization (blocks S1, S2, S3, S4, S5).
Optional specializations are:
- S1: Computer graphics and vision (specialization within the Informatics discipline)
- S2: Artificial intelligence (specialization within the disciplines of Informatics and Data Science)
- S3: Programming and creation of information systems (contains subjects from several disciplines: Computer Science, Software Engineering, Information Systems)
- S5: Software Engineering (specialization within Software Engineering)
- S4: Creating software for education (specialization within the Informatics discipline) Science, industry, education
The mAIN study program allows students to choose a specialization according to their own preference. In general, the study program is designed so that the student can choose from the following basic professional directions:
- Science and research - This is the focus of the S1 blocks.
- Computer Graphics and Vision and S2.
- Artificial intelligence. IT industry – Block S5 covers this area.
- Software engineering and block S3. Programming and creation of information systems.
- Education – Block S4 focuses on this area. Development of software for education
At the same time, the mAIN study program allows students, according to their own preferences, to choose subjects from other study blocks, rather than only from the chosen specialization block.
What to Expect
To fulfill the objectives of the study, the study program is composed of theoretical and methodological subjects and subjects leading to independent scientific work, the ability to formulate and solve scientific hypotheses, and improving the ability to present their results in domestic and international scientific forums. The experience gained in group activities within the subjects Agile software development in the team, Databases 2, Software analysis techniques, Development of native applications for the Cloud from blocks S3-S5 is a valuable input in the application of graduates in practice.
To successfully complete the study program, the student must, in addition to compulsory subjects for the entire study, complete 10 compulsory elective (PV) subjects from blocks: of which one PV from blocks A, B, C; at least 5PV from one specialization block S1, S2, S3, S4, S5; the remaining 2PV from blocks S1, S2, S3, S5 (except for the already selected specialization block).
Specialization S5 Software engineering
The new Software Engineering block is the main specialization block chosen by students who see their application in the IT industry, either in large software companies or software start-ups. The teachers in this block are mainly experts from top Slovak software companies under the guarantee of teachers from KAI FMFI.
The software engineering block focuses on the following main topics:
- Principles of development of complex systems.
Within the topic, students will learn the principles of developing multi-layer internet/intranet systems with a modern front-end in the Angular framework, a back-end in JavaEE and .NET and using an automated DevOps process. The main subject of the topic is Development of large software applications. - Team development of software systems using agile methodologies.
Within this topic, students will deepen their knowledge of agile methods and solve a team project based on the SCRUM methodology using the Jira tool. The main subject of this topic is Agile software development in a team. - Principles of modern application development.
Within this topic, students will learn the principles of modern cloud-native application development. They will practically try out tools such as Docker, Kafka and Amazon AWS clouds, or MS Azure. The main subject of the topic is the development of native applications for the cloud. - Software architectures.
Within this topic, the student will get a systematic overview of architectural and design patterns according to the book series by Buschmann et al.: Pattern-oriented Software architecture. In the exercises, students will try to improve their existing projects by generalizing and refactoring them into patterns. The main subject is Software Systems Architecture. - Expansion and deepening of knowledge from bachelor's studies.
This area includes two subjects: Databases 2 and Advanced Programming in Java. In the Database 2 subject, students will learn advanced features of relational databases and basic principles of NoSQL databases with examples of Elasticsearch, Redis or Hadoop. The course Advanced Programming in Java builds on the introduction to the Java language from the bachelor's course Programming 4. In this course, students learn both advanced features of the Java language, such as Reflection, as well as expanding standards for programming enterprise applications, primarily CDI, JAX-RS, JAX- WS and JPA. - Software analysis.
Within this area, students will gain a broad overview not only of software analysis techniques (use cases, UML, BPMN), but also of business analysis and enterprise modeling techniques (ArchiMate, TOGAF, CBA). These techniques will be illustrated using simplified examples from real software projects in banking. The topic is taught in the subject Software Analysis Techniques.
Specialization S3 Programming and creation of information systems
Block S3 Programming and creation of information systems is the original software block of the mAIN study program. It expands and deepens the knowledge and skills of the student in the field of programming from the AIN bachelor's study program. It focuses on classic IT topics such as programming paradigms, databases, agile software development and web design. Compared to block S5 Software Engineering, block S3 is less "technological" - it does not include topics such as software architectures, development of complex applications or applications for the cloud. The Programming and creation of information systems block covers the following topics:
- Functional Programming
Functional programming is a programming paradigm that is based on a formal computational model, the lambda calculus. However, it is not only an academic concept, but its principles have also been translated into several standard programming languages such as Python, JavaScript, Java, C++, Kotlin and others. The Functional Programming course will focus on the essence of the paradigm and use Haskell, a clean and elegant functional programming language, to illustrate. - Advanced programming in Java
The subject Advanced programming in Java builds on the introduction to the Java language from the bachelor's subject Programming 4. In this subject, students learn both advanced features of the Java language, such as Reflection, as well as expanding standards for programming enterprise applications, especially CDI, JAX -RS, JAX-WS and JPA. Design of websites and web user interfaces - Within the subject Web technologies and methodologies, students will learn the principles and methodologies of designing websites, web applications, web user interfaces and web content. Students will get to know in detail and practically try out methodologies falling under the field of design focused on user needs (user experience / interaction design), including research and modeling of users and the process of prototyping and testing user interfaces. - Databases
The subject of Databases 2 follows on from the subject of Databases 1 from the bachelor's study. In the course Database 2, students will learn how to write effective SQL queries, work with geographic data and XML and JSON structures. They will also learn the basic principles of NoSQL databases with examples of Elasticsearch, Redis or Hadoop. - Programming in operating systems
In the subject Programming in operating systems, students will learn to create system and low-level programs and services that communicate directly with the operating system or hardware. They will gain an overview of the interfaces between the operating system and user code and of the approaches and techniques suitable for creating system programs. - Agile software development
In this topic, students will learn to use the basic methods and techniques of agile software development such as agile planning, pair programming, test-driven development and refactoring. They will implement these on their own group project. The main subject of the topic is Extreme Programming. Another subject is Agile software development in a team.
Master’s Thesis
With the diploma thesis, the student has to demonstrate the ability to independently acquire theoretical and practical knowledge based on the current state of science and creatively apply, use and develop them. The final thesis will be prepared by the student under the guidance of the thesis supervisor. The supervisor of the final thesis will prepare a written report on the final thesis and propose its evaluation. The final work is assessed by the opponent. The opponent will prepare a written report on the final thesis and propose its evaluation.
Examples of successful final theses of our students:
- Mgr. Linda Jurkasová Algorithm development for the segmentation of astronomical images with unique features, 2021 (in English)
- Mgr. Dana Škorvánková: Deep Learning-based Human Pose Estimation from 3D Data, 2020 (in English)
- Mgr. Dáša Keszeghová, Detekcia nádorov prostaty v MR snímkach, 2021
Graduates' Career Opportunities
The graduate of the master's study program Applied Informatics is theoretically and practically prepared so that he can
- work professionally in the preparation of extensive software products in all areas, including graphic and / or visual applications, artificial intelligence applications or in the creation of educational applications
- work as a researcher in various basic and applied research facilities,
- work as an assistant at various types of universities focused on informatics,
- to study in the third level of higher education in the study programs of the field of study Applied Informatics, resp. in programs of related fields of study.
Examples of professions by acquired competence:
- Information systems architect (Solution architect, IT architect) - Solution architect or integration architect of large information systems of large companies, for example in software development companies, banks, insurance companies, telecommunications, commercial companies, manufacturing companies and others.
- Information system developer (Software developer) - Developer of front-ends / back-ends / full stack developer of large information systems, developer in a start-up company.
- Computer graphics specialist developer - Developer in the areas of creating realistic images and animations or where computer vision is used (e.g. engineering or electrical engineering, medicine, protection and security, control, remote sensing) in positions requiring in-depth knowledge principles of visual information processing
- Data scientist - A specialist in large companies using machine learning, mathematical statistics and domain knowledge to analyze large amounts of data and make predictions
- Developer of intelligent process control systems - Developer of intelligent robotic systems
- IT Analyst - A software analyst who communicates with a business customer and creates structured specifications for software systems and their individual functions.
- Researcher in various institutions and companies engaged in basic and applied research
- Assistant at IT departments of various types of universities.