Sinigudnum logo
« Return to the list of all study programmes

Faculty of Technical Sciences
Software and Data Engineering

Rapid technological innovations are bringing transformative changes to all industries. As a result, Software and Data Engineering (SDE) related skills and new SDE jobs are emerging every day. More specifically, there is a high need for professions such as Software Engineer, Embedded Systems Engineer, Data Scientist, Game Developer, Blockchain Developer. Our Software and Data Engineering study program is precisely tailored to educate young people for these professional roles. Initially, we have reviewed hundreds of job descriptions both in our country and worldwide and discovered emerging trends on the job market. Armed with this knowledge, we have carefully crafted the courses in the Software and Data Engineering study program in order to meet the demand for the most desired skills in the industry. All of our career-track programs are built to align with employers demands when it comes to the skills we teach and the roles we prepare future engineers for.

Novelty and uniqueness of this study program is that it is designed by young SDE professors. They all have obtained their PhD degrees at the top-ranked Universities in the world. Moreover, after graduation, they gained valuable experience in the industry as well as in their ventures with their own startup companies. Therefore, our program is a reflection of their experiences in the leading engineering companies worldwide. Through our connections in the Silicon Valley, California, we constantly learn about the latest technological changes and we are able to fine-tune our study options and always teach the most modern and sought-after IT skills.

In the first two years, this study program will teach the students how to code, program basic controllers and understand networks. Later, students will learn how to develop mobile and social networks applications, develop games and blockchain applications, design complex data science and internet of things projects, program embedded systems and implement modern industrial control systems.

Throughout this study program, our enthusiastic professors will lead you to the highest academic goals. Together, we will create opportunities for our students to get some of the best paid jobs in our country and worldwide.

Here you can fill out the online pre-admission registration form for the study programme Software and Data Engineering


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

Pre-admission Form
for Serbian Citizens

Pre-admission Form
for Foreign Citizens

  • Embedded Developer
  • Embedded Software Engineer
  • Cross Platform Mobile Developer
  • Software Engineer
  • FPGA Developer
  • Automation Engineer
  • Embedded C/C++ Developer
  • Embedded Linux Developer
  • Firmware Engineer/Developer
  • Mobile App Developer
  • Network Engineer
  • Telecommunication Engineer
  • PLC Software Developer
  • Data Scientist
  • Data Engineer
  • Data Analyst
  • Data Architect
  • Web Developer
  • Web Service Engineer
  • Business Intelligence Engineer
  • Predictive Analyst
  • Quantitative Finance Specialist
  • Software Developer
  • Machine Learning Engineer
  • Artificial Intelligence Engineer
  • Database Engineer
  • Big Data Engineer
  • Blockchain developer
  • Game developer

After online application, the candidate receives an email with the parameters with which he will be able to log in to the entrance exam platform: Link. After registering on the mentioned platform, the candidate will be able to access the necessary material for preparing the entrance exam.


I year

Mastering basic knowledge about the organization and architecture of computers, the mathematical and logical foundations of digital computers, their hardware and software architecture, and methods and techniques for designing simple memory devices. Mastering the skill of programming at the level of a physical machine and programming based on assembly language.

Acquiring the basics for a well-founded expansion and deepening of mathematical knowledge. Acquisition of relevant mathematical concepts in the context of application in the field of computing, with an emphasis on the designand programming of computer software.

Knowledge of basic concepts and conceptual constructs on which imperative programming languages rely; Cognition ways of using imperative programming for software implementation of algorithms of medium level of complexity.

Getting to know the paradigm of functional programming (principles, concepts and theoretical foundations); mastering the art of writing computer programs with a functional programming style in the selected programming language.

Understanding and applying the basic methods of discrete mathematics in computing and their use in the fields of design and algorithm analysis and software engineering.

Getting to know the essential features of data structures and algorithms. Knowledge of the role and importance of the concept of algorithm and concepts of data structure in computer programming. Training to work with basic data structures and algorithms in Java and Python programming languages.

Improving receptive and productive language skills, and achieving precision in expression in different situations and on different topics, i.e. leveling skills at level Cl of the Common European Framework of Reference for Living Languages.

For students to understand the concept of management and the evolution of management theory; to recognize the management trends of the 21 st century; to understand all the determinants related to the process and phases of management (planning, organizing, leading and controlling); to become familiar with the management process through the study of case studies and to understand the importance of management in modern business organization.

Mastering the basic modern methods and learning skills, using the student services of the information system University, the formation of professional and ethical attitudes in the field of software engineering.

II year

Knowledge of the basic elements of object-oriented programming and the basic principles of programming in software Java language. Building a solid foundation of the object-oriented programming paradigm to build upon in later years of study. Gaining practical experience in the implementation of object-oriented programs in the Java programming language using Java development environment and tools Eclipse and IntelliJ.

Getting to know the concept of a computer operating system and its role in the functioning of a computer. Getting to know the basics concepts and parts, structure, principles of operation, methods of implementation, proper configuration, software maintenance and using the computer operating system in the design of IT solutions.

Acquisition of theoretical and practical knowledge for working with databases, with mechanisms of storing structured data and ways of processing them in order to obtain information for end users. Understanding modeling techniques and mastering SQL language for working with relational databases. Training students to construct and execute inquiries over more tables, under the given logical conditions. Practical mastery of the techniques of administration and maintenance of databases.

Acquisition of theoretical (fundamentals of probability theory, key concepts in statistics), application (selection and application probabilistic models and statistical methods on modeling, analysis, processing, interpretation, learning and thinking about real-life data) and practical programming (specialized python libraries and r programming language) knowledge that is the basis of data science and machine learning.

Acquisition of theoretical and practical knowledge of communication technologies and TCP/IP computer networks required for independent design and maintenance of computer networks with a full understanding of security challenges and the application of comprehensive layered protection.

A deeper understanding of the implementation of the object programming paradigm and a deeper mastery of the skill of object programming, including advanced elements of object-oriented programming. Mastering the C++ programming language.

Mastering basic knowledge in the field of specification, modeling and prototypic realization of complex software products. Creating a software product vision and implementing model-driven software development. Independent specification, modeling and prototyping of selected interactive, GUI-oriented, event-driven software products.

Improving the level of English language skills and developing all language skills of students at a higher intermediate level (B2) towards Cl — according to the Common European Framework of Reference for Languages) with a view to systematizing the existing and then moving to a higher level of knowledge of the language.

III year

Getting to know the concepts and basic principles of quality assurance and software testing. Acquiring competencies for development and implementation of automatic unit tests for programs written in the chosen programming language with usage selected software testing tool. Acquiring knowledge for further training in the field of software testing.

Mastering basic knowledge and skills in the field of methodological aspects of the software process and complex software products (design patterns, architectural patterns, software components and frameworks) and acquisition team software development skills (monitoring of activities and use of advanced elements of handling software configuration).

Mastering the basic knowledge and skills of using relational, multimodel and non-relational data warehouses (NoSQL) to support the persistent layer of complex software products, through project activities.

Mastering theoretical (information architecture) and practical (technologies and development tools) knowledge for client development sides of complex web applications.

Knowledge of the theoretical (resource, information space, generation of the Web) and implementation (technological stack, process development) framework for building Web information systems.

Mastering theoretical and practical knowledge in the field of development of complex Internet-based software systems using patterns of Internet software architectures.

Recapitulation and integration of knowledge and skills in the field of software engineering acquired in the first three years of study and development of "soft" skills.

The main objective of professional practice is to gain professional experience and practical knowledge in the field of software engineering and relevant technologies. The professional practice will enable students to: acquire new and additional skills and knowledge required in the labor market in the field of software engineering that belongs to the student's sphere of interest, adaptation to the working environment, connecting theoretical knowledge and practical experience, orientation towards future employment, as well as defining and refining topics for the final thesis. One of the imperatives of professional practice is to obtain the first recommendations that can pave the way for students to future employment.

Mastering the knowledge and skills of developing Web Graphical User Interfaces, including prototypes of various levels trustworthiness, input and output elements, model-view-controller (MVC) architecture, and layout of interface elements. Mastering the principles and techniques of designing usable user interfaces (consistency, visibility, simplicity, efficiency of use and other principles of usability).

Knowledge of the basic concepts of Block chain technology, its advantages and technical challenges of use, and security aspects of algorithm design of different Block chain architectures. Familiarization with representative Block chain platforms which use different concepts to reach consensus, analyze their security mechanisms and usethem for development decentralized applications.

Getting to know the concepts and basic principles of developing applications for mobile devices. Acquisition of competencies for development and implementation of applications for mobile phones written in the selected programming language, for the selected mobile platform and using the selected development environment. Acquiring knowledge for further training in the field of mobile computing application.

IV year

Mastering theoretical and practical knowledge in the domain of analysis and synthesis of artificial intelligencesystems by using paradigms of symbolic and sub-symbolic artificial intelligence.

Acquisition of basic theoretical and practical knowledge needed for the design and implementation of applicationsoftware for SAAS model.

Competencies for choosing a problem suitable for solving using software. Competences for architectural design (business, software and technological) software product intended to solve the selected problem. Competencies for software product implementation and presentation (written and spoken) of the achieved result.

Acquiring competencies for solving engineering problems using phase 1 logic, induding software development. Acquiring a theoretical basis for expanding and deepening knowledge about the phase approach.

Acquiring the knowledge and skills needed to design and implement software for computer-aided systems with strict time constraints and limited computing resources

Mastering basic knowledge in the field of configuration management of complex software products. Mastery selected software configuration management software tool.

Mastery of theoretical (concept and models) and practical (platforms and development tools) knowledge in the field of analysis and synthesis ?he machine learning system.

Mastering basic knowledge in the field of configuration management of complex software products. Mastery selected software configuration management software tool.

Acquisition of theoretical and practical knowledge in the field of protection of information systems, understanding of security problems, familiarization with cryptological protection mechanisms for the implementation of secret services. Application of symmetrical and asymmetrical cryptological algorithms and management of cryptological keys. Mastery of digital signing and operation certification bodies for the realization of authentication, integrity and non-repudiation services. Identification security problems in different network environments, operating systems and complete information systems. Application of applicable security standards.

Acquiring competences for solving engineering problems using biologically inspired optimization models, including software development. Acquiring a theoretical basis for expanding and deepening knowledge about mathematics modeling.

Acquiring the knowledge and skills needed to understand the measurement of physical quantities using sensors andwork with sensors and sensor networks

Acquiring the knowledge and skills needed to understand the measurement of physical quantities using sensors andwork with sensors and sensor networks.

Knowledge of basic concepts, theory and methods in image processing and computer vision. Training for identifying, formulating and solving problems in the field by applying existing practical computer vision systems. Training for independent design and development of practical and innovative applications or image processingsystems and computer vision. Professional and responsible behavior in the fields of image processing, computer vision and deep learning.

Acquiring the knowledge and skills needed for design (IoT paradigm, smart object concept) and implementation (hardware, communication, software components, development tools), IoT components and systems.

Mastering basic knowledge about the architecture and functionality of social networks and applications. Mastery basic knowledge and skills of social network analysis.

Acquisition of theoretical and practical knowledge required for critical analysis and construction of multimediasystems with an emphasis on Web multimedia systems. Acquiring skills to use multimedia technology with an emphasis on creating and presentation of multimedia content on the Web.

Mastering the basic knowledge of the integration of independently developed complex software products. Masteringknowledge and skills for applying a model-driven approach to software integration. Training for teamwork to implement the integration of independently developed software systems.

Introducing students to the basic principles of computer graphics and technologies relevant to virtual solutions reality (VR). Training students for independent development of software and hardware components for virtual reality.

Acquisition of theoretical knowledge about linked data and semantic linking of data. Acquiring competences for development software in the domain of linked data.

Getting to know the system and implementation framework for undertaking new high-tech ventures with an emphasis on ICT industry.

Knowledge of the structure and functioning of the public administration and administration system; Knowledge of modern technology infrastructures to support the operation of eGovernment and e-Administration systems; Mastering the methods and good practice of introduction e-Government and e-Administration.

Getting to know the basic principles, concepts, mechanisms and technologies of cloud computing. Acquiring skillsfor establishment, administration and management of basic types of private and public distributed infrastructure computer science. Implementation of services on the infrastructure using existing public cloud tools. Getting toknow the cloud platforms and services of global cloud computing service providers Amazon Web Services (AWS), Microsoft Azure and Google Compute Engine GCE .

Knowledge of the building blocks of video games. Knowledge of the principles of video game development. Acquisition of basic theoretical and practical knowledge of video game development and installation.

* Elective courses depend on the number of candidates