FACULTY OF INFORMATION TECHNOLOGY

INFORMATION TECHNOLOGY

Akreditovano

BASIC INFORMATION:

  • Duration of studies: 4 years
  • Number of ECTS: 242 ECTS
  • Title: Bachelor of Engineering in Information Technology and Systems

Međunarodni standardi

Basic information:

  • Scientific field: Technical and technological sciences
  • Narrow scientific field: Electrical and computer engineering; Information Technology and Systems
  • Forms of study: traditional (at the University) and online, via the Internet (e-learning)
  • Place: Belgrade and Niš

WHAT IS INFORMATION TECHNOLOGY?

Information technology (IT) is a discipline that has been developing very quickly as a result of practical requirements, that is, the needs of companies and other organizations. Today, business in all areas is completely dependent on information technology, because all organizations use IT-based systems. Such systems must work in accordance with the defined needs. They must be reliable and safe, and also able to be improved, maintained, and if necessary, replaced by others. Support from IT engineers is essential, as they understand computer systems and their software. Students who complete a study programme in information technology solve problems related to computers and software. Today, academic programmes in information technology are on the rise everywhere, because academic programmes in other computer disciplines, and especially in computer science, have failed to produce suitable experts according to the profile required in the market.

In order to more clearly indicate the difference of Information Technology in relation to the other two disciplines from the broader field of computing, we will use the diagrams in Figure 1, which were taken from the document: Information Technology – An Academic Discipline, ACM – Association for Computing Machinery, www.sigite.org. The wider field of computing is represented here by two-dimensional space.

Područja znanja koja pokriva disciplina Informacione tehnologije

As shown, the discipline of Information Technology includes all practical aspects of computing, except for its hardware. System infrastructure, software methods and technologies, but also applied technologies, as well as organizational and system issues of IT users are studied. Due to the greater emphasis on application, the more significant theoretical aspects of these areas of computing are not studied. The field covered by the discipline of Information Technology partially overlaps with other computer disciplines, but graduates of the IT programme are more oriented towards meeting the needs of people related to the application of computer technologies. In the area of technology application, the field covered by IT goes the furthest to the left, i.e. towards theory and innovation. This is demonstrated in cases where IT engineers develop digital technologies with web capabilities, which organizations use for a wide range of their information needs, where a certain conceptual basis in relevant principles and theory is required.

Programmes in IT, as a rule, produce graduated students who know how to apply IT in a wide area of its application. Organizations of any kind today depend on network infrastructure to such an extent that they can no longer function without this infrastructure. IT engineers are trained to select, manage and maintain this infrastructure, ensuring that it meets the needs of the organization. They also create digital content for this infrastructure and take care of providing IT support to the individuals who use it.

WHY STUDY INFORMATION TECHNOLOGY AT BELGRADE METROPOLITAN UNIVERSITY?

The study programme Information Technology (IT programme) aims to provide graduates with knowledge and skills that will enable them to work professionally in the field of Information Technology and further career development. The goal of the study programme is to achieve the following:

  • achieving comprehensive education of personnel competent for professional work in the field of information technology, including programming, planning, administration, development and maintenance of IT systems and their elements, system protection, data handling and other areas related to specific advanced technologies, as well as areas outside technical and technological segment that are necessary for the application of IT in the modern business environment (communication, legal and organizational-business aspect);
  • acquisition and development of competencies and skills, as well as mastering theory in the field of information technology;
  • mastering the basic concepts, methods and techniques of information technology that are necessary for the effective and efficient operation of organizations and systems in the modern business environment;
  • Training students for critical analysis and assessment, effective communication, organization and self-organization, especially in terms of responding to requests for new knowledge and application of IT technologies;
  • training students for independent learning and mastering new concepts, methods and techniques from the domain of information technology, in accordance with modern and future development trends as well as the need for specific competencies for specific workplaces;
  • training students to solve problems independently, as well as to work effectively in a team.

MOST COMMON JOBS FOR GRADUATE STUDENTS

The objective of the study programme is to provide students with necessary competences to perform the following jobs:

  • Web programmer
  • Software programmer
  • Programmer for mobile application development
  • Database analyst
  • Computer networks and systems engineer
  • IT project manager
  • IT system analysis engineer
  • Computer networks and systems administrator
  • IT system integration engineer

KNOWLEDGE THAT STUDENTS ACQUIRE DURING STUDIES

In addition to the individual learning outcomes defined for each unit of knowledge, there are also the learning outcomes of the programme itself, i.e. characteristics that all students of the programme should acquire. By mastering the study programme, the student acquires the following learning outcomes:

  • uses different levels of abstraction in order to choose the optimal approach when designing the application;
  • develops algorithms that solve a specific computer problem, with an explanation of the implementation of algorithms in the capacity of executing instructions, programs and processes;
  • describes the main components of the web system and their mutual interactions, including the server, the database, the logic (the so-called backend) and the user environment (the so-called frontend);
  • analyzes and compares the key features of different communication protocols and how they reflect the functional and non-functional requirements of the user or client application;
  • works in a team to develop web and/or mobile applications, based on modern user requirements, functionalities and security analyses, using standard libraries, frameworks, unit and integration testing and software version control;
  • plans, executes, manages and reports within a specific IT project;
  • evaluates relevant problems in IT projects using traditional and agile software development methods;
  • evaluates specific skills that are necessary to maintain continuous employment in the IT sector;
  • develops policies within the IT organization that include ethical, legal and data privacy considerations;
  • identifies the need and functions of cyber security technologies, as well as tools and systems that reduce the IT organization’s risk of security attacks.

As the OAS IT study programme is designed to fully implement the proposed ACM and IEEE Computing programmes, all learning outcomes are listed in the recommended IT curriculum.

OUR PARTNERS

COMPLIANCE WITH THE INTERNATIONAL STANDARDS

The OAS Information Technology study programme at Belgrade Metropolitan University was created in accordance with the recommendations of the American professional associations – Association for Computing Machinery (ACM) and the IEEE Computer Society and is fully compliant with their programme proposal.

USAGLAŠENOST PROGRAMA SA MEĐUNARODNIM STANDARDIMA

The program was mostly developed for the computer discipline: Information Technology, and in a smaller part, for the computer discipline: Computer Science. Therefore, the study programme is aligned with the recommendations of the American professional associations IEEE and ACM.

The program complies with the following recommendations of American professional associations:

  • Information Technology Curricula 2017 – Curriculum guidelines for baccalaureate degree programs in information technology. Assoc. Comput. Mach.(ACM), New York, NY, USA, 2017.
  • Computing Curricula 2020 – Computing Curricula 2020: Paradigms for global computing education. Assoc. Comput. Mach.(ACM) IEEE Comput. Comput.(IEEE-CS), New York, NY, USA, 2020.
  • Computer Science Curricula 2013 – Computer Science Curricula 2013. ACM and IEEE Computer Society, Incorporated: New York, NY, USA, 2013.
  • Information Systems 2020 – IS2020 – A Competency Model for Undergraduate Programs in Information Systems, ACM & AIS, 2020.

CURRICULUM AND PROGRAMME

I YEAR
IT101 Fundamentals of Information Technology

This is an introductory course that should introduce students to various areas of information technologies, in order to get the necessary background knowledge they need for subsequent, more advanced and specialized courses. The course provides an overview of IT disciplines, describes their connection with other computer and non-computer disciplines, and thus forms students’ awareness of the complexity of IT. The course objective is to help students understand the variety of contexts in which IT is used, the constant innovation of IT and the need to further improve it, as well as to familiarize them with the basic components of IT systems, including computer networks, web systems, databases, scripting languages, administration, maintenance and system integration. Some of the topics studied in the course are: Numerical systems; Data coding; Operating systems; Computer architecture and organization; Concepts and basics of information management; Architecture of data and information organization; Data modeling; Web systems, technologies and standards; Client and server side programming; Communication between systems; Mapping and data exchange; Integrative coding; Script techniques; Code writing techniques; Aspects of human-computer interaction in the application domain; Human-oriented evaluation; Development of an effective interface; Basics of computer networks; Routing; Physical layer; Application area of networks; Information Assurance and Security; Fundamental aspects; Security mechanisms; Attacks; Security domains; Investigation; State of information Model for hazard analysis; Security services; Integration.

CS100 Introduction to Programming (Python)

The course objective is to introduce students to the basics of programming through the Python programming language. Through the course, students are introduced to basic programming concepts such as data structures, conditions, loops, variables and functions. This course includes an overview of the various tools available for writing and running Python. The course provides hands-on coding exercises using commonly used data structures, writing custom functions, and reading and writing to files. The course covers topics such as an introduction to the basics of programming (what it is and how it works), data types, control structures, functions, arrays, inheritance, binary computing, debugging, testing, documentation, and object-oriented paradigms. Also, the course deals with string handling, string operations, string formatting; branching in the program, single, double and multiple branching; exception handling, loops and logical expressions: Boolean algebra and Boolean expressions; program decomposition; subroutine calling; transfer of parameters and results; concept and application of recursion; arrays and operations on arrays.

NT110 Business communication

The course enables acquisition of relevant theoretical and practical knowledge from business communication that allows for adequate operations in the business environment. Students gain the knowledge that communication skills can be crucial for success in any business activity. The course introduces students to business and social issues of communication – models and implications of effective business communication on business. Topics studied in the course are: Introduction to professional communication, obstacles in communication, types of communication, verbal communication skills, non-verbal communication skills, written communication skills, personal performance in communication, conflicts, team communication, intercultural communication, visual identity of the organization, organizational (corporate) culture.

MA104 Mathematics

The course enables familiarization and mastery of various mathematical methods and techniques related to concepts from the field of linear algebra, mathematical analysis, which are intended for this profile of engineers. Topics studied in the course are: Determinants: Determinants of the second and third order; Even and odd permutations; Determinant of arbitrary order; Properties of determinants; Laplace’s position; Matrix calculus: Concept of matrix; Matrix operations; Inverse matrix; Rank matrix; Systems of linear equations: Concept; Matrix method; Kramer’s rule; Gauss method; Kronecker – Cappelli’s attitude; Real function of one real variable: Concept; Characteristics; Basic elementary functions; Elementary functions and other types of functions; Numerous series: Concept, properties, attitudes for convergence; Limit value of a real function of a real variable: Concept, properties. Some more important limit values; Continuity of a function at a point; Continuity of a function on an interval; Differential calculus: Concept, geometric interpretation, table, rules for calculation; Derivative of a complex function, logarithmic derivative, derivative of a function given parametrically and implicitly, derivative of an inverse function; Higher order derivatives, Leibniz’s formula. Differentials of the first and higher order and applications. Theorems on differential calculus; Taylor’s polynomial; Lopital’s rule; Application of the first and second derivatives to the determination of the corresponding properties of functions. Asymptotes of functions; General scheme of examination of real functions of one real variable; Integral calculus – indefinite integration: Term; Methods for integration of various types of real functions of one real variable. Integral calculus – specific integration: Concept, existence and properties; Newton – Leibniz formula; Geometric interpretation and transformations; Improper integrals.

NT111 English 1

English 1 is a general English course at intermediate level. The aim of this course is to develop competence in grammar and vocabulary, as well as to develop and practice the following language skills: speaking, listening, reading, writing, translating and integrating the aforementioned skills. After passing the course NT111 English 1, the student will be able to: in the area of speech comprehension: respond adequately to oral messages related to activities in a general context, understand the message of short presentations, understand information about known contents, understand the essence of statements, draw conclusions after listening to an unknown shorter text; In the area of understanding a read text: read shorter texts written in standard language, understand the general meaning and supplementary information from the shorter text, understand shorter texts with different content; In the area of oral expression: participate in dialogues, exchange information and opinion with the interlocutor on general topics and interests, use English to communicate in a general context for 5 minutes; In the area of written expression: write notes, messages and letters in a reasoned and argumentative way, summarize a short text read or listen to on general topics and express their opinion, write electronic messages, text messages, participate in blog discussions at B1 level according to the Common European reference framework for languages.

CS101 Object-Oriented Programming 1

The course focuses on an introduction to the basic concepts in programming from the aspect of object-oriented programming. The course introduces students to the concepts of object-oriented programming, as well as procedural programming methods with the aim of mastering the basics of programming languages. Students are trained to independently develop simpler programs in Java. Topics studied in the course are: Concept and history of programming languages; Program translation; Data types, arithmetic, relational and logical operators; Program loops; Methods and return types; One-dimensional and multidimensional arrays; Basic Java classes; Inheritance, generalization and polymorphism; Interfaces; Association, aggregation and composition relations in the UML language with implementation in Java; Nested classes; Streams, files and specialization.

CS120 Computer Organization

Through this course, students are introduced to basic concepts and principles in the field of layered organization of computer systems. Students are first introduced to reference models of modern computer systems that include processors, primary and secondary memory, as well as input/output devices that connect other subsystems. Students are then introduced to all layers of computer organization, namely: digital logic layer, microarchitecture layer, instruction set and assembly language layer, as well as parallel computing system architecture layer, which includes on-chip parallelism, co-processors, multiprocessors and multicomputers, as well as grid computers. The course covers the following topics: Structured organization of computers; Binary arithmetic; Simple digital logic circuits; Complex digital logic circuits; Central processor; Primary and secondary memory; Input/output devices; Routes and interfaces; Processor microarchitecture; Performance improvement; ISA instruction set; Assembly languages; Translation and interpretation of programs; Parallel architectures of computer systems; Introduction to operating systems.

CS105 Fundamentals of Web Technologies

The aim of the course is to acquaint students with the basics of various web technologies and the fundamental principles of websites and web applications. Through an overview of topics and concepts, students will be presented with basic knowledge and skills for client-side (front-end) programming. Students will be able to create simple web applications. Topics studied in the course are: Markup and styling languages; HTML (Hyper Text Markup Language) and CSS (Cascading Style Sheets); Basics of scripting languages; JavaScript; JavaScript – DOM (Document Object Model); jQuery; Bootstrap; Semantic UI; Basics of front-end programming; Elements of good design; event-based programming; Customizable design; Network protocols; HTTP (Hypertext Transfer Protocol); Communication web server – web browser; Basics of AJAX (Asynchronous JavaScript And XML); Introduction to optimization of search results – SEO (Search Engine Optimizatin).

IT131 Computer Networks

The course objective is to introduce students to the world of computer networks through the acquisition of general knowledge in the field of networking computer devices. In this regard, the course provides the basis for acquiring basic knowledge related to the formation of different types of computer networks and gives a special overview of network hardware elements, as well as networking software. The importance of the course is enormous, because by providing all the information related to the standard OSI reference model, as a layered architecture of telecommunication networks, students become familiar with the basic network principles, layered protocols and the architecture of different types of computer networks ((Internet – TCP/IP, Ethernet – IEEE 802.3, Wi-Fi – IEEE 802.11). network; b) Division of computer networks by type, structure and size; c) OSI reference model as layered; d) The role of the data link layer in multi-layer network operation; e) Security in computer networks; f) TCP(UDP)/IP protocol stack and basics of multimedia communication; g) Basic principles of wireless network operation; h) Acquaintance with the latest trends in the standardization of computer networks; i) Basic description of the functionality of the network layer in the Internet architecture (IPv4, IPv6) j) Routing and IP addressing; k) Application layer protocols (FTP, DNS, SMTP, POP3, IMAP); l) Multimedia networks and way of functioning of the protocols RTP, RTSP, RTCP m); lj) Network management (SNMP, MIB); n) Virtual private networks; o) Performance and administration of computer networks.

NT112 English 2

English 2 is an upper intermediate level course of English – a combination of general English and the language of the profession. The aim of this course is to develop competence in grammar and vocabulary, as well as to develop and practice the skills of speaking, listening, reading, writing, translating and integrating the aforementioned skills. After passing the course NT112 English 2 students will be equipped to: In the field of speech understanding: Adequately react to oral messages related to activities in a general context, understand the message of longer presentations, understand information about known content, understand the essence of statements, draw conclusions after listening to unknown text; In the area of understanding a read text: Read shorter texts written in standard language, understand the general meaning and supplementary information from the text, understand longer texts of different content; In the area of oral expression: Participate in dialogues, exchange information and opinion with the interlocutor on general topics and interests, uses the English language for communication in a general context for a duration of 5 to 7 minutes; In the field of written expression: Write notes, messages and business letters in a reasoned and argumentative manner, summarize the text read or listened to on general topics and expresses one’s own opinion, write formal letters (applications for internships or scholarships), write electronic messages, text messages, participate in blog discussions at level B2 according to the Common European Framework of Reference for Languages.

II YEAR
CS202 Object-Oriented Programming 2

Introduction to advanced concepts in programming from the aspect of object-oriented programming. The course introduces students to the concepts of error and exception management, multithreading, working with GUI and event management, working with data structures and generic data types, network programming, creating Java applications over databases, as well as internationalization and localization. The student is trained to independently develop intermediate and complex programs in Java. Topics covered in the course are: Development and event management in the GUI using the advanced Java-FX platform; Application of threads and writing multi-threaded programs through concurrent and parallel programming; Error and exception handling in Java programs; Working with generic classes and methods; Working with data structures in Java: lists, queues, stacks, sets and maps using the Java Collections Framework; Integrating SQL queries into Java programs and creating Java applications over databases – standard approach and ORM; Localization and internationalization in Java; Creating programs with a complex level of complexity.

IT250 Databases

The database is the central place of any information system. The primary objective of this course is to acquaint students with the basic rules and principles used in the case of designing databases using the E/R technique, reverse engineering procedures and data normalization rules. Also, students should master the syntax and semantics of SQL in order to successfully create, implement and use databases after designing them. A significant place within this course is dedicated to the study of existing standards for data access (ODBC and JDBC) as well as the role that XML plays in solving such problems today. The course not only provides the necessary knowledge to those who will deal only with the design of databases and the development of applications over databases, but also to those who want to focus on the administration of databases, because part of the course is also dedicated to these topics. The following topics are studied in the subject: Information management; Data organization architecture; Architecture of data organization – relational model of databases; Conceptual data modeling using E/R diagrams; Conceptual data modeling using advanced E/R diagrams; Examples of good conceptual models; Link conceptual – logical – physical database model; Transformation of the conceptual into a logical and physical database model; Data organization architecture – data normalization, SQL for data definition (DDL); SQL for data manipulation (DML) – work with one table; SQL: SELECT statement for working with multiple tables; Creating views; Database environment management; Administration of databases; Protection of databases; Distribution of databases.

CS215 Discrete Structures

The Discrete Structures course has two main objectives. The first is familiarization with the basic concepts and techniques related to discrete mathematical structures, especially those that have immediate application in computing. The second objective is to acquaint students with the methods of mathematical and logical reasoning.
Students will be able to solve problems based on acquired knowledge, which include the basics of mathematical logic, the basics of set theory, relations, functions, algorithms, properties of integers, congruences, recurrence relations, graph theory and algorithms with them, structures for dynamic data storage, relations arrangements, grids, mathematical structures, linear spaces and mappings. The subject includes the following topics: Basics of mathematical logic; Basics of set theory: Operations on sets, finite, countable and uncountable sets; Cardinality of sets; Classes of sets, partitive set and partitions; Mathematical induction; Relations: Types of relations, equivalence relations, ordering relations; Functions: 1-1, NA and invertible functions, examples of functions, arithmetic module M, Algorithms: Basic terms, recursively defined functions, numerical algorithms; Properties of whole numbers: Basic concepts, fundamental theorem of Arithmetic; Good arrangement; Sharing Algorithm; Divisibility, prime numbers, NZD and NZS, Euclid’s algorithm; Congruences: Mutually prime numbers, fundamental theorem of arithmetic, congruence relations, congruence equations; Recurrence relations: Linear recurrence relation with constant coefficients, solving a homogeneous linear recurrence relation of the second order; Graphs: Structures for dynamic data storage, paths in a graph, isomorphic and homeomorphic graphs, connectivity components, Euler and Hamiltonian paths, weighted, complete, regular, bipartite graphs, planar graphs, trees, graph algorithms, graph coloring; Ordering relations: Partially ordered sets, topological sorting; Extreme elements; Networks; Modeling and the possibility of applying special graphs in different areas of computer science.

SE201 Introduction to Software Engineering

The course objective is for students to understand and master the methods and techniques of professional software development, the implementation of the following teaching units: Software processes, agile software development, requirements engineering, system modeling, software architecture design, software design and implementation, software testing and its evolution. The special goal of the course is to train the student for independent work in the development of a software product. The tasks that this subject should accomplish is the mastery of theoretical, methodological and practical knowledge of software engineering development, which are applied through the use of modern design tools.
The course enables students to develop clear, concise and formalized requirements in accordance with the real needs of users, to apply the principles of designing distributed systems, to perform the analysis and design of object-oriented systems, using the UML model, and to apply software quality measurement techniques. Topics studied in the course are: Software engineering and its place as an engineering discipline; Software processes: Process models, waterfall model, activities and process specification; Phases of software processes; Incremental development; Spiral model of development; RUP; Agile software development: Agile methods, extreme programming, agile project management and changing agile methods in software development; Requirements engineering: Functional and non-functional requirements, specification and requirements documents; Requirements of engineering processes, requirements gathering and analysis, UML use case scenarios, requirements validation and requirements management; System modeling with UML: Context models, interaction models, structural models, behavioral models and model-driven software development; Software system architecture design: Architectural views, layered architecture, data warehouse architecture, pipe and filter architecture, client-server architecture, transaction processing systems and information systems; Software design and implementation: OO system design using UML, software architecture design, design models, software design templates, software implementation; Software Testing: Developmental Testing, Unit Testing, Component Testing and System Testing; Software evolution: Evolution processes and their dynamics, system maintenance, software reengineering, preventive maintenance and management of old systems; Agile software development; Management of software development projects.

NT213 English in IT

The course objective is to raise the level of professional English knowledge to the B2+/C1 level of the “Common European Framework for Living Languages”. In the course English in IT, students should revise the use of grammar at an upper intermediate level, expand general and especially professional vocabulary, practice their use in different language functions and improve and integrate all four language skills (reading, writing, listening and speaking). After passing the course English in IT, students will be able to: In the field of Speech Comprehension: Adequately react to verbal messages related to activities in a professional context; Understand the message of longer presentations on familiar topics in which expert language and articulate pronunciation are used; Understand information about relatively familiar and familiar content and more complex instructions in a professional context; Understand the general and professional sense of informative radio and television shows on related topics, in which professional speech is used; Understand the essence of the statements of the interlocutors who are discussing professional topics; Draw conclusions after listening to an unknown text regarding the type of text, the number of interlocutors, their mutual relationships and intentions, as well as regarding professional content; In the area of understanding the read text: Understands longer texts on specific topics from professional literature; Find, separate and understand the basic message and essential information in an informative text on a known professional topic; Identify and understand relevant information in written prototype documents (letters, prospectuses) and other non-functional texts (newspapers, magazine articles, reports and advertisements); Recognize basic argumentation in professional texts (eg newspaper columns or letters from readers, blogs, forums as well as other types of comments); Determine the meaning of unknown words based on context; In the area of oral expression: Participate in dialogues, exchange information and opinion with the interlocutor on professional topics and interests; Use English as the language of communication in a professional context, adapting the speech to the communicative situation, in a time duration of five to seven minutes; Deliver a pre-prepared presentation lasting eight to ten minutes on a specific topic (from the domain of profession and personal interest); Indicate the importance of certain statements and parts of statements with appropriate gesticulation and mimicry or emphasis and intonation; In the field of written expression: Write in a logical and argumentative manner about topics from their area of interest; Compile a report based on research conducted in the field of profession.

CS203 Algorithms and Data Structures

The course objective is for students to understand the enormous role and importance of algorithms and data structures in solving various problems, as well as to become capable of developing efficient programs using recursion, lists, queues, stacks, sets and maps, and sorting. The course also aims for students to learn how to develop search programs using binary and AVL trees, as well as develop programs using hashing, graphs, and weight graphs. The tasks that students receive during the semester allow them to improve the skills necessary to develop, describe and validate algorithmic solutions for new problems that they encounter in their professional careers. Topics covered in the course are: Introduction to algorithms; Analysis of the complexity of algorithms; Recursion – Advanced Analysis; Sorting; Lists; Stacks, queues and priority queues; Trees; Search trees; Hashing; Graphs; Weight graphs; Algorithms and strings; Finite automata; Hard-to-solve problems; Data compression.

CS230 Distributed Systems

In this course, students are introduced to the concepts of organization and development of distributed systems using the Java Enterprise Edition platform and their differentiation from systems with a centralized architecture. Familiarity with different types of distributed systems. Familiarity with various techniques and tools based on the most important JEE platform for development and maintenance of distributed systems. Getting to know the concept of distributed light client through JSP and JSF technologies. Getting to know servlet technology as the basis of modern distributed software development. The use of remote calls through implementation through: Web services, JMS systems as a replacement for outdated CORBA functionalities, EJB kernels in combination with remote – distributed interfaces; Creation and implementation of REST and SOAP services in distributed applications; Familiarity with cloud services to support distributed applications; Topics covered in the course are: Systems with distributed and centralized architecture – introduction, comparison, advantages and disadvantages; Examples of systems with distributed architecture; Platforms for the development of software solutions with distributed architecture – JEE; Servlet technology as a basis for the development of distributed systems based on the JEE platform; Development of a distributed light client based on the application of servlet technologies: JSP and JSF; Application of CDI kernels for server-side development of a distributed software solution; Remote calls using the JMS system as a replacement for outdated CORBA functionality; Creation and use of different types of EJB beans in combination with remote – distributed interfaces; Implementation of web services in distributed systems; Application of cloud services in distributed systems.

CS130 C/C++ Programming Language

The goal of the course is for students to become able to use all essential elements of both C and C++ programming languages. This implies that students are able to write, that is. create complex C/C++ console applications, both structural programs in Cu and object-oriented (OO) programs in C++, using integrated development environments for C/C++ programming. Students are introduced to data types, variables, program flow control, loops, functions, arrays, and strings, as well as OO programming concepts. All important features and characteristics of this programming language will be discussed and illustrated so that students will learn all the important differences that exist in syntax, features and memory model between C/C++ and other programming languages. Topics covered in the course are: Introduction to C; Conditional statements and loops; Functions; Arrays and strings; Indicators; Structures; Union; Memory management; C-preprocessor; Working with files; Debugging; Introduction to C++; Basic elements of the C++ language; Introduction to C++ classes and objects; Hiding data; Static class members; Overlapping functions and operators; Composition; Inheritance; Polymorphism; Abstraction; Templates; C++ Library and STL; Exception Management; Input/Output in C++; Modern C++.

MA273 Fundamentals of Probability and Statistics

Through this course, students master the basic methods of probability and statistical analysis and the ability to apply those methods in solving practical problems. Topics covered in the course are: Random events; The concept of probability; Axioms of probability; Geometric probability; Combinatorics; Bird’s nest principle; Conditional probability; Independence of events; Formula of total probability; Bayes formula; Bernoulli scheme; One-dimensional random variables of discrete and continuous type. Two-dimensional random variables of discrete type; Numerical characteristics of random variables; Some important distributions; Conditional distributions; Information and entropy; Equality of Chebyshev; Mouavre-Laplace formula; Law of large numbers; Central limit theorem; Concept, subject and task of statistics; Stages in statistical inference; Sample; Display of statistical data; Statistical analysis of data, measures of central tendency, measures of variation; Evaluation theory, maximum credibility method; Confidence intervals; Statistical hypothesis testing – parametric and non-parametric tests; Linear regression and correlation; Analysis of variance models.

NT475 Law on the Internet

Acquiring basic and applied knowledge in the field of law on the Internet, which implies: Understanding the basics of the legal system of the Republic of Serbia; Understanding the sources of rights on the Internet and their mutual hierarchy; Understanding the need to protect personal data in cyberspace and the basic postulates of the GDPR Regulation; Understanding the role and importance of intellectual property rights in the field of information and communication technologies; Understanding the legal aspects of storing personal data in the cloud; Understanding and improving knowledge in the field of high-tech crime and its manifestations, such as phishing; Understanding the importance of legal regulation of behavior on social networks (first of all, Facebook); Understanding the importance and role of the legal system in the field of electronic commerce and the conclusion of digital contracts, especially in the light of blockchain technologies. Topics covered in the course are: 1. Basics of law; 2. Sources of law on the Internet; 3. Intellectual property right; 4. Legal protection of computer programs and databases; 5. Electronic administration; 6. Legal protection of Internet domain names; 7. High-tech crime; 8. The law of the European Union on the protection of personal data; 9. Law of the Republic of Serbia in the area of personal data protection; 10. Legal aspects of data storage in the Internet cloud (cloud); 11. Phishing as a form of theft of personal data on the Internet; 12. Legal aspects related to Internet espionage and hacking; 13. Legal aspects of using social networks and advertising rules of the Republic of Serbia; 14. Electronic trade; 15. Contracts on the Internet.

III YEAR
IT354 Web Systems 1

The course introduces students to the field of designing and programming the client side (front-end). The aim of the course is to familiarize students with the functioning of the Internet and Internet services, to train students in the development of front-end web applications using a specific working framework based on JavaScript / TypeScript notation – Angular. In addition to developing business logic, by coding Angular files, students will also acquire the skills of web user interface design, frontend code optimization and reduction, application of templates for frontend application development. In particular, students will learn to perform standard and Mock – simulated tests on the created frontend, using modern test tools such as: Jasemin and Karma. Finally, by mastering this subject, the student will acquire the skills and knowledge necessary to perform the tasks of a junior web frontend developer. Topics covered in the course are: Overview and application of advanced HTML concepts; Application of stylization on the client side using the CSS language and the Bootstrap working framework; Basic and advanced elements of the JavaScript language; Elements of the Angular framework and the TypeScript language as extensions of the standard JavaScript language; Working with components in Angular; Angular application structure; Work with forms; The concept of dependency injection; HTTP request handling and routing in Angular applications; Working with web services; Reactive programming in Angular and advanced components; Working on an advanced Angular project.

CS320 Operating Systems

Students are introduced to the basic terms and principles of operation of operating systems, including the architecture, goals, structure, methods and models of various operating systems. Students are first introduced to the principles of operation of operating systems through a historical review and through the concepts of the implementation of operating systems. Students are then introduced to system calls and the concepts of processes and threads, process scheduling, and problems that arise in inter-process communication. Through independent tasks, students gain the opportunity to study in more detail certain topics related to memory management, file systems, basic concepts from virtualization, as well as the working methods of Linux, Android and modern Windows operating systems, while developing their problem-solving abilities in these systems. Topics covered in the course are: Historical overview of operating systems; Concepts of operating systems; System calls; Structure of operating systems; Processes and Threads; Inter-process communication; Scheduling algorithms; Memory management; Paging and segmentation; File systems; Stoppages and prevention of stoppages; Introduction to virtualization; Overview of Windows operating systems; Overview of Linux and Android operating systems; Designing operating systems.

IT380 Engineering and System Integration

In this course the process of integration of various computer systems and software applications is studied, by examining current and new trends, strategies and techniques for the effective implementation of system integration. In the course, students will look at system integration activities as part of the computer system development life cycle and as part of system engineering in general. Students will also learn how to create an integration strategy and how to align it with the existing architecture, keeping in mind the necessary monitoring of key risk factors. Topics studied in this course are: (1) Reasons for system integration; (2) Symbiosis between integration and system design; (3) Defining the integration strategy; (4) documenting integration requirements using business process models; (5) Integration of interfaces, functions, features and physical elements; (6) Life cycle of integration; (7) Impact of architecture on system life cycle; (8) Choosing an effective methodology for integration; (9) Advantages and disadvantages between ready-made solutions and solutions to be developed; (10) Creating an integration architecture; (11) Defining and managing interfaces; (12) Integration in practice: Planning, management, execution and monitoring; (13) The various components of the usability test; (14) Role of devops in integration implementation.

CS360 Artificial Intelligence

Artificial intelligence today is a broad scientific field that is difficult to fully cover in one course if one tries to provide students with enough knowledge to understand the essence of all important methods of artificial intelligence. One of the possible divisions of such a wide area is the division into two parts. In the first part, there are methods of presenting knowledge in some field of application based on which intelligent software systems, which are most often called intelligent agents, can conclude and make decisions based on which certain actions affect the environment. The second part of artificial intelligence does not start from established knowledge, but from a large number of collected data, the analysis of which reveals connections between the input data of a real system and its behavior. It is an approach in which an intelligent system learns how to behave based on collected data in reality. This is the field of so-called machine learning. This course includes only the first part of the divided field of artificial intelligence, i.e. studies the behavior of an intelligent software system based on inputted domain knowledge, represented in some way that the software system understands (for example, in the form of rules) and inference based on the processing of such represented knowledge. The second part of the field of artificial intelligence, which teaches an intelligent system based on input data, is studied in the course CS375 Machine Learning.

Elective course A1

CS322 C# Programming Language
The course objective is for students to be able to use all essential elements of the C# language, i.e. Visual C#, and to be able to create graphical applications using Visual C#. The aim of the course is to enable students to use frameworks for creating visual applications “Windows Presentation Foundation – WPF”. Also, the goal of the course is to train students to use modern web frameworks such as ASP.NET Core (MVC), with a focus on creating WEB API applications. The course covers the following topics: Introduction to Windows Presentation Foundation (WPF); XAML; WPF controls; Layout; Dialogues; Menus and commands; Toolbars; Status bars; WPF Resources; Data linking; Features of ASP.NET Core; MVC; Comparison of ASP.NET Core with ASP.NET MVC and ASP.NET Web Forms; MVC and Entity Framework Core; Web Caching; Modular development; Error handling.

CS330 Development of Mobile Applications
The course introduces students to the field of mobile application development on the Android platform. Special emphasis is placed on the development of applications that include the latest version of the operating system and the highest API levels. The course objective is to understand and master basic and advanced Android concepts and principles, as well as the latest development tools and languages necessary to successfully create applications for mobile devices running on the Android platform. In particular, in addition to Java, students will also learn the official language of Android – Kotlin, as another new language of the Java virtual machine. In particular, the course will show how it is possible to develop mobile applications for different mobile platforms using a cross-platform approach. By mastering this subject, students will be fully qualified for jobs as junior Android programmers. The course covers the following topics: Introduction to Android; Basic elements of an Android application: Activities, fragments and intents; GUI development in Android; Working with views, view groups, images and menus in Android applications; Data storage in Android applications using files, shared preferences and databases; Advanced data storage and access through content providers; Working with messages in Android applications; Creating and working with services in Android applications; Digital signing and publication of the application on Google Market; Elements of the Kotlin language; Conversion of existing Java code to Kotlin; Development of Android applications using the Kotlin language; Hybrid development of mobile applications – cross-platform approach; Development of advanced Android projects and their integration with web projects.

IT390 Professional Practice and Ethics
Acquiring relevant theoretical and practical knowledge from business practice and ethics that enable adequate operation in the business environment. Knowing that the application of ethics in business gives security and the future of the development of every business system. Observing the specifics that professional practice and ethics have in the field of information technology. The course covers the following topics: Introduction to ethics as a science of morality; Introduction to business and professional ethics; Responsibility of the individual at the workplace; Protection of human rights at the workplace; Corporate social responsibility; Ethical virtues and principles in business; Leadership; Entrepreneurship; Computer ethics; Current issues of professionalism in the field of information technologies; Privacy in the age of information and communication technologies; Intellectual property and ethics; Ethics and high-tech crime; Ethical dilemmas and doubts in business; Prevention, recognition and prevention of mobbing.

IT355 Web Systems 2

The course introduces students to the field of server-side design and programming. Web client-server and multi-tier architectures, service-oriented architecture, aspect-oriented programming (AOP), control inversion with dependency injection (DI), J2EE technology and other modern techniques are studied. Through this course, the students will be familiar with the Java-based framework for designing and programming complex web applications – the Spring framework, web system security techniques, web application testing techniques and tools. In particular, the goal of the course is to master the following Spring topics: Mastering basic and advanced Spring IoC concepts, mastering aspect-oriented programming techniques in Spring, solving web application security problems in Spring, managing web flows in Spring, working in the Spring MVC framework, mastering Spring REST services, working with databases (Data Access) in Spring through the frameworks Spring JDBC, Spring ORM and Hibernate, testing web applications through Spring support for JUnit4/5 and TestNG6, working with system messages in Spring, applying the Spring Boot framework – and for facilitating settings and development of Spring applications, integration of the Angular framework with Spring. Topics covered in the course are: Introduction to the Spring framework; Spring IoC container; Aspect-oriented programming in the Spring framework; JSP and JSTL; Spring MVC; Introduction to Spring Boot; Spring Boot advanced concepts – advanced tools and technologies; Object relational mapping in the Spring framework; Spring REST; Spring Security subframe; Spring Messaging; Testing applications in the Spring framework; Integration of Spring (Boot) and Angular; Development of complex client-server applications.

IT382 Protection of Computer Systems

Students are introduced to the concept of data and system security, as well as security policy, attacks, vulnerabilities and encryption. The course enables students to recognize problems related to ensuring the security of information and computer systems, as well as to recognize the appropriate protection mechanisms. Students learn about the basic concepts of digital forensics and digital evidence, as well as the security of various operating systems. Through independent tasks, students gain the opportunity to study in more detail certain topics related to the basic concepts of computer system protection. Topics covered in the course are: Introduction to the protection of computer systems; Attacks and threats, risks and vulnerability; Security models; Security mechanisms; Cryptographic systems; Intrusion detection and prevention systems; Network layer security; Transport and application layer security; Network firewalls; Security of wireless computer networks; Security of operating systems (Linux); Security of operating systems (Windows); Security of e-business; Security of information systems; An introduction to digital forensics.

IT335 Administration of Computer Systems and Networks

The course objective is for students to acquire the necessary knowledge of system and network administration through Microsoft and Linux platforms. Through comparative analysis and emphasis on similarities and differences in administration based on different operating systems, students should gain a comprehensive insight into the role that the administrator plays in maintaining computer systems and networks, managing users, as well as security aspects of the resources entrusted to him. Students acquire and develop practical knowledge related to the functioning and control over the work of the network operating system and computer servers by applying software tools on various Linux distributions and the Windows family of operating systems. Students will be able to understand and manage specialized functions that include control over network resources, memory, user accounts, data storage, file sharing, backups, email management, website hosting, setting firewall rules, automated updates, and by installing software in the network, remote access to monitoring the performance of different parts of the system and network, preventing and solving problems. Topics covered in the course are: System components and the role of administrators in Windows and Linux network environments, host management, user management, network and system administration models, configuration and maintenance of systems and networks, diagnostics, application-level services, network-level services , safety principles, implementation of safety procedures.

CS310 Scripting Languages in Web Development

The course introduces students to the field of designing and programming client / server applications, relying on tools and technologies based on the most common scripting languages and frameworks. Respecting international standards, as well as the requirements of the current market, the course will focus on the application of client scripting languages for creating websites, as well as client parts of applications with client / server architecture. In further work, the course will focus on scripting-based frameworks with the aim of providing advanced toolsets for accelerated development, implementation and maintenance of complete modern web applications. Topics covered in the course are: Basics of scripting programming; Built-in data structures, functions and object-oriented elements of scripting languages; Overview of current working frameworks for the development of web applications based on the scripting approach: Laravel, Django; Frameworks – web programming and models; Creating API views handling HTTP requests; Application of working scripting frameworks for authentication and securing of the created web application; Testing scripting web applications; Use of development templates; Interaction with third-party applications.

Elective course C1

CS375 Machine Learning
In this course, the part of artificial intelligence which deals with methods of learning intelligent systems to behave based on the analysis of a large amount of data at the input to the system is studied. The system thus learned in a certain degree of accuracy imitates the real system it represents. Clear and explicit definition and representation of knowledge is not used, because the behavior of such intelligent systems is based on implicitly defined knowledge. The system has previously learned to behave like a real system in case of exposure to the effect of a certain set of input variables of the system, and the system reacts in the way it “learned” in the learning phase. This area of artificial intelligence is called machine learning, because the learned “machine”, i.e. an intelligent software system behaves as it should, and in accordance with a series of values of the system’s input variables. Providing an overview of the theory and practice of machine learning, this course explores the central concepts and algorithms of supervised, unsupervised and reinforcement learning.

SE350 Real-Time Software Development
A system is called a “real-time” system (RTS) when it interacts with the real world (physical process) within the time requirements. The response from RTS must not only be correct, but must arrive at the right time or the system is considered to have failed. This is the case of activating an airbag or ABS in a car, to give two critical examples, but also a robot that has to catch a ball in flight. At the end of the course, the student will understand the difference between fast and real-time systems, as well as the difference between hard, soft or critical real-time systems. They will know how to analyze, design and implement microcomputer based systems with time criticality, reliability and cost requirements. The course covers the following topics: Introduction to “real-time” systems (RTS); Explanation of various examples where the analysis and use of real-time techniques becomes essential; RTS that are “passive” or without computing capabilities; Examples of RTS that do not have computational capabilities to solve possible concurrency problems: RT networks, elevators, batteries, intersections or railroads, other examples that expand students’ interests, optimal planning. Active RTS or with computing capabilities; Online scheduling and prevention: Optimal planners, “Rate monotonic”, “Deadline monotonic”, “Earliest deadline first”. Implementation of the RT operating system in the microprocessor; Details to consider when migrating or implementing a real-time operating system on a microprocessor; High level systems. “Bandwidth” servers and their implementation, RTS with more than one microcontroller.

IT375 Cryptography and Crypto Technology
Students become familiar with the subject of cryptography, as well as with different classes of cryptographic systems and basic levels of cryptanalytic attacks. The course provides the basics related to modular arithmetic and number theory and an overview of algorithms for factorization of large numbers, and in this way students acquire the necessary mathematical knowledge used in cryptography. Students are introduced to the basic characteristics of block cryptographic systems, with and without a key, and techniques for forming a digital signature and key exchange, as well as cryptanalysis methods. After mastering the core of the course program, students: possess basic knowledge of cryptography and crypto-technology; are familiar with classic encryption techniques; are familiar with the mathematical basics that are necessary for understanding cryptography; are familiar with block algorithms; possess basic knowledge in the field of symmetric and asymmetric cryptography; are familiar with public key infrastructure (PKI) and hash algorithms; have acquired basic knowledge in the field of steganography; are familiar with cryptanalysis methods. The course covers the following topics: Classical cryptography; Classic encryption techniques; Mathematical basics; Block ciphers and DES algorithm; AES algorithm; Combining block ciphers; Generators of pseudorandom sequences and stream codes; Asymmetric cryptography; Key management; Checking the identity of messages and the Hash function; Hash and MAC algorithms; Digital signature and identity problems; Application of cryptographic systems; Cryptoanalysis.

IV YEAR
SE425 Software Development Project Management

Mastering basic management techniques in a small professional software development team. Students are introduced to the classic (waterfall) model of software project management and the software project life cycle model. Students learn about the triangle of constraints when managing software development projects, how to manage software quality, and software development standards. Finally, students are introduced to the iterative approach of software project management, as an introduction to agile software development. Topics covered in the course are: Introduction to software development projects; Basics of project management; Classic project management model; Conception, initiation, planning, realization and completion of the project; Starting and planning a software project – details and techniques; Software life cycle models; Software quality management; Software configuration control; Application of measurement in a software development project; Standards for software development.

MG470 Innovations and Entrepreneurship in Digital Business

This course provides insight into the emergence of digital entrepreneurship, key concepts, business models and resources needed to develop successful ventures. Students will develop a business plan for a digital enterprise as part of a venture team and present this plan in a business pitch. The focus of the course is on innovative digital entrepreneurship, and the student also acquires basic knowledge about the innovation development process. This course is of interest to students who plan to develop their own company or who intend to work in dynamic, digital companies.

Elective course C2 i C3

IS460 Robotic Process Automation
The aim of the course is mastering knowledge about robotic process automation (RPA), enabling students to better understand the importance and need of automation and their professional training for the adequate application of various management techniques in the application of robotics in the process automation process. The Robotic Process Automation course is designed to show students how RPA can transform business processes by eliminating mundane, time-consuming, manual tasks performed by company employees, allowing them more time to focus on critical thinking. The course also includes guidance on choosing appropriate processes to automate, as well as strategies for successful RPA implementation. The course covers the following topics: Introduction to RPA; How does RPA work? RPA market and history, importance and benefits of RPA, RPA and AI; Basics of RPA; Levels of automation, use cases; Preparation of RPA; Assessment of opportunities and requirements, selection of suitable processes for automation, potential processes in non-industry.

CS420 Applications of Artificial Intelligence
The course objective is to introduce students to the applications of artificial intelligence in decision-making systems, natural language processing, robotics, and computer vision. Also, topics about the possibilities and limits of the application of artificial intelligence, the ethics of the application of artificial intelligence and the future of artificial intelligence are discussed. Upon completion of the course, students will be able to: understand and apply artificial intelligence methods in decision-making systems, understand deep learning methods with the aim of computer understanding of natural language, which is a prerequisite for the development and application of intelligent systems in which natural speech is also used in communication with the system, they understand the application of artificial intelligence in managing the behavior of robots, they understand the application of artificial intelligence methods in the analysis of images, photographs or 3D objects, which is a prerequisite for using the so-called computer vision, which is often the necessary input “sense of sight” of many intelligent software systems.

IT465 Security of Software and Web Systems
Students are introduced to the concept of software and web system security. The course enables students to recognize problems related to the analysis of modern web applications from the security aspect. Students learn about techniques for identifying weak points in the architecture of software and web applications, but also about protection during web application development. Through independent tasks, students gain the opportunity to study in more detail certain topics related to the basic concepts of web system security. The course covers the following topics: Historical overview of software security; Structure of modern web applications and software systems; Web application mapping; Vulnerabilities of public web services; API Analysis; Identification of dependent components of web applications and software; Weak points of web applications and software systems; Types of attacks on web applications and software systems; SQL injections; Methods of protection against Denial-of-Service (DoS) and Distributed-Denial-of-Service (DDoS) attacks; Protection of modern web applications; Secure web application technologies; Setting up a secure web system architecture; Overview of programming code for web systems from the point of view of security; Introduction to penetration testing.

IT470 Ethical Hacking and Penetration Testing
Students become familiar with the concepts of identifying vulnerabilities in computer systems and ways of exploiting them in order to improve security. Students gain the knowledge to point out system security flaws through attempts at unauthorized access to computer systems and vulnerability testing. Students learn about malicious activities within the computer system, their elements and ways of working, as well as their identification methods. Through independent tasks, students gain the opportunity to study in more detail certain topics that concern the so-called ethical hacking in the context of security. The following topics are studied in the course: Exploitation of computer system vulnerabilities; Virtual Lab Setup for Penetration Testing; Attack planning: information gathering, reconnaissance and vulnerability identification; Computer system vulnerabilities through network traffic analysis; Analysis of system reports; Security of wireless networks – types of security settings; Security of wireless networks – exploitation of vulnerabilities; Security and vulnerabilities of network infrastructure – switches and routers; Security and vulnerabilities of network infrastructure – firewalls and access lists; Database security and SQL injection; Server security; Checking the system’s resistance to DoS and DDoS attacks; Malicious software; Ethical hacking and cybercrime; Designing secure computer systems and networks.

IT465 Security of Software and Web Systems
Students are introduced to the concept of software and web system security. The course enables students to recognize problems related to the analysis of modern web applications from the security aspect. Students learn about techniques for identifying weak points in the architecture of software and web applications, but also about protection during web application development. Through independent tasks, students gain the opportunity to study in more detail certain topics related to the basic concepts of web system security. Upon completion of the course, students acquire knowledge that allows them to: Perform a vulnerability review of modern web applications and software systems, find ways to exploit web applications and software systems, map and document weak points of web applications for which they do not have direct access, develop and apply techniques for overcoming weaknesses security mechanisms of web applications and software systems, develop and apply the principles of protecting their applications from various attacks, integrate the best programming practices in order to protect web applications from attacks.

SE455 Software Systems with IoT
Through the course, students are introduced to the basic principles of work and design of the Internet of Things (IoT). The course first introduces students to the main concepts of IoT, such as smart objects, smart environment and machine-to-machine communication. Students learn about IoT architecture and reference models, network, sensor and embedded requirements. Students are introduced to the working frameworks of IoT software systems, while designing various examples of IoT devices with development boards. Finally, students are introduced to the security aspects of IoT devices as well as Industry 4.0. Through independent tasks, students gain the opportunity to study in more detail certain topics related to the Internet of Things. The course covers the following topics: Basic elements of the Internet of Things (IoT); Information and communication infrastructure of IoT; Smart objects; Smart environments and machine-to-machine communication; Technologies that enable the operation of IoT; IoT and mobile computing; IoT and cloud computing; Software systems for working with development boards; Development board programming; Designing IoT devices; Security aspects of IoT infrastructure; Development of mobile applications for IoT devices IoT and Industry 4.0.

Elective course C4

CS440 Data Analytics
The course provides both theoretical and practical knowledge and skills related to data storage, processing, analysis and visualization. This involves collecting and exploring data to find patterns that can be useful in the organization, for example, in the form of improved decision-making for the organization’s management. The course deals with concepts related to data analytics, such as big data, data lakes, machine learning and visualization. The practical aspects of the course consist partly of the application of analysis and visualization tools, and partly of laboratory exercises where students develop their solutions in the field. In the course, students also learn how to compile data from different sources to enable data analysis.

IS450 System Analysis and Design
The course objective is to understand the business needs of an organization that can be solved using solutions based on information technologies. Students are trained to: (1) participate in teams whose task is to initiate information systems projects, (2) model information system solutions using at least one of the existing methodologies for analyzing business problems, (3) specify system requirements that will enable productive changes in the way business is conducted , (4) manage information systems projects using formal project management methods, (5) do high-level logical system design (design user interface, data and information requirements). The course discusses the processes, methods, techniques and tools that organizations use to define the way they will run their business, with a special focus on how computer-based technologies can effectively contribute to such an organized way of doing business. The subject includes methodologies for analyzing business problems, determining the role of computer-based technologies in solving them, articulating business requirements and alternative approaches for the application of technological solutions, and specifying requirements for the construction of information systems using various strategies based on own development, development in which third parties participate side and by purchasing ready-made software packages. Topics covered in the course: Development life cycle: structural and agile IS development methodologies, object-oriented IS development methodologies; Analysis and management of business processes; Information system development project planning; Analysis and specification of system requirements; Methods for structuring and exchanging requests: data flow diagrams, use case diagrams, class and object diagrams, interaction diagrams; Problems at the high level of system design – system design; Principles of detailed system design; Designing the data management layer; User interface design.

IT475 Blockchain Technology in Data Protection
Through the course, students are introduced to the basic concepts of blockchain technology and their application. The course first introduces students to the mathematical and cryptographic algorithms that power blockchain technology. Then, students are introduced to the concepts of decentralized and distributed computer systems, their similarities and differences, as well as their application. Students learn how a general blockchain distributed system works, with the basics from concrete examples: Bitcoin, Ethereum and Hyperledger blockchain technology and their security features. Finally, students acquire the skills to recognize the possible application of appropriate blockchain technologies to existing software solutions, and to highlight security advantages as well as disadvantages. Through independent assignments, students gain the opportunity to study in more detail certain topics that concern the basics of blockchain technology in the context of security. The course covers the following topics: Basic elements of blockchain technology; Mathematical and cryptographic settings; Data structures used by blockchain technology; Blockchain and distributed computing systems; Blockchain technology and information security; Cryptocurrencies and other applications of blockchain technologies; Introduction to Bitcoin; Introduction to Ethereum; Introduction to Hyperledger; Analysis and comparative presentation of lesser-known blockchain technologies; Implementation of blockchain technology – when (not) to use blockchain?; Implementation of blockchain technology – software design with blockchain technology; Connecting blockchain technology with other elements of the software system; Software systems using multiple blockchain technologies; The use of blockchain technology in the context of cyber security.

Elective course C5

CS490 Artificial Intelligence Application Project
The course objective is to enable the student to practically apply the acquired knowledge in courses in the field of artificial intelligence within one comprehensive project: CS360 Artificial Intelligence, CS375 Machine Learning, CS420 Applications of Artificial Intelligence and CS440 Data Analytics. In addition to these courses, this course specifically applies the knowledge acquired in the course SE425 Software Development Project Management, as well as courses in which special phases of software development are studied, (SE222 Requirements Engineering, SE310 Software Design, IT230 Human-Computer Interaction, SE311 Design and software architecture, SE321 Quality assurance, software testing and evolution, SE330 Agile software development methods). As a rule, the project is realized by a team of 3 to 5 students. Upon completion of the course, students will be able to: Define the project plan, depending on whether it applies plan-driven software development or the agile software development method, determine the requirements for software development, define its architecture and design and implement (program) the completed project solution , test the developed software system, apply artificial intelligence methods in accordance with the requirements of the received project task, analyze the results of the application of the developed intelligent software system when using appropriate sets of input data.

SE485 Real-Time Software Development Project
The course objective is for students to learn how to develop team solutions for projects that develop “real time” systems (RTS). Students will gain experience and understanding of team problem solving. Students will learn how to implement and integrate RTS into a software product. After completing this course, the student will be able to: Apply the methods and techniques used in the RTS development process, design and implement RTS in one or more programming languages, plan a project solution and document progress, effectively distribute the workload among team members, communicate and participate in the work of the project team. The course covers the following topics: Defining problems for RTS; Specification of requirements for RTS; Selected topics that match the students’ interest and the projects they implement; Team and task management; Project management procedures: Identifying objectives, scope and constraints; Written and oral presentation of results.

IT485 Computer System Protection Project
Students are introduced to the concepts of designing security mechanisms for IT systems and networks that meet certain security criteria. Students first acquire the knowledge to analyze the security requirements of IT systems and networks. Next, students gain knowledge about security settings and how to test network infrastructure and server and client devices. Applying the acquired knowledge, students work in groups on project tasks. Upon completion of the course, students acquire knowledge that allows them to: Analyze security requirements when designing security mechanisms for IT systems and networks; Applications of traditional and agile models of designing security mechanisms; Perform advanced security settings of network infrastructure, computing devices and user access; They design security mechanisms for a computer network that will meet the given security criteria; They simulate and test the security of the designed mechanisms. The course includes the following topics: Introduction to the design of security mechanisms for IT systems and networks; Design models of security mechanisms; Collection and analysis of security requirements; Planning and setup; Protection mechanisms against unauthorized access to the system; Advanced network infrastructure security settings; Advanced security settings of client and server devices; Security settings of cloud services; User privacy policy settings; Secure user access settings; Safe scaling; Testing of security mechanisms; Simulation of attacks on security mechanisms; Writing documentation and instructions for users of security mechanisms; Maintenance of security mechanisms for IT systems and networks.

CS450 Cloud Computing

The course objective is to provide students with practically usable knowledge and skills that will enable them to choose a suitable technological platform for improving existing business processes, through their digital transformation resulting from the application of new cloud technologies. By studying the course, students are trained to successfully apply their knowledge in one of the business organizations through the selection, installation, configuration, design and application of: Virtualization, cloud types and services, security and legal regulations in the field of cloud computing. The subject includes a number of modern cloud technologies, which cover and include: Technologies for virtualization, physical platform as a service, software as a service and other types of cloud services. Different layers of cloud computing, theoretical and practical solutions of companies such as Google, Amazon, and Microsoft are also studied in the course. During the course, students have the opportunity to independently try out new technologies from the mentioned fields in exercises. One of the many useful elements of this subject is the creation of a project that includes practical work and research in the field of existing technologies, as well as in the field of developing new cloud computing technologies.

IT491 Professional Internship

The objective of professional internship is to prepare students and ensure quality acquisition of more complex experience about their profession and work tasks for which they are trained. The program tasks are set in such a way that in the first phase they lead and enable familiarization with the work environment, organizational profile, distribution of work tasks and insight into the content of activities, insight into the specifics of work at different workplaces. The following tasks are oriented to the involvement of students in projects of various types, scope and purposes, in their initial, development or final phase, as well as in their implementation from installation, training to maintenance. Through assisting in specific tasks, students should get to know and accept work technology as much as possible, so that in the next phase they can start projects independently. By looking at the work environment and specific work activities, the student should acquire new knowledge, job security and the possibility of integrating partially acquired knowledge and skills through previous studies. The focus of professional practice is on the most independent and concrete work contributions of the student in the areas; Installation and administration of systems, individual workstations, network and other configurations, development of applications in the field of information systems, web applications and other software solutions. Tasks can range from concepts, development, construction, testing, application and maintenance, also in the area of analysis of certain solutions and possible improvements.

IT495 Graduating Paper

The graduating paper of the first degree of academic studies is the student’s independent work, which checks and evaluates the student’s ability to successfully apply the acquired knowledge in practice, especially in the field in which the graduating paper is written. The final paper represents the student’s research work in which he gets acquainted with the specifics of the application of engineering methodology in the field. After the research, the student prepares a final paper in the form containing the following chapters: Introduction; Theoretical part; Experimental part, results and discussion; Conclusion; Literature review.


Belgrade Metropolitan University – Traditional teaching and online teaching

STUDY PROGRAM Annual tuition (traditional and online classes) Discounted Price for the 1st Year of studies for Early Enrollment by March 31, 2025. Advance payment of 20% upon registration AMOUNT OF THE MONTHLY INSTALLMENT FOR THE PAYMENT MODEL OF THE REMAINING 11 INSTALLMENTS
Faculty of Information Technology
Information Technologies 2.990 € 2.691 € 538.20 € 195.71 €
Software Engineering 2.990 € 2.691 € 538.20 € 195.71 €
Game Development 2.990 € 2.691 € 538.20 € 195.71 €
Faculty of Management
Engineering and Operations Management 2.490 € 2.241 € 448.20 € 162.98 €
Digital Business and Marketing 2.490 € 2.241 € 448.20 € 162.98 €
Faculty of Digital Arts
Graphic Design 3.990 € 3.591 € 718.20 € 261.16 €
Interactive Media Design 3.990 € 3.591 € 718.20 € 261.16 €
Fashion Design 4.290 € 3.861 € 772.20 € 280.80 €
Faculty of Foreign Languages
English with business 2.290 € 2.061 € 412.20 € 149.89 €

 

Belgrade Metropolitan University in Nis – Traditional teaching

STUDY PROGRAM Annual tuition (traditional and online classes) Discounted Price for the 1st Year of studies for Early Enrollment by March 31, 2025. Advance payment of 20% upon registration AMOUNT OF THE MONTHLY INSTALLMENT FOR THE PAYMENT MODEL OF THE REMAINING 11 INSTALLMENTS
Faculty of Information Technology
Information Technologies 2.490 € 2.241 € 448.20 € 162.98 €
Software Engineering 2.490 € 2.241 € 448.20 € 162.98 €
Game Development 2.490 € 2.241 € 448.20 € 162.98 €
Faculty of Management
Engineering and Operations Management 1.990 € 1.791 € 358.20 € 130.25 €
Digital Business and Marketing 1.990 € 1.791 € 358.20 € 130.25 €
Faculty of Digital Arts
Graphic Design 3.390 € 3.051 € 610.20 € 221.89 €
Faculty of Foreign Languages
English with business 1.790 € 1.611 € 322.20 € 117.16 €

INTERESTED IN MORE INFORMATION ABOUT THIS PROGRAM?

Contact

E-mail

upis@metropolitan.ac.rs
 

Phone

011 20 30 885 // 018 551 000
 

Ask Us

    Name *

    Surname *

    E-mail *

    Ask us *