FACULTY OF INFORMATION TECHNOLOGIES
SOFTWARE ENGINEERING
- Duration of studies: 4 years
- Number of ECTS: 242 ECTS
- Title: Bachelor with Honors in Software
- Study domain: Technical and technological sciences
- Scientific field: Electrotechnical and Computer Engineering
- Narrow scientific field: Software Engineering
- Forms of study: traditional (at the university premises) and online, via Internet (e-learning)
- Place of teaching: Belgrade and Nis
WHAT IS SOFTWARE ENGINEERING?
Software Engineering is a discipline that deals with the development and maintenance of reliable and efficient software systems. The significance of software engineering has increased with the growing demand for the development of secure applications (i.e., secure software systems), and with the greater importance of large and expensive software systems. The American IEEE association defines software engineering as “the application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software.” Software engineering integrates computer science and engineering principles applied in product development in other engineering fields.
Software engineering focuses on the development of high-quality software in a systematic, manageable, and efficient manner. Accordingly, the importance of software development phases is emphasized, including:
- Analysis and evaluation of needs for software,
- Specification of requirements,
- Software design, and
- Implementation and testing of software code.
Software engineering is also associated with process and quality management, creativity and innovation, standards, individual skills, teamwork, and the application of rules and professional experience.
To clarify the distinction of Software Engineering from other disciplines within the broader field of computer science, the diagram in Figure 1 is used. (source: IEEE/ACM)
Figure 1. Knowledge areas covered by Software Engineering studies (source: IEEE&ACM)
The horizontal axis indicates the movement from theory to computer application. The vertical axis shows the movement from computer hardware and its architecture to organizational issues in environments where computers are applied.
REASONS FOR STUDYING SOFTWARE ENGINEERING AT METROPOLITAN UNIVERSITY
The objective of the Software Engineering study program is to prepare students for successful professional software development in line with the expectations and needs of companies engaged in professional software development.
The program provides knowledge in the field of software engineering according to IEEE and ACM categorizations. The curriculum enables students not only to acquire knowledge from all phases of the software development process but also to gain fundamental knowledge of computer science, which is essential for anyone wishing to engage in software development.
The program emphasizes practical and applicable knowledge and skills. Practical projects and numerous assignments are conducted in each course. Upon completion of the studies, students are fully prepared for successful work in the software industry.
WHAT CAREERS CAN GRADUATES OF SOFTWARE ENGINEERING PURSUE?
Graduates of the Software Engineering Bachelor’s program are qualified to work on the development of professional software with industry quality. These jobs encompass:
- Identifying software users’ needs and translating them into engineering requirements that ensure the software’s full functionality and professional quality.
- Establishing the architecture of software systems, defining software modules and components, as well as their interfaces.
- Designing software systems, specifically designing object-oriented (OO) systems based on an established OO model and using the UML language for OO system modeling.
- Programming, i.e., implementing project solutions by creating software in programming languages such as Python, Java, C++, or C#.
- Ensuring software quality and testing, as well as configuring it according to the established software architecture.
- Managing software development projects, and more.
COMMON EMPLOYMENT POSITIONS FOR GRADUATES:
The job titles for software engineering professionals vary across different organizations. In some places, the role of a software engineer is equivalent to that of a programmer, software designer, and similar positions.
Studenti su osposobljeni da rade na svim poslovima razvoja softvera:
Analysis of requirements
Definition of architecture and software design
Software development (coding)
Software testing and quality assurance
Software maintenance
The software development industry in Serbia has significant growth potential, especially in terms of collaboration with major global software manufacturers. However, the main obstacle is the lack of professionally educated and capable software engineers. Therefore, graduates of this study program have no difficulty finding well-paying jobs. Successful completion of these studies enables graduates to successfully work on the development of professional and high-quality software systems, primarily in specialized software development companies or as independent software engineers working on software development projects for international and domestic companies engaged in professional software development, i.e., software product development.
LEARNING OUTCOMES OF THE STUDY PROGRAM:
A successful student is going to be able to:
- Design, apply, and assess the operation of a computer system, process, or program to meet stated needs.
- Identify and analyze software users’ needs.
- Effectively integrate software solutions within user environments.
- Understand best practices and standards and their application.
- Participate in creating an effective project plan.
- Develop and implement appropriate experiments, analyses, and interpretations using engineering reasoning to draw conclusions.
- Identify, formulate, and solve complex engineering problems using engineering principles, science, and mathematics.
- Recognize ethical and professional responsibilities in engineering situations and make informed decisions that take into account the impact of engineering solutions in a global, economic, environmental, and social context.
- Function efficiently in a team that collectively provides leadership, creates a collaborative and inclusive environment, sets goals, plans tasks, and meets objectives.
- Explain, examine, and apply techniques and methods for solving a wide range of problems in computer science.
- Examine and apply project management tools and techniques.
- Analyze user needs and design appropriate software solutions in one or more application domains using software engineering methods that integrate ethical, social, legal, and economic aspects.
- Recognize the need and ability for continuous professional development and apply new knowledge as needed using appropriate learning strategies.
- Analyze social, ethical, and legal issues relevant to software development.
OUR PARTNERS










































ALIGNMENT WITH INTERNATIONAL STANDARDS
The program is aligned with the latest recommendations of the American professional associations, IEEE and ACM.
As a discipline, Software Engineering relies on another computer discipline, Computer Science, which provides the necessary foundation – knowledge of programming, computer operation and operating systems, use of web and internet technologies, database systems, etc. This is crucial because the ability to develop professional software (software engineering) builds upon the knowledge and skills of programming, database usage, computer networks, human-computer interaction, computer architecture, and operating systems (the majority of the Computer Science discipline).
Therefore, the study program is aligned with the recommendations of the American professional associations IEEE and ACM for both the Computer Science and Software Engineering disciplines.
The program is aligned with the following recommendations from the American professional associations IEEE and ACM:
- Software Engineering 2014 – Curriculum Guidlines for Undergraduate Degree Programs in Software Engineering, February, 2015, IEEE Computer Society and Association for Computing Machinery
- Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in Computer Science – The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) and IEEE Computer Society
The study program ensures the acquisition of the necessary knowledge, i.e. the so-called “body of knowledge” in accordance with both mentioned documents, i.e. unifying the bodies of knowledge defined for the field of Computer Science and the field of Software Engineering, which are described in the following documents:
- Guide to the Software Engineering Body of Knowledge (2004 Version) – SWEBOK, IEEE Computer Society
- Baseline List of Topics, SWEBOK Guide V3 (status as of 21/08/2012), IEEE Computer Society
By applying the latest recommendations of the professional associations IEEE Computer Society and ACM in creating the curriculum for the Software Engineering study program, it ensures that students receive the most contemporary and standardized knowledge in the fields of Computer Science and Software Engineering, in line with internationally recognized curriculum recommendations. This also provides international recognition of acquired knowledge and the diploma from the Software Engineering study program, facilitating graduates’ employment abroad.
CURRICULUM AND PROGRAMME
I YEAR
SE101 Software Development and Software Engineering
The course objective is to provide Software Engineering students, at the very beginning of their studies, an orientation overview of the basic approaches in software development, as well as to point out the function and importance of software engineers, and the importance of planning each student’s own career. The course introduces the student to software engineering and two basic approaches in software development: process (planned) software development and development with a focus on the product, not the process. As the course is studied in the first semester, the presentations of concepts and examples do not require knowledge and application of programming languages. After presenting the concepts of process-oriented software development and development based on a software product, in the third part of the class, students receive an overview of the subjects of basic and master studies in software engineering, as well as advice on how to plan their own career as a software engineer. This is a new course which was introduced as a reaction to the phenomenon that a part of students, already during their studies, focus only on learning programming, and after the second year, they start working as programmers, which leads to some students dropping out. The course aims to present the importance of software engineering, as a whole, and to make students understand that software development requires much more than just programming knowledge, as well as to present the importance of important engineering aspects of software development that are studied in 3rd and 4th .year of bachelor academic studies and master academic studies. During their studies, students make decisions on their future careers. Therefore, at the beginning of their studies, they should be familiarized with all the challenges, dilemmas and possible decisions by which they decide on their professional future. In the future, software robots will do programming, and software engineers will design and develop software products. Students who already at the beginning of their studies clearly define their goal of study and the development of their career, will have significantly better jobs in the industry, significantly higher wages, and the opportunity to do significantly more interesting and diverse professional jobs. That is why this course of professional and career orientation is very important for the success of studies and for defining a successful future business career of students.
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 subject 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.
MA120 Linear Algebra
In the course, students get to know and master various mathematical methods and techniques related to concepts from the field of linear algebra, which are intended for the profile of engineers in this direction. The following topics are studied in the course: Introductory concepts; Basic concepts of mathematical logic; Statement account; Quantifiers; Sets and binary relations; The concept of function; Algebraic structures with one and two algebraic operations; Number sets; Field of real numbers; Field of complex numbers (algebraic, trigonometric and exponential forms of complex numbers, Moivre’s formula, rooting of complex numbers); Polynomials over the field of complex and real numbers; Determinant; Term; Even and odd permutations; Determinant of arbitrary order; Properties of determinants; Laplace’s position for the development of the determinant; Matrix calculus: Concept of matrix; Matrix operations; Inverse matrix; Rank matrix; Systems of linear equations: Concept; Matrix method; Kramer’s rule. Gauss-Jordan method; Kronecker – Cappelli’s attitude; Vector spaces: Linear independence and independence of vectors; Base and dimension of vector space; Unitary and normed vector space; metrics; Vector space R^n; Scalar product, norm and metric in R^n; Cartesian rectangular coordinate system in R^3; Operations and relations with vectors in R^3; Scalar product of two vectors – definition, properties, applications. Vector product of two vectors – definition, properties, applications. Mixed product of vectors – definition, properties, applications; Plane equation (vector form, general scalar form, segmental form); The equation of a plane determined by three non-collinear points; Distance of a point to a plane; Mutual relation of two planes; Angle between two planes; A strand of plane; Plane equation (vector form, canonical form); The equation of a line containing two distinct points; The equation of a line as the intersection of two planes; Mutual position of two lines – passing lines; The shortest distance between two passing lines; Mutual position of two lines – the lines intersect, are parallel and coincide; The angle between two intersecting lines; Distance of a point to a line; The mutual relationship between the line and the plane; The angle between a straight line and a plane; Projection of a point on a plane; Projection of a point on a line; The projections are straight on the plane.
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).
MA105 Mathematical Analysis
In the course, students learn about and master various mathematical methods and techniques related to concepts in the field of continuity and differential calculus of functions of one variable and multiple variables, integral calculus, the theory of numerous series and series, as well as functional series. The following topics are studied in the course: Real function of one real variable: Concept; Characteristics; Basic elementary functions; Elementary functions and other types of functions; Number sequences: concept, properties, 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; Derivatives of higher order; Leibniz formula; First and higher order differentials and applications; Theorems on differential calculus; Taylor’s polynomial; Lopital’s rule; Application of the first and second derivatives to the determination of the properties of functions; Asymptotes of functions; General scheme of testing real functions of one real variable. Indeterminate integration, concept, methods for solving various types of real functions of one real variable; Certain integration, concept, existence and properties, Newton – Leibniz formula, geometric interpretation and applications; Improper integrals of the first and second kind; Numerical series: concept, properties, criteria for convergence; Functional series, uniform convergence; Weierstrass criterion, properties of uniformly convergent series, power series, Taylor series; Real functions of several variables, limit value and continuity, partial derivatives, geometric interpretation of the first partial derivative, partial derivatives of higher order, differential of functions, differentials of higher order, Taylor’s and Maclauren’s formula, partial derivatives of complex functions, tangent plane and normal surface, extrema of functions more variables, conditional extremes; The minimum and maximum value of the function on the area.
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.
SE222 Engineering Requirements
Analysis of software requirements is undoubtedly a very important process both in the design of large information systems, as well as in the construction of smaller software solutions. The course objective is, on the one hand, to get acquainted with the processes of determination, selection, analysis, specification and validation of clear, precise, unambiguous requirements, and on the other hand, to master the methods and techniques that can be used for their presentation. Also, it is necessary to show the synthesis of requirements from the development of the plan for defining the requirements to the execution of the software development process in cooperation with the representatives of the software users. The course covers the following topics: Introduction to requirements engineering; Process models; Development of business requirements; Importance of software users in requirements engineering; Collection of requests; Application of use cases; Setting business rules; Documenting requests; Requirements modeling; Data requirements specification and software development tools; Non-functional requirements; Creating prototypes and prioritizing requests; Acknowledgment of requests; Management of requirements changes; Request tracking and request tracking tools.
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.
IT230 Human-Computer Interaction
This course deals with the relationship between humans and computer systems, so the aim of the course “Human-Computer Interaction” is to introduce students to a number of cultural, social, organizational, cognitive and perceptual models, using a variety of disciplines including psychology, ergonomics, computer science, graphic and industrial design, anthropology and engineering.
The course covers several key areas concerning the design of interactions between human activities and computer systems that support them with constructed interfaces as well as the phenomena that surround them: User knowledge, interaction design, programming of interactive systems, user-oriented design and testing, new interactive technologies, collaboration and communication, security, statistical methods, augmented and virtual reality. Practical exercises follow the theoretical teaching by analyzing good and bad models in interface design and through the creation of functional prototypes with the help of dedicated software (Figma, Marvel App, Invision app) or programming languages (HTML, JavaScript and JAVA) depending on the task.
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.
SE310 Software Engineering
The course objective is to master techniques, methods, models and computer tools for constructing software. The term construction means detailed construction, ie. direct software production and is a combination of detailed design, coding, debugging, unit testing, and integration testing, so that students will master the strategies and techniques of the most modern software tools for coding, debugging, detailed design, and unit and integration testing of software. After mastering the content of the course program, the student will: Understand and know how to apply techniques and software tools for software coding; Understand and know how to apply strategies, techniques and software tools for software development testing; Understand and know how to apply techniques and software tools for diagnosing and repairing software errors; Understand and know how to apply strategies, techniques and software tools for detailed software design; Acquire the skill of understanding and applying techniques and software tools for software integration and integration testing; Acquire the skill of understanding and applying techniques and software tools for managing software construction; Acquire the skill of understanding and applying techniques and software tools for ensuring the quality of software construction; Acquire the skill of understanding and applying defensive programming techniques; Acquire the skill of understanding and applying software engineering planning techniques; Acquire the skill of understanding and applying standards when constructing software; Acquire the skill of understanding and applying software complexity minimization techniques; Acquire the skill of understanding and applying software performance tuning techniques; Acquire the skill of understanding and applying software reuse techniques when constructing software; Acquire the skill of understanding and applying techniques for static analysis of software; Acquire the skill to understand and apply software configuration management techniques. Topics studied in the course are: Introduction to software engineering; Coding techniques and rules; Construction management; Construction tools; Structural testing; Software debugging; Software integration; Software design strategies and techniques; Constructing a class; Constructing subprograms; Software refactoring; Defensive programming; Quality of software construction; Construction technologies; Recapitulation and systematization of subject content.
SE311 Software Design and Architecture
The course objective is to enable students to design software architecture based on defined software requirements by applying plan-driven development of object-oriented software. The student should define the components of the software architecture (by describing the structure of the software at the global level and identifying the various components), apply an adequate design method and create detailed project documentation that is the starting point for the implementation of the software. The course covers the following topics: Basics of software design; Architectural structures, views and styles; Software module styles; Connection styles of software components; Allocation styles and hybrid styles; Use of software design patterns; Software design strategies and methods; Traditional software design methods; Reuse of software; Software design using components; Design of distributed software systems; Designing service-oriented software; Real-time software design; Designing reliable software; Analysis of quality assessments of software project solutions.
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.
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.
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.
SE330 Agile Methods of Software Development
This course encourages students to gain knowledge and experience in software development using agile methods. The course covers both technical and cultural/social aspects of agile methods, including: “pair” and “mob” programming, high-performance team work, test-driven development, behavior-driven development development), continuous delivery, clean code, refactoring, extreme programming, Scrum, Kanban and Agile project management. Business agility topics include: Agile product launch; User stories and backlog creation; Definition of “ready” and definition of “ready”; Assessment; Agile forecasting and project management; Sprint planning; Retrospectives.
SE321 Quality Assurance, Testing and Software Evolution
The course objective is for students to understand and master methods and techniques in the area of software quality, testing and maintenance, which includes mastering: Basic terms of software quality as well as its specificities in relation to other products; Determination of software quality attributes and quality measures as well as standards applied in this area. Students will master the techniques and processes of software quality assurance through testing as well as the prescription and application of test procedures based on software testing techniques without code execution, as well as code execution techniques. Special attention is paid to the organization of software testing. Statistical methods of monitoring, measuring and predicting software quality are studied. In addition to the provision and testing of software in the design of software solutions, processes, techniques and models of improving and maintaining a software product are also studied within the course. The topics studied in the subject are the following: Software quality – basics; Software quality factors – processes, models, requirements and metrics; Software testing – basics, goals, approaches, processes, planning and implementation; Software testing – strategies, types (classes) of testing techniques; Software testing – black box technique (functional testing); Software testing – white box techniques; Software testing – structural testing and gray box techniques; Organization of the software testing process; Software testing process management (testing levels); Measurement and prediction of software quality; Fundamentals of software maintenance, types and categories of software maintenance; Problem analysis, selection of maintenance techniques, error management process (bug, defect, failure); Assessment of the type and scope (estimation models) of jobs in the software maintenance process; Software maintenance, rejuvenation and redesign techniques; Estimation of software maintenance according to fault classification.
Elective course B1
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 B2 and B3
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.
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 B4
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 B5
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.
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.
SE491 Professional Internship
The goal 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, organization profile, distribution of work tasks and insight into the content of activities, insight into the specifics of work at different workplaces. The 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. In staying and working in a professionally oriented environment, wider experience is gained about the requirements of the specialty for which the student is preparing, enabling a quality assessment of the success of the previous education and a clear assessment of the need for further training.
SE495 Graduating Paper
The graduating paper of the bachelor 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 graduating paper represents the student’s research work in which they get acquainted with the specifics of the application of engineering methodology in the field. After the research, the student prepares a final paper 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?
Ask Us