Sinigudnum logo
Faculty of Technical Sciences
Software and Data Engineering

Studijski program Software and Data Engineering je najmoderniji studijski program za softversko inžinjerstvo u Srbiji. Dva glavna usmerenja ovog studijskog programa su Embedded Systems i Data Science. Ovo je prvi i jedini Data Science program osnovnih akademskih studija u Srbiji (link ref), a po inovativnosti je među vodećim u Evropi i svetu.

Data Scientist je proglašeno za najperspektivnije zanimanje 21. veka, sa prosečnom platom od $116,840 u 2016. godini (link ref). Specijalisti za analizu i obradu podataka, predstavljaju najtraženije stručnjake u kompanijama, kao što su Microsoft, Nordeus, Seven Bridges Genomics i druge.



software and data engineering

Studijski program Software and Data Engineering, Tehničkog fakulteta Univerziteta Singidunum, može se smatrati modernizovanim i unapređenim studijskim programom, u poređenju sa smerovima koje imaju Elektrotehnički fakultet Beograd (Softversko inženjerstvo i ostali ETF smerovi), Fakultet tehničkih nauka Novi Sad i Fakultet organizacionih nauka Beograd (Informacioni sistemi i tehnologije – FON smerovi).

Software and Data Engineering uvodi najtraženije i najmodernije programske jezike poput Python-a, R-a, MongoDB-a, Spark-a i Hadoop-a. Budući studenti uče da dizajniraju inteligentne mobilne i web aplikacije, koje su zasnovane na masivnim skupovima podataka (Big Data).

Software and Data Engineering - SDE, ima za cilj da masovno edukuje buduće inženjere na engleskom jeziku. Svedoci smo da se tehnologija toliko brzo menja pa zaposleni inženjeri konstantno uče iz najnovijih referenci, prate najnovije vesti sa blogova, pohađaju online kurseve, koriste najnoviju literaturu, a to je sve svakako napisano na engleskom. Prednost nastave na engleskom jeziku olakšavabuduću komunikaciju sa internacionalnim kolegama, koji su prisutni na našoj, a svakako i na svetskoj IT sceni.

Profesori Univerziteta Singidunum, koji su kreirali studijski program SDE, ostvaruju dugogodišnju saradnju sa profesorima sa vodećih svetskih univerziteta. Neki od najuticajnijih su Univerzitet Oxford, ETH Cirih i KU Leuven iz Belgije. Ova saradnja sprovodi se kroz rad na modernim projektima iz popularnih IT oblasti (projekti). Stoga će naši najuspešniji studenti biti u prilici da svoje semestralne i diplomske radove izrađuju u okviru ovih internacionalnih saradnji.

Da je ovaj studijski program zaista inovativan i revolucionaran, pokazuje interesovanje privrede za ovaj studijski program,a to su objavili i neki uticajni mediji (tsus.singidunum.ac.rs/vesti).



software and data engineering profesori

Software and Data Engineering, studijski program, osmislili su mladi profesori, doktorandi prestižnih evropskih univerziteta, koji po svojoj stručnosti i naučnim publikacijama ulaze u red najperspektivnijih mladih naučnika u regionu (ref link). Kroz program Software and Data Engineering, oni će vas sa velikim entuzijazmom voditi do najviših akademskih ciljeva, pre svega do usvajanja praktično primenjivog znanja. Zajedno, kreiraćemo mogućnost da naši studenti konkurišu za neke od najplaćenijih poslova u našoj zemlji i inostranstvu.

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

Upon successful completion of this study programme, the students shall be competent enough to solve real-world issues and efficiently perform various related positions:

  • 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



books All course books for the ongoing semester are included in the tuition fee.


Entrance exam for the study programme Software and Data Engineering includes the following:

  • Oral entrance exam and interview in English with one of our professors

Upon on-line registration, the candidate can access online tests for the entrance exam.


I year

Introduction to the basic concepts of marker and scripting languages and development of web applications by using JavaScript programming language. Upon successfully completing the course, students will be familiar with the basic concepts of marker and scripting languages as well as web pages visualization languages. The students will be capable of developing complex web applications through the application of marker languages, such as HTML and XHTML, as well as visualization languages, such as CSS, JavaScript and JavaScript libraries.

Basic concepts of sets, numbers, linear algebraic equations, vectors, matrices and determinants. Further, the course gives elements of functions, differentiation and limit values. Methods for solving definite, indefinite integrals and differential equations.

Basic concepts of computer engineering through the programming language C. In particular, the following fundamental programming concepts will be explained: types, operators and expressions; control flow (if, for, while); functions and program structures; pointers and arrays; structures; inputs and outputs.

The goal of this course is to equip students with techniques for using databases. The focus is on SQL relational databases, with the special emphasis on:
- modeling phenomena from real world and reduction to relational database model
- normalization
- concurrent transaction execution
- database access from different programming languages.
The final goal of the course is a database creation, user interface development, search methods and report generation.

Introduction to the fundamentals of mathematics, organization and programming necessary for contemporary computer systems research and its application. Upon completing this course, students will be capable of solving complex tasks related to business, design and programming, only by using the fundamentals of mathematics, unburdened by technical solutions.

Basic concepts of: The Laplace and z transform and Natural response of 1st & 2nd order systems; rational functions; qualitative properties of signals and their Laplace/z transforms; transfer functions and convolution; time domain properties of convolution systems; sinusoidal steady-state and frequency response and concepts of feedback. 

Introduction to the fundamental concepts of computer systems; explains how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. In addition the following topics are covered: the C programming language, data representation, machine-level code, computer arithmetic, elements of code compilation, memory organization and management, and performance evaluation and optimization.

English Language is a course which lasts two semesters and is based on the textbook Complete First Certificate (Cambridge University Press), which represents upper-intermediate level or Common European Framework level B2. The course also represents preparation for those students who want to gain First Certificate in English - FCE. Course outcome is to reach higher level of speech fluency in various situations and on various topics. The aim is also to provide understanding of written and oral language of native speakers, as well as understanding and acquisition of writing skills- essay writing on diverse topics.

II year

The students will learn how to efficiently model and specify software system. They will learn how to specify and analyze software requirements. Acquiring knowledge of fundamental model based design as well as UML. The concepts will include analysis of complex static and dynamic software systems requirements as well as modeling software architecture using UML language.

Software design and construction in the context of OOP libraries. The course is taught in Java. Topics: basics of OOP design, design patterns, testing, graphical user interface (GUI) OOP libraries, software engineering strategies, approaches to programming in teams. 

The course is designed to be a continuation of courses Engineering Practice and Signals and Systems. Here, the concepts of acquisition of sensor signals are extended as well as basic signal processing paradigms. Those are: Fast Fourier Transform and design of digital filters. The course is thought using Python scipy libraries. In addition, the students will grasp in more details the concepts of sensor design and principles as well as use of more advanced sensor circuitry (e.g. ECG and EEG sensor measurements).

Operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management, including virtual memory; I/O device management, secondary storage, and file systems. All concepts will be practically introduced through Linux operating system.

The goal of this course is to get the students familiar with Android and iOS mobile application development. At the end of this course, the students will be capable of their own Android application which through API calls comunicates with the server side that is made as a SOAP or REST web service.

The goal of this course is to teach basic concepts of data structures and algorithms. Acquiring fundamental knowledge of Data Structures and Algorithms by using Java. Students will be able to independently design and solve sorting and searching problems at the algorithmic level. In addition, the students will learn to implement these concepts in Java.

The course covers theoretical and practical aspects of communication technology and computer networks. It focuses on studying the role of main standards and protocols  on different layers (from bottom to top layer) in order to understand the role of layers in OSI and TCP/IP communication models. Security related problem as one of the main problem in 21st century networks will be also considered. The course includes practical projects on designing and maintaining computer networks.

Course objective is reaching level А1 in the Spanish language. Introducing basic information about Spanish language and hispanic culture with special emphasis on communicative skills.

Italian language 1 is a multimedia course in Italian language and culture on basic A1 level which systematically develops all four language skills using modern language ​​and permanent shifting between communicative and grammar elements. This course should enable students to communicate on a basic level, to exchange information in everyday situations and to communicate their basic needs.

Course objective is the usage of the German language at A1 level according to the Common European Framework of Reference for Languages. This course should enable students to communicate on basic levels, to exchange information in everyday situations and to communicate their basic needs.

Students are enabled to acquire economic globalization, time management, marketing, advertising, corporate culture, the law of supply and demand and entrepreneurial terminology. Acquisition of new vocabulary, appropriate translation and reading of texts, fluency, acquisition of writing skills and revision of lectured units.

Course objective is the acquisition of skills and the usage of French in accordance with A1 level of the Common European Framework of Reference for Languages. The focus is on balanced development of all four skills, oral and written understanding and communication. Course includes reading, listening, writing, conversation and acquisition of specific business terminology. Course objective is to enable students to communicate in everyday situations. Course outcome is the acquisition of skills in the usage of French and preparation for DELF exams according to the Common European Framework of Reference for Languages.

Creatively designed multimedia course that focuses on introducing basic rules of reading and writing Chinese characters and analyzes the most interesting aspects of rich Chinese culture, history, philosophy and modern Chinese society. The course enables students to acquire appropriate pronunciation in the Chinese language, rules of reading and writing Chinese characters and Latin transcription (pinyin), as well as vocabulary which enables them to communicate on basic level about everyday situations.

III year

Reaching level A2 in Spanish according to theCommon European Framework of Reference for Languages. Preparing students to communicate in different situations, reading comprehension and writing short essays of descriptive and narrative form in present, future and past tense.

Italian language II is a multimedia course in Italian language and culture at the basic A2 level which, starting with the rules of pronunciation and spelling, systematically develops all four language skills using modern language ​​and permanent shifting between communicative and grammatical elements. This course should enable students to communicate on a basic level, to exchange information using simple language expressions in everyday situations and to communicate their basic needs.

The course objective is the use of the German language at A1 level according to the Common European Framework of Reference for Languages. This course should enable students to communicate at basic levels, to exchange information in everyday situations and to communicate their basic needs.

Aside from the common discussion themes with other departments, Russian as a second language also contains the basic course of Russian business language. Students are introduced to specific terminology in the fields of economics in authentic contexts in the areas of finance, advertising, marketing, entrepreneurship and time management, economic globalisation, corporate culture and the laws of supply and demand through various phonetic, morphological, lexical and grammar units.Acquisition of basic expressions through everyday business situations. Acquisition of new vocabulary, accuracy in reading and translating texts, speaking accuracy, connecting previously acquired knowledge with new units, acquisition of writing skills and reviewing previously acquired content.

Course objective is the acquisition of skills and the usage of French in accordance with A1 level of the Common European Framework of Reference for Languages. The focus is on balanced development of all four skills: oral and written understanding and communication. Course includes reading, listening, writing, conversation and acquisition of specific business terminology. Course objective is to enable students to communicate in everyday situations. Course outcome is the acquisition of skills in the usage of French and preparation for DELF exams according to the Common European Framework of Reference for Languages.

Chinese Language 2 is a creatively designed multimedia course that systematically upgrades previously acquired language and conversational skills and focuses on more complex grammatical and linguistic structures. The course also covers the most interesting aspects of the Chinese culture, history, philosophy and modern Chinese society. The course enables students to master the basis of Chinese grammar, sentence structure, reading and writing several hundreds Chinese characters, and vocabulary that enables them to communicate in everyday situations.

In this course, the students will learn the basic concepts of concurrent and distributed programming. They will learn how to write concurrent and distributed programs in Java. It will teach the concepts, algorithms, principles, problems and solutions related to concurrent and distributed programming. Students will learn to recognize different levels of abstraction in concurrent and distributed programming.

Artificial intelligence is already all around us, from web search to video games. In this course students will get familiar with basic AI concepts that:
- plan your driving directions
- Develop strategies for winning in simple games (e.g. Puzzle 8, tic-toe)
- filter your spam emails
- guide your phone with your voice and read foreign newspapers in English
- Develop knowledge based systems
- Demystify self-driving cars as well as household robots
The course will introduce the basic ideas and techniques underlying the design of intelligent computer systems: Reasoning, Learning and applications for a wide variety of artificial intelligence problems

The students should acquire fundamental knowledge in electrical engineering, analogue and digital electronics, as well as relevant theoretical and practical knowledge and skills on electrostatic and electromagnetic phenomena. They should be able to solve some basic passive and active analogue electrical circuits with AC and DC currents.

The goal of the course is introduction of fundamental probability and statistics concepts. It introduces students to:
- random variables, conditional probability;
- discrete and continual random variables and their distributions.
- to sampling and exploring data,
- as well as basic probability theory and Bayes' rule.
The students will be using R (free statistical software) for lab exercises and a final project.

In this course, the students will learn how to interpret electronic schemes, plan and practically conduct electric measurements. They will also learn how to make their own DC and AC measurement bridges and to use current and potential transformers. They will get familial with oscilloscopes and learn how to use them in practice.

Familiarizing students with the principles, elements and contemporary non-relational databases working mode. Enabling students to develop systems by using contemporary non-relational databases.

The course will introduce socket programming and Web Services. The goal of this course is to get the students familiar with advanced web technologies based on Java programming language (Java EE). At the end of this course, the students will be capable to develop their own responsive Java web application which through API calls comunicates with the server side that is made as a SOAP or REST web service.

Acquisition of theoretical foundations and practical knowledge necessary for the usage and development of various paradigm technologies of cloud computing. Knowledge of theoretical foundations and cloud computing technologies (infrastructure and software stack, programming models, distributed warehouses, environments and libraries, virtualization technologies).

This course will provide the students with the knowledge necessary to design their own embedded systems and program them using C/C++
During the course the students will gain practical experience on:
- working with inputs, outputs and timers
- managing the flow of activity through interrupts and state machines
- programming bootloaders
- implementing complex math operations in a simple way in embedded systems
- programing industrial controllers
After finishing this course, students will be capable of programming embedded systems and following more advanced courses such as real time systems

In this course the students will get hands-on experience required to work with Machine Learning techniques. The course will teach how to:
- use Python for Machine Learning
- predict house prices based on house-level features, 
- analyze sentiment from user reviews, 
- retrieve documents
- Build product recommendation systems
In subsequent courses, the students will gain more in depth knowledge about models and algorithms.

The goal of this course is to teach the fundamentals of computer architecture and organization and get the students familiar with their main elements.
- Students will get the understanding of:
- Computer components and processor architecture
- Addressing
- Instruction sets
- Assembler programming
- Memory systems
- CISC and RISC CPU architectures
The knowledge from this course will be used in the subsequent courses that deal with embedded systems design

Large datasets such as Social Network structures, blog collections and financial time-series require efficient and concise visualization. The goal of this course is to:
-quickly and easily create interactive plots, dashboards, and data applications
-Use Python visualization library that targets modern browsers for presentation.
-provide elegant construction of novel graphics in the style of D3.js
-extend the capability with a high-performance interactivity over very large or streaming datasets.
Effective data visualization is a necessary step for efficient team collaboration between data-scientist and other domain experts.

In this course the students will get hands-on experience required to work with embedded hardware. 
The course will teach how to:
- power and protect an embedded system from electromagnetic interference
- physically produce and debug an embedded computer system, 
Use SPI and I2C protocols, RS-232, RS-422, USB and Infrared communication, CAN and Ethernet networks
- Interface sensors and actuators to microcontrollers
- use PWM and control electric motors,  
- understand embedded processor architectures
In subsequent courses, this knowledge will be used to design complex embedded system solutions.

With an increasing number of sensors used in industry as well as in everyday life (e.g. GPS, heart-rate, fingerprints) it is becoming an imperative how to structure all sensor data from various sources. Therefore, this course will be focused on to:
- Combine sensor data from multiple sources
- How to structure them and effectively preprocess
- Learn how to increase the valuable information from the data combined
- How to extract features (parameter) for future data processing
This course will provide students the state-of the art hands on skills in multi-sensor integration, target tracking, human wellness monitoring, identification and situation/threat assessment.

IV year

The goal of this course is to equip the students with knowledge and skills needed to design and implement complete IoT smart solutions and applications such as: Smart Home, Smart Car, Smart Farming, Smart Environment, eHealth, Smart Parking etc. At the end of the course, the student has created one part of a complex smart system or application. The course considers integration of all constituent parts of a smart solution including sensor system, communication network, service application with NoSQL database and big data analytics, Android, iOS or Web application.
The course will be thought through serious semester projects – the course will be thought as a mentor based course, where a lot of independent work from the students is expected and lecturers are there to help and guide them to complete the project.
Project work could be organized to follow agile software development metodology (like SCRUM).

For a modern and independent engineer it is necessary to learn basic ideas how to transfer its idea into a product and business. Hence, this course will teach how to:
- Develop an MVP (Minimum Viable Product)
- Explore Market options
- Learn to pitch your ideas
- Organize a great team
- Gain knowledge from experienced hi-tech entrepreneurs
This will be a practical hands-on course where students can work in teams. The goal will be to develop novel data science or embedded system solutions and to learn how a successful business can be established.

This course will provide the students with the knowledge and skills necessary to design their own real time systems by using real time Linux and C/C++
During the course the students will gain practical experience on:
- Address requirements related to real time systems
- model, analyze, design, implement and test real time systems using C/C++
- Using real time Linux
- Making real time systems robust, fault tolerant and adaptable
After finishing this course, students will be capable of designing their own complex real time systems

This course is required for anyone working with accelerator-based computing systems and optimization of deep learning methods. This course: <
- enables programmers to draw on the immense power of graphics processing units (GPUs) <
- build high-performance applications
- brings CUDA as a valuable resource to programmers working on applications in other domains than demanding graphics, including science, engineering, and finance.
- Explains basic concepts of deep learning and structures with deep architectures
- Explores what model should be applied according to the input data structures
In this course, the focus will be on intelligent, deep learning systems, whose parameters tuning requires high processing power, while providing to students valuable skills to exploit parallelization techniques and multi-core processors.

This course will teach fundamentals of modern industrial control. It gives in depth knowledge as well as practical hands-on work on the following :
- modeling of basic electromechanical systems (e.g. electromotor modeling)
- transfer function and concepts of a negative feedback (e.g. servo motor, cruise speed control)
- behavior of certain systems (input-output dynamics)
- Hands-on experience with Python system modeling , analysis and practical controller design and tuning
- PI and PID controller design and practical implementation in microcontrollers.
All concepts will be illustrated as typical regulation loops that often appear in industry.

The course is aimed at an entry level study of information retrieval and data mining techniques; it is about how to find relevant information and subsequently extract meaningful patterns out of it. This course covers:
- Basics of information retrieval and data mining
- practical algorithms of textual document indexing, relevance ranking,
- web usage mining, text analytics, as well as their performance evaluations.
- practical retrieval and data mining applications such as web search engines, personalization and recommender systems, business intelligence, and fraud detection will also be covered.
Students are expected to master both the theoretical and practical aspects of information retrieval and data mining.

In this course, multi-carrier modulation and spread spectrum techniques as the most promising candidate modulation methods for the 4th generation (4G) of mobile communications systems are covered.
This course will include: – Fundamentals of telecommunications and evolution of wireless communication technologies;
– Services and Applications and Standards;
– Modelling Wireless Channel (Fading Channel Modelling, Rayleigh Fading Channel);
– Multi-Carrier Spread Spectrum and other 4G techniques;
– MC-CDMA and MC-DS-CDMA (scheme, signal structure, downlink, uplink, BER performance, applications); UWB signals (TH-UWB and DS-UWB) (scheme, signal structure, downlink, uplink, BER performance, applications);
– Channel estimation, coding and decoding.

The goal of this course is to equip students with fundamental methods to:
- retrieve information from the Social Networks and websites
- Use of standard APIs (e.g. FaceBook, Twitter, LinkedIN).
- structure the data into popular formats
- process the data to extract meaningful relationships between users.
This course will enable students to crawl through internet with scripts, download data and use them for further data-driven decisions.

This course will teach the theory and techniques required for connecting embedded systems together and for maintaining such connections safe.
- During the course the students will gain practical experience on:
- Machine to machine connectivity protocols
- Web connectivity of embedded systems
- Security and privacy issues related to cyber physical systems
- Basic elements of cryptography and communication protection
After finishing this course, students will be capable of building secure communication systems for cyber physical systems. This knowledge is a prerequisite for the Internet of Things course

Gain a fundamental understanding of the art and science of Data Science as it relates to improving business performance. This hands-on course will cover:
- the key concepts necessary to extract stored data information
- Methods from a business point of view,
- How to derive new relationships among parameters to produce a dataset suitable for analytical modeling.
At the end of the course, students will be able to use these skills to produce a fully processed data set compatible for building powerful predictive models that can be deployed to increase profitability. For instance, which user will click on the advertisement or will will more likely buy a product.

This course covers the design of digital systems using field-programmable gate arrays (FPGAs). The focus is on top-down design starting with a software application, and translating it to high-level models using a hardware description language (such as VHDL or Verilog). The focus will be on applications using streaming architectures. The basic building blocks of FPGA programming will be introduced. In addition, architecture, design methodologies, best design practices, and optimization techniques for performance (frequency, latency, area, power, etc.) will be explained. Finally, test-bench development, simulation for bit-true design verification, and synthesis of complete digital systems will be covered.

The course will cover data mining and machine learning algorithms for analyzing very large amounts of data. Topics include: 
- Frequent item sets and Association rules
- Near Neighbor Search in High Dimensional Data
- Recommendation Systems
- Clustering, Link Analysis, Data streams
- Mining the Web for Structured Data, Web Advertising
The emphasis will be on Map Reduce (Hadoop) as a tool for creating parallel algorithms that can process very large amounts of data.

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