Length of studies: 4 years

Number of ECTS: 242 ECTS

Program Objectives

The basic objective of the undergraduate academic program Game Development (GD) is to educate students for the fast growing industry of games development. This industry is well developed in the world (bigger than the movie industry). In Serbia the potential of this industry is in the growth with a increase in the number of domestic companies, thus providing a high level of employability.

The objective of this program is to enable graduating students to work in the field of games development, and to become experts to work in the fields of virtual reality, interactive simulation systems in real time (simulators for pilot training, crew of fighter aircraft and systems) etc. The software for games development operates in strict conditions of price-performance, thus making the successful game development requires physics, artificial intelligence, robotics and theory of systems.

The role of the study program CG in the educational system is to provide a foundation for forming a competent teaching academic and scientific-research staff in the area of CG. Namely, in Serbia there is no sufficient number of competent higher education lecturers for CG, since it is multidisciplinary area. As an interdisciplinary program CG consists of courses that are both in the fields of computing and graphic design. That is why, the curriculum for this program was part of the TEMPUS project INCOMING (Interdisciplinary Curricula in Computing to Meet Labor Market Needs, broj projekta 530155-TEMPUS-1-2012-1-EE-TEMPUS-JPC), where one of the objectives was to improve the higher education teaching staff.


General objectives:

  • to develop competences necessary for graduate students to be employed in the area of information technologies and the industry of game development
  • to develop creativity and individuality in problem solving and performing tasks
  • to prepare students to work in teams
  • to prepare students to improve their skills and knowledge related to specific job positions individually
  • to enable students to do self-study
  • to enable students to continue their studies and introduce them to scientific work

Specific objectives:

  • to enable students to develop games individually and in teams
  • to enable students to develop software and tools for game development individually and in teams
  • to enable students to continue their studies and to introduce them to scientific work in the areas of virtual reality, computer graphics, artificial intelligence


By completion of the study program, students acquire general and subject-specific competences:

  1. General
    •    Initiating software projects and techniques of project management
    •    Knowledge, selection and application of adequate methods of design, algorithms, programming languages, tools for development and implementation of techniques
  2. mathematical modeling
  3. computer graphics
  4. artificial intelligence

in software systems with real time interaction
•    analysis of social, ethical and legal issues related to software development

B. Specific, related to the course
•    Initiating projects of game development
•    creative design of games
•    design and preparation of user interface
•    selection of method of implementation of a designed game
•    specification and preparation of games assets
•    programming of developing games
•    organization and implementation of testing during game development
•    development of software environment for game development (game engine)


Semester Sequence Number

BSc Programme
240 ECTS

ECTS Week Hours
Lectures Tutorials Lab Other
1 1 CS101 Introduction to Object/Oriented Programming 10 3 1 3 0
2 CS220 Computer Architecture 8 2 2 1 0
3 MA103 Mathematics for IT 8 3 2 0 0
4 NT111 English Language 1 4 3 0 0 0
2 5 CS102 Objects and Data Abstraction 10 3 1 2 0
6 CS323 C/C++ Programming Language 8 3 1 2 0
7 CS115 Discrete Structures 8 2 1 4 0
8 NT112 English Language 2 4 3 0 0 0
3 9 CS103 Algorithms and Data Structures 8 3 1 2 0
10 SE201 Introduction to Software Engineering 8 2 1 2 0
11 AD110 Fundamentals of Graphic Design * 8 3 1 2 0
12 NT213 English for IT 4 3 0 0 0
4 13 AD360 Introduction to Computer Games* 8 3 1 2 0
14 AD365 Game Design and Mechanics 8 2 1 2 0
15 CS330 Development of Mobile Applications 8 3 1 2 0
16 Elective Course 1 8
5 17 AD361 Video Game Construction* 8 3 1 2 0
18 CS367 Game Development 1 8 2 1 2 0
19 CS430 Artificial Intelligence in Games 6 2 1 2 0
20 IT350 Databases 8 3 0 3 0
6 21 SE325 Project Management in Software Development 8 3 2 0 0
22 CS368 Game Development 2 8 3 1 2 0
23 IT370 Human/Computer Interaction 8 2 1 2 0
24 Elective Course 2 8
7 25  CS490 Internship in Game Development 8 0 0 0 0
26 Elective Course 3 8
27 IT390 Professional Practice and  Ethics 6 4 2 0 0
28 NT310 Professional Communication 6 3 3 0 0
8 29 CS365 Users Interaction and Game Testing 8 3 3 0 0
30 Elective Course   3 8
31 Elective Course   4 8
32 CS495 Final Exam (Capstone Project) 16 0 0 0 0



Elective Courses

Sem SN Elective Course 1 ECTS Le Tu Lb O
4 15 AD366 Dramaturgy of Video Games* 8 3 2 0 0
15 CS225 Operating Systems 8 3 1 1 0
Sem SN Elective Course 2 ECTS Le Tu Lb O
6 24 AD367 Character Design and Environment of Video Game* 8 2 0 3 0
24 AD356 3D Modelling with Maya 8 2 3 0 0
Sem SN Elective Course 3 ECTS Le Tu Lb O
7 26 IT375 Computer-Controlled Systems 8 3 3 0 0
26 CS322 Programming in C# 8 2 1 2 0
Sem SN Elective Course  4 ECTS Le Tu Lb O
8 30 CS369 Software Development Environments for Computer Games 8 3 0 3 0
30 CS230 Distributed Systems 8 3 3 0 0
30 IT376 Robotics 8 3 3 0 0
Sem SN Elective Course  5 ECTS Le Tu Lb O
8 31 SE405 Team Based Game Development 10 4 6 0 0
31 IT320 Software Development Platforms 10 4 6 0 0



1. Courses in blue fields are developed specifically for this program or taken from the BA program

2. Design of Interactive MediaCourses marked with * are provided by the Faculty of Digital Arts and its BA program Design of Interactive Media


This study program is the result of  the Incoming project of Tempus program, that received funding form the European Union


incoming-logo-small     tempus

CS101 Introduction to Object – Oriented Programming

Course objective:

Basic concepts of programming introduction in terms of object-oriented programming.  The course introduces students to the concepts and methods of object-oriented and procedural programming.  The student is trained to independently develop simple JAVA programs.  CS101 programme is aligned with the recommendations of the IEEE Computer Society and ACM from 2013.

Course Outcome:

  • Mastering the basic procedural programming methods in Java;
  • Understanding and application of the object-oriented programming concept, used in JAVA.
  • Understanding graphical JAVA elements as well as JAVA GUI components.
  • The ability of making simple JAVA programs.
CS220 Computer Architecture

Course objective:

The course introduces students to the field of architecture of modern computer systems. The course covers topics such as the basic elements of digital electronics, sequential and parallel instruction execution, synchronization, pipeline, vector processing. SIMD and MIMD machines. Also, networks with multiple degrees and interconnection of computer networks are presented. It introduces the concept of routing and flow control in these networks.  Concepts such as shared memory systems multicomputers, cache coherence and cache are analyzed. The aim of the course is to introduce students to modern computer architecture. Students will become familiar with the organization of a computer system, the related fields of computer science, performance analysis, performance measurement methods. Each student receives one project that needs to demonstrate its readiness to apply the acquired knowledge in a particular case in the field of computer architecture.

Course Outcome:   The outcome of this course is to provide students with basic knowledge of computer architecture, which they combine with the knowledge of the course in Operating Systems, which is the basis for all areas of computer science.

MA103 Calculus for IT

Course objective: Introduction and adoption of various mathematical methods and techniques relating to the terms in the field of linear algebra, mathematical analysis essential for engineers in this field of science.

Course Outcome: Students are enabled to individually apply adequate mathematical methods and techniques which belong to the group of basic tools od modelling of adequate technical systems.

MA103 Calculus for IT

Course objective:

English 1 is an intermediate general English course. The course objective is to develop competences in the areas of grammar and vocabulary, as well as develop and practice the language skills of reading, listening, speaking, writing, translating and integration of all the skills.

Course Outcome:

Students are enabled to communicate in speaking in writing in English in real life situations, to comprehend texts adapted at intermediate level on topics from everyday life, as well as longer texts from newspapers and popular literature adapted at intermediate level, to take notes and write summaries of short texts, to write informal and formal letters to translate short professional texts from English to Serbian, as well as to combine various skills in everyday situations.

CS102 Objects and Data Abstraction

Course objective:

The course continues to introduce students to OO programming tasks from CS101. Students master complex concepts of OO modeling and programming, using the UML. Management and development of interactive graphical user interface (GUI) using exceptions and listeners. Mastering the basic data structures and multithreading application in OO programs. Also, students are introduced to the elements of the programme testing components.

Course Outcome:

  • Ability to model complex problems using UML OO modeling methods.
  • Using threads in development of interactive and advanced graphical user interface.
  • Understanding and using of basic data structures.
  • Development of complex JAVA OO applications.

CS323 C/C++ Programming Language

The aim of course is to help students become able to use all of the essential elements of C/C++, and to enable them to write or create complex C/C++ programs, ie. console applications (console), and to use development environment for C/C ++ programming. All important characteristics and features of the programming language are discussed and illustrated. Students will carefully study chosen series of examples, with complete explanations.

Course Outcome: To enable students to create complex C/C++ applications, either OO or functional programs, and to use development environment for C/C++ programming.

CS115 Discrete Structures

Course objective:

Course Discrete structure has two main goals. First is to introduce the basic concepts and techniques related to discrete mathematical structures, especially those that have direct application in software engineering and computing. The second objective is to familiarize students with the methods of mathematical and logical reasoning.

Course Outcome:

This course includes the basics of mathematical logic, theory of sets, relations, functions, algorithms, properties of integers, congruence, recurrence relations, graph theory and algorithms with them, the structure for a dynamic data storage, order relation, network, mathematical structure of linear spaces and mappings.

NT112 English 2

Course objective:

English 2 is upper – intermediate English course – combination of general English and ESP. The course objective is to develop competences in the areas of grammar and vocabulary, as well as develop and practice the language skills of reading, listening, speaking, writing, translating and integration of all the skills.

Course Outcome:

Students are enabled to communicate in speaking in writing in English in real life situations, to comprehend texts adapted at intermediate level on topics from everyday life, as well as longer texts from newspapers and popular literature adapted at intermediate level, to take notes and write summaries of short texts, to write informal and formal letters to translate short professional texts from English to Serbian, as well as to combine various skills in everyday situations.

CS103 Algorithms and Data Structures

Course objective:

Introduction to the classic data structures such as lists, stacks, queues, sets, dictionaries, linked lists, binary trees, graphs. Includes operations of sorting, searching and analysis of algorithms

Course Outcome:

Students will understand the characteristics of the lists, stacks, queues, sets, dictionary trees and graphs in the targeted programming language (Java and C). Also, they will understand the advantages / disadvantages of a particular data structure for individual cases. As outcome, students will able to model the real world data using a data structure, and to choose an appropriate data structure for the analysis of behavior of groups of objects. They will also be able to explain concepts including ADT data encapsulation and hiding. Finally, students will be able to use OO analysis and programming techniques for application implementations.

SE201 Introduction to Software Engineering

Course objective:

The objective of the course is that students understand and master the methods and techniques of software professional development, by realization of following teacher materials: software processes, agile software development, engineering requirements, system modeling, design of software architecture, design and implementation of software, software testing and its evolution. A particular objective of the course is to train students to work independently when making software products.

Course Outcome:

The course train students to develop clear, concise and formalized requirements in accordance with the real needs of users, to apply design principles of distributed systems, to carry out the analysis and design of object-oriented systems using UML models and to apply techniques of quality software measurement.

AD110 Fundamentals of Graphic Design

Course objective: This subject tends to give students a source of direction toward understanding the elements and concepts of visual material. The goal of the lessons that are studied is to prepare students for adopting, integrating, and the usa of the modern importance of the language and media of the visual culture. Students profile themselves to understand the importance of the language, media and art in the creative process and analysis of visual materials. The important aspect of the course is the study of Adobe Photoshop program.  Course Outcome: Students are enabled to understand the basics of visual communication, as well as the practice of its application. Students acquire knowledge from different perspectives of visual theory. Students can analyze visual content and provide critical opinion.

NT213 English 3 in IT

Course objective:

English for IT is an upper intermediate-advanced course of English in IT. The course objective is consolidation of grammar use at the upper intermediate level, expand the general, and particularly the professional vocabulary, as well as practice its use in various language functions. The course helps students to improve and integrate all the language skills: speaking, listening, reading, writing, translation. Special emphasis is placed on group problem solving.

Course Outcome:

Students are enabled to communicate in English both orally and in written, in real communication situations, to comprehend professional and other texts adapted at upper intermediate and advanced level, to write informal and formal business letters and short informative texts, to translate short professional texts from English to Serbian, as well as to combine all the skills in real life situations.

AD360 Introduction to Computer Games

Course objective: Introduction to current and future technologies for game design and development. The course is focused on basic concepts, skills and techniques as well as 2D and 3D game engines.

Course Outcome: Understanding how to design and evaluate games. Knowledge on game concept and characteristics and its social and educational issues.  Students will learn the art of creating digital game prototypes.

AD365 Games Design and Mechanics

Course objective: Comprehension of the game design phase of process of 3D game production.  The course is focused on rapidly developing game prototypes, and techniques for elaborating game ideas, concept, mechanics and documentation.

Course Outcome: Develop soft skills required for game designers, game idea creation, mechanics and gameplay elaboration, rapid prototyping, game balance and testing.

CS330 Mobile Applications Development

Course objective: The objective is that students adopt the concepts and principles of mobile application development on the Android platform.

Course Outcome:  Students are able to develop Android applications of medium complexity and understand advanced methods and techniques of mobile application development.

AD361 Video Game Construction

Course objective: Comprehension of the process of 3D game production. This class is a hands-on, project focused course, students work in pairs to create a single, released game by the end of the semester.

Course Outcome: The course will teach the basic knowledge needed to be able to create digital prototypes of student own ideas. The students will demonstrate competency by building the game using Maya and Unity 3D

CS367 Game Development 1

Course objective: Students will learn the basic algorithms and techniques of 2D game development and C++ programing with the focus on real time interaction.

Course Outcome: Understanding the game loop, computer graphics and real time rendering. Know how to implement specific technique using OpenGL and C++ programming language.

CS430 Artificial Intelligence for Games

Course objective: Students will learn the basic concepts and techniques of game artificial intelligence (AI) as well as algorithms and programing in game engine or game software using C++.

Course Outcome: Understanding of artificial intelligence techniques and application to game design. Know how to implement specific technique using C++ programming language.

IT350 Databases

Course objective: The primary objective of the course is to familiarize students with the basic rules and principles used by different approaches to the databases design. For database creation and implementation, it is necessary to master the syntax and semantics of SQL commands for database elements definition (DDL), data manipulation (DML) and data presentation (SELECT). The focus of the course is also to teach students about existing standards for data access from different programing language (especially Java) like ODBC and JDBC. Considerable attention was given to the databases administration and security.

Course Outcome:

Creation and testing SQL queries for data presentation by using standard SELECT  command, clauses GROUP BY and HAVING and by applying JOIN of two or more tables; commands for data definition like CREATE TABLE / views and use the INSERT, UPDATE, and DELETE; possibility for normal forms application, reducing redundancy and elimination of data base  anomalies; conceptual data base designing by applying technic of E/R diagram (where entities integrity and referential  integrity are specified); usage of CASE tools for creation of  logical and physical database models; understanding and implementation of  the concept of data security, backup and recovery and ODBC/JDBC standard in n-tier database architecture.

SE325 Software Development Project Management

Course objective: Mastering the basic techniques of project management with a small team of professional software development.

Course Outcome: Knowledge of the basic principles of project management and specific techniques in the management of software projects. Mastering the organization and management of small software development project team.

CS368 Game Development 2

Course objective: Students will learn the basic algorithms and programming techniques of 3D game development using C++ with the focus on real time interaction and rendering.

Course Outcome: Use of 3D computer graphics API (Application program interface) and real time rendering. Know how to implement specific technique using OpenGL and C++ programming language.

IT370 Human – Computer Interaction

Course objective: Human-computer interaction (HCI) is concerned with designing interactions between human activities and the computational systems that support them, as well as with constructing interfaces to afford those interactions. Knowledge area of HCI demands the consideration of cultural, social, organizational, cognitive and perceptual issues. Consequently it draws on a variety of disciplinary traditions, including psychology, ergonomics, computer science, graphic and product design, anthropology and engineering.

Course Outcome: Familiarity with user profiling, assessment of various interface models, and usage of prototyping tools, evaluation tools, and ability to design and test user-oriented interfaces using prototypes and functional applications.

CS490 Professional Internship (4 months)

The objective of the professional internship is to prepare students and to provide with quality experience in their profession and tasks. The programme tasks are phased, the first phase allows students to become familiar with the working environment, profile of the organization, distribution of job tasks and insight into the work activities, insight into the specific of the job at various work position. The next stage orientates students to involving students in various projects, scope and purpose, their beginning, development and final stage, as well as the implementation from installation, training and maintenance. Students become better introduced to the technology of work, with guided assistance with the aim to work on projects individually.

IT390 Professional Ethics

Course objective: Assimilation of the relevant theoretical and practical knowledge from the business practice and ethics which enable adequate actions in business environment. Gaining the consciousness that ethics in business gives safety and future to the development in every business system. Discerning of the specific characteristics which the professional practice and ethics have in the field of information technology.

Course Outcome: Knowledge of relevant principles of business practice; Knowledge of relevant principles of business ethics;   Developing the sense of responsibility; Developing confidence and the sense of ethical reasoning in their own business decisions; Developing ability for team work.

NT310 Professional Communication

Course objective:

Introducing students to the fundamentals of the professional communication. Assimilation of relevant theoretical and practical communication knowledge which enables the optimal actions in business environment. Discerning importance of the adequate transmission and exchange of information during business activities. Obtaining knowledge that skills of communication can be crucial in achieving business success.

Course Outcome:

Knowledge of importance and characteristics of the professional communication; Knowledge of necessary communication skills and how to develop them in praxis; Knowledge of finding, evaluating and processing information in research; Knowledge of communication in organizations and teams; Knowledge of communication across cultures.

CS365 User Interaction and Game Testing

Course objective: Learning functions and design principles of game user interface design. Learning the goals, methods and management of game testing.

Course Outcome: Comprehension of analysis, design implement and validate game user interface. Know how to plan, manage and conduct the testing of the game.

CS495 Undergraduate thesis

The Undergraduate Thesis of first degree academic studies is individual work of the students which allows assessment and check of the abilities of the student to apply acquired knowledge in practice in the chosen field of the paper.

Expected Outcome: Acquisition of experience and confidence in individual work, establishment of acquired knowledge during the studies and their integration, Acquisition of new knowledge in terms of organizing the paper, practical application of technologies, documents etc.

AD366 Computer Games Dramaturgy

Course objective: The course objective is for students to learn and acquire the basic concepts in the area of dramaturgy of video games, as well as to enable to prepare a video games scenario individually.

Course Outcome:  Students are enabled to write a simple GDD (Game Design Document), which is equivalent to a book of filming. When writing it, students are enabled to control and dirent all aspects which are present in the movie industry in terms of genre (arcadem action, strategic…) as well as target groups (video games for children, for adults…) as well as those specific for the games industry, such as mechanics of the game or the user interface.

CS225 Operating Systems

Course objective:

The course presents basic terms and principles of operating systems, such as concept of architecture, aims, structure, methods and models of OS. Students get familiarized with interactions of OS and hardware, processes and threads, memory and device management, fyle systems etc. Distributed systems solutions and problems related to system security on the OS level are also presented. Examples of Windows and Unix systems provide a base for the application analysis.

Practical exercises concern programming structure of operating systems. Individual tasks help students to get deeper into concepts and operating systems application. Each student is assigned a project that will help them show the level of understanding of the knowledge gained.

Course Outcome:

The course introduces students into description of the general architecture of computers, contrast and compare differing structures for operating systems and analyze theory and implementation of: processes, resource control (concurrency etc.), physical and virtual memory, scheduling, I/O and files.

AD367 Video Games character and environment development

Course objective: The course deals with the visual aspect of video games. Along with the significant theoretical part, the emphasis is placed on visual-shape aspect of games, as well as other media. The term Character design & Concept art, which is the English synonym for this course title, deals with knowledge and skills not related only to games, but can be applied in a wide specter of media: film, animated film, experimental-animated-film forms etc…Course Outcome: Students are familiarized with various aspects of art shaping the character and environment, which results in a complete authentic game universe.

AD356 3D modeling – Maya

Course objective: Course objective is making students capable in modeling 3d objects using Autodesk Maya software.

Course Outcome: Student is supposed to be skillful in modeling 3d form, to manage it in virtual 3d space and make it visible by applying generated light sources. Models can be conceived as stand-alone objects – (industrial) design objects or multi-purpose objects suitable for use in animation and game design.

CS230 Distributed Systems

Course objective: This course introduces the concepts and principles of distributed systems design, both Internet-based and other systems. Main topics include: communication between processes and remote calling, distributed naming, distributed file systems, data replication, distributed transaction mechanisms and distributed shared objects, secure communication, authentication and access control, mobile code. The project includes the creation of a distributed object applications using OO programming language, tools and environments.

Course Outcome:  The objectives of this course are twofold: firs, students have to understand the principles and techniques in the design of distributed systems, such as locking, concurrency, scheduling and communication through the network, and second, students must receive a practical experience in designing, implementing and errors correcting in real distributed system.

CS322 Programming in C#

Course objective:

The objective of this course is to enable students to use all important elements of the C# programming language. Especially, students need to become familiar with Visual C# GUI applications, also, to use o.o. programming and Visual Studio IDE. Within CS322, every student has to do a C# project, which consists of producing a practical GUI application and corresponding documentation.

Course Outcome:

Students capable of producing GUI applications and using Visual C# and Visual Studio IDE and visual tools (Toolbox, Property Window, etc.) Also familiarization with. NET Framework.

CS369 Software Environments for Computer Game Development

Course objective: To acquire techniques of design of a game engine (environment for development of 2D and 3D games with interaction in real time). To acquire implementation of techniques specific for game development in the engine of games. To enable students to individually select techniques and implement in implementation of a smaller computer engine.

Course Outcome: Acquisition of techniques of design of game engine and implementation of standard algorithms applied in game development. Acquisition of techniques of maintenance of existing game engines. Ability to individually develop a smaller game engine.

OM350 Entrepreneurship

Course objective: Mastering basic theoretical and practical knowledge related to entrepreneurship and small business operations. Defining the place and importance of entrepreneurial business within the overall business and the impact of entrepreneurship on economic and social development. The ability to explain and analyze trends in entrepreneurship, perspectives and importance of small business in the context of the overall economy development and society in general.

Course Outcome: After studying the scientific discipline of Entrepreneurship, students will possess basic theoretical knowledge of the subject Entrepreneurship, and will be able to practically apply the acquired knowledge through autonomous assessment and analysis of entrepreneurial business and creating a business plan.

CS401 Team Development of Computer Games

Course objective: Acquisition of basic techniques of management in a small professional team for game development. Ability of individual formation and leading of a team for games development.

Course Outcome: Students are enabled to organize, plan and execute a project of games development, to have a feeling for rules in team work and coordination of activities of team members. Management of activities within the team, as well as management of relations with external factors – users of games, sponsor of projects and publisher.

IT320 Modern Technological Platforms

Course objective:

Teaching students to develop complex software applications/systems using various modern vendor platforms (Microsoft, Oracle, etc.). Students have to show that they are capable of producing complex software applications using a chosen concrete vendor platform.

Course Outcome:

Every student has to show knowledge of using a chosen concrete commercial technological platform and corresponding tools.