Sinigudnum logo
Software and information engineering

Software engineering is a clearly defined field of specialization that is focused on the design and implementation of high quality and highly complex software systems.

The Software and Information Engineering study program offers students advanced theoretical knowledge in software engineering, as well as practical knowledge that includes state-of- the-art software technologies (Internet, Web, Cloud) and mastering the skills of their routine use. Candidates acquire knowledge that will enable them to advance in the field of IT, primarily in the area of the development of highly complex software systems (software development project management, software design, programming, testing), but also in the area of software support operations (commissioning, configuration, monitoring).

What makes this study program special is the Domain Engineering elective block that provides students with expertise in a selected, non-computer domain areas, thus making them qualified for the most complex software design tasks in that domain. Furthermore, the curriculum plan encompasses the entire life cycle of software systems (development, operational work, quality assurance) through the consistent application of DEVOPS approach that combines the processes of development and exploitation of complex software systems. This program is conducted in Serbian and English.

hatUpon successfully completing the studies, students acquire the title of MSc Software Engineer.

hat Tuition fee for this study program in English is 4500 € for 60 ECTS, paid in RSD.

Fill out the pre-admission form

I semester

In this subject, the student acquires the competencies necessary for understanding current methodological approaches to the development of complex software systems, their application and anticipation of future methodological directions in the field of development of complex software systems.

Within the course of Advanced Software Architecture, students are introduced to the principles of development of large software systems, as well as systems that should respond to specific requirements in terms of performance, stability, scalability, extensibility and maintenance. Historical and current patterns, models and architectures are presented, starting from the core level of operating systems, all the way to distributed systems that support millions of clients in modern IoT environments. Special emphasis is placed on the profiling of existing software systems and their architectural optimization.

In this course, the student acquires the competencies needed to understand the structure, function and architecture of modern development and production tools in the domain of software. Also, the student acquires the skills needed for the routine use of selected tools and/or environments for the development and production of complex software systems.

Within this subject, the student acquires the competencies needed for modeling and specifying software systems at different levels of abstraction. He is skilled in the development of complex software systems and the application of selected modeling software tools.

The goal of this course is for students to understand the characteristics of big data and typical problems in extracting relevant information from data. Students will gain practical insight into the fundamental trade-offs in learning from big data and be able to solve typical big data processing problems. Students will learn about specific methodologies and tools for processing big data.

The goal of the course is to familiarize students with advanced database concepts for designing and implementing complex databases that meet the specific needs of an organization. Students will learn about the concepts of so-called NoSQL databases. Students will be equipped to work with the software packages needed to design and integrate these systems. In this way, students will be able to effectively manage databases and design their structure.

The goal of the course is to provide students with knowledge about all phases of IT services: service strategy, service design and transition, operational work of the service and constant continuous improvement of the IT service. They are able to manage the availability and capacities of IT services. They can define informational values, threats to those values ​​(probability of threat occurrence, importance and sensitivity to the threat), perform risk calculations, define mechanisms for eliminating threats and evaluate risk mitigation. They are able to independently research, prepare reports for the authorities and give professional advice when modeling IT services.

The goal of the course is to understand advanced cloud technologies and tools, including architecture, deployment models, and service models. Understanding of cloud governance frameworks and compliance standards. The outcome of this course is to equip students with the knowledge and skills needed to become experts in this field and to keep abreast of the latest developments in this rapidly developing field. Students will learn how to use advanced cloud services, such as serverless computing and machine learning, to develop innovative and efficient cloud-based solutions. The course covers advanced cloud management and compliance, including cost optimization, performance monitoring and compliance with regulatory requirements. Students will learn how to effectively manage cloud resources, reduce costs and improve performance.

II semester

The general competencies that students will acquire are analysis, synthesis and predictions of solutions and consequences, mastery of research methods, procedures and processes as well as application of knowledge in practice. After successfully completing the course, students are expected to acquire the following knowledge and skills: a) understanding of the basic principles of deep learning, primarily artificial neural networks (architecture, components, hyperparameters); b) familiarization with the training problems of multi-layer neural networks and the limitations of the main optimization method - backward error propagation; c) a way to overcome the problem of training multi-layered architectures; d) gaining experience in the design and implementation of deep neural networks to solve a specific problem as well as evaluating the predictive performance of deep machine learning systems e) getting to know the architectures of deep neural networks that show good performance for specific problems (convolutional, recurrent, transformers, etc.) with potential applications.

This course provides students with a deep understanding of the fundamentals, techniques and applications in the field of natural language processing. It includes the development of students' abilities to successfully deploy and implement various methods and algorithms in applications involving textual data. The main goal is for students to be able to analyze, model and solve problems using natural language processing techniques and thus contribute to the field with creative and effective solutions. By studying this subject, students also develop their critical thinking and communication skills, which prepares them for a successful career in this field.

After taking this course, students will be prepared to apply software configuration management practices to their future software development projects, ensuring effective collaboration, improved software quality, and successful project outcomes.

The aim of the course is to train the student to design a software product strategy, manage the business and legal aspects of the product, plan the path of software development, manage the product strategy within the corporate business strategy, orchestrate between organizational units, manage the phases of the product development life cycle and use adequate tools.

The aim of the course is for the student to acquire fundamental knowledge and understanding of the concepts of correctness, consistency, errors and failures, static analysis and testing. Understands the use of formal logic as a system specification language, understands the need for static testing, as well as the main verification techniques used in symbolic model verification, and is able to perform verification of simple systems. Additionally, he understands the range of different testing approaches that can be applied to software systems and is able to apply the black and white box method to unit testing.

The goal of the course is for the student to acquire the knowledge and skills necessary for understanding and applying modern financial technologies. Students will become familiar with key concepts and terminology in the field of financial technology, as well as the application of these technologies in various areas of business. Through practical examples and exercises, students will be able to apply modern financial technologies in a business environment. Also, they will be able to follow the development of financial technologies and adapt their business to new trends in this area.

This course enables students to understand and recognize threats to the security of information and information systems, to plan, develop and agree policies and practices to mitigate those risks and to respond to security incidents. Upon completion of the course, students will be able to identify an organization's security vulnerabilities, both in relation to external cyber attacks and in relation to attacks within the organization and to implement security plans and policies, implement technical aspects of access control, manage risk, plan for recovery and business continuity. Technical aspects of access control, to manage risk, plan recovery and business continuity.

The goal of this course is for the student to be able to identify the problem/problems that require/require a research approach when developing a software system of medium complexity in a specific application domain and to select and apply adequate research methodology/tools.

The goal of professional practice is for the student to become familiar with the requirements that he needs to fulfill for quick and efficient inclusion in the work processes of organizations that deal with the production and introduction of software into production and/or sales and consulting jobs in the IT domain.

The goal of creating and defending the final master's thesis is for the student to show that he is competent to identify the problem, perform analysis and specify the model of a software system of medium complexity level using methodological approaches and software engineering technologies, to implement it using current technologies and tools of software engineering, as well as to critically evaluate the achieved results and propose further directions of work.

The goal of creating and defending the final master's thesis is for the student to show that he is competent to identify the problem, perform analysis and specify the model of a software system of medium complexity level using methodological approaches and software engineering technologies, to implement it using current technologies and tools of software engineering, as well as to critically evaluate the achieved results and propose further directions of work.

  • The candidate takes six exams. The Project Assignment 1 integrates three compulsory courses from the first semester, whereas the Project Assignment 2 integrates elective courses from the first and second semester.
  • During the course of the lectures, the candidate defines the topic of their master's thesis. The Project Assignments from the first and second semester can be integrated into master's thesis.
  • Research paper is integrated into project assignments and master's thesis.
  • Professional internship is carried out in IT sector organizations.