Changes in the field of computer sciences and their application are very dynamic. The main challenge of the research and studies in this area is developing new advanced systems and technologies that will provide solutions in the area of information and communication technologies. Information and communication technologies have become the largest, the most important and the most developed sectors that are rapidly expanding in the European Union and the global market.In addition, the emergence of new markets for the software and telecommunications sector in Southeast Europe has led to increased demand for highly qualified and specialized professionals in this field.Graduate students can work as professional software engineers or as software architects in the development of software companies or in IT departments of various different enterprises.The high level of professional skills will enable graduate students to become successful leaders in the software industry.
Through the program, students will acquire the necessary knowledge and skills so that they can contribute in all aspects of the software development process, including planning, collaboration, specifications, design, development, delivery and maintenance of software products. In addition, students will also acquire general skills, such as analytical and critical thinking, teamwork including multicultural environments, planning and organization.After finishing this program, the graduates will have career opportunities in a variety of industries, mainly fulfilling the needs for designing computer systems, developing software for mobile and Web applications, working as database engineers, managers of software projects and processes, etc. depending on the track the students will choose within this study program.The last semester of studies includes master thesis writing, enabling program graduates to continue their studies towards a doctoral degree in computer sciences.
Knowledge and understanding
- Ability to develop and implement original and creative IT ideas to ensure the quality and design and managing applications related to telecommunications applications areas such as security and quality assurance;
- Ability to apply IT skills and knowledge and demonstrate specialized competencies in computer sciences and information technologies in order to organize and connect telecommunications processes like a structure that is managed and monitored both in terms of data flow and in terms of creating user interfaces;
- Having knowledge and understanding of areas such as computer sciences and engineering (programming, web technologies, databases, networks, computer and information systems and multimedia);
- Having knowledge of one or more areas of the telecommunications industry that can upgrade students to expert s in the application of knowledge in a given area;
Applying knowledge and understanding
- Ability to critically, independently and creatively solve problems in new and unfamiliar environments with no previous experience in telecommunications;
- Planning, management and evaluation of independent research in the field of telecommunications as well as development and implementation of appropriate tools for testing, simulation and implementation;
- Creativity and originality in the interpretation of the knowledge in informatics to solve problems related to the objectives of the industrial production area of telecommunications;
Making judgement
- Ability for creative integration and synthesis of knowledge from several areas in the telecommunicationsfield, and administration processes and systems using IT tools designed and created for a specific issue.
- Creating educational processes using computer tools and techniques;
- Ability to deal with complex situations associated with specific processes resulting in real-time telecoms space;
- Ability to identify appropriate specialized instances and make sound judgments in situations of lack of complete information or data based on personal, social and ethical principles and responsibilities associated with the application of knowledge and understanding;
Communication skills
- Ability to share findings and proposals with rational argument and reliance both with professionals and with unskilled people, clearly and unambiguously;
- Taking considerable responsibility in shared outcomes, running and initiating activities, etc.
Learning skills
- Able to identify personal needs and directions for individual and autonomous study and to perform it in self-directed and autonomous manner in the common business and informatics areas.
- Able to take responsibility for ongoing individual and group learning in specialized business and informatics fields within the networked economy, including defining learning objectives for medium and longer terms.
Semester 1
-
[MCS-303]
[6 ECTS]
Research Methodology
The purpose of this course is to provide students with knowledge and understanding of different scientific theories and methodologies. Initially the student will be introduced to the conceptual, theoretical definitions and examples of all existing methods of research, hypothesis, direct and indirect variables, validation of the results, the conclusions BIAS and scientific qualitative and quantitative methodologies, "ground research" methodology and other methodological approaches. In each chapter the student will work on practical assignments. After completing the course the student will be able to explain thoroughly and understand the importance of basic scientific concepts, effectively search and find information-relevant literature, identify, describe and formulate scientific problems, make a careful choice of alternative research approaches, thoroughly described, compare and explain the advantages and disadvantages of different scientific methods for collecting quantitative and qualitative data, apply basic scientific methods to analyze quantitative and qualitative data, understand different frameworks for building theory and review and evaluate scientific publications.
-
[CM191]
[6 ECTS]
Advanced Algorithms and Data Structures
To provide students with knowledge of being able to:
- calculate time complexity and compare the execution time of different algorithms
- design and use advanced data structures
- apply different algorithm design methods
- Identify various problems in areas of computer science and their solutions
-
[CM192]
[6 ECTS]
Formal Methods in Computer Science
This course gives students a comprehensive introduction to formal methods and their application in software specification and verification. It covers some fundamentals in formal methods, including set theory, functions, finite state machines, predicate and temporal logics, and model checking. The course will give students examples of real-world application of these formal techniques.
-
[6 ECTS]
Professional Elective Course
-
[EM590] Compilers
This course aims to provide students with theoretical and practical knowledge on constructing compilers. It covers the main concepts used in compilers such as lexical and syntactical parsing, analysis of the program and code generation and optimization techniques. Students will be introduced to different tools that are used to build compilers. By the end of this course, students should be able to implement a simple compiler for a restrained general-purpose language.
-
[EM591] Information Theory
This course attempts to be a comprehensive overview of the field with focus on applications and ways in which communication and representation of information manifest in various areas. In this course, students will learn the basic concepts of information theory and some of their primary applications, including: data compression and storage, wired and wireless communications, statistical inference and machine learning, to name a few.
-
[EM592] Human - Computer Interaction
This course aims to enable students with knowledge of the theory and practice in software development related to the communication between humans and computers, with the goal of creating usable application interfaces. The course deals with the psycho-motor aspects that influence the way people communicate with machines. Through concrete examples of user interfaces, students should understand the principles and be able to apply them while designing their applications.
-
[EM593] High Performance Computing
The course stresses the need for and the design of high-performance computing (HPC) systems. It provides a solid foundation in High Performance Computing (HPC) and studies the fundamental techniques for developing HPC applications. The course focuses also on commonly used HPC platforms, the methods for measuring, assessing and analysing the performance of HPC applications, and the role of administration, workload and resource management in an HPC management software. The students will be introduced also to the issues related to the use of HPC techniques in solving different problems
-
[EM594] Neural Networks and Deep Learning
The course focuses on the theory, structure and algorithms of neural networks and deep learning. The theory and algorithms of neural networks are particularly important for understanding deep learning concepts, so these this course offers important design concepts of neural architectures in different applications. And it covers the theory and algorithms of deep learning as well, providing detailed discussions of the relationships of neural networks with traditional machine learning algorithms. This theory is linked and described with real world practical applications.
-
[EM595] Natural Language Processing
This course helps students to explore into the exciting world of Natural Language Processing (NLP) giving an overview of major topics in the field. Students will understand how computers work with human language, learn techniques and libraries for data analysis and create natural language processing tools as well. Interactive demonstrations and hands-on analysis of real-world applications will focus on a range of tasks: language translation, text classification, text clustering, sentiment analysis, speech recognition, summarization etc.
-
[EM596] Software Defined Networks
This course introduces software defined networking, an emerging paradigm in computer networking that allows a logically centralized software program to control the behavior of an entire network. The course will teach the concepts and techniques for Software Defined Networking (SDN), including an overview of available controllers, switches, and tools. More specifically, the course will cover a review of basic networking concepts, motivation and use cases for SDN, general SDN architecture and building blocks, Network Functions Virtualization (NFV), SDN protocols, and existing SDN applications.
-
[EM597] Web Services and Applications
This course introduces students to software architectures designed to enable computer programs to communicate over a network using open standard Internet protocols. They will learn how to design and develop SOAP and RESTful web services using various frameworks and tools. Moreover, they will learn about advanced concepts like security, versioning, error handling and serverless APIs. After completing the course, students will have enough knowledge to design, develop and deploy highly adaptable and scalable real-world applications using services.
-
[6 ECTS]
Professional Elective Course
-
[EM590] Compilers
This course aims to provide students with theoretical and practical knowledge on constructing compilers. It covers the main concepts used in compilers such as lexical and syntactical parsing, analysis of the program and code generation and optimization techniques. Students will be introduced to different tools that are used to build compilers. By the end of this course, students should be able to implement a simple compiler for a restrained general-purpose language.
-
[EM591] Information Theory
This course attempts to be a comprehensive overview of the field with focus on applications and ways in which communication and representation of information manifest in various areas. In this course, students will learn the basic concepts of information theory and some of their primary applications, including: data compression and storage, wired and wireless communications, statistical inference and machine learning, to name a few.
-
[EM592] Human - Computer Interaction
This course aims to enable students with knowledge of the theory and practice in software development related to the communication between humans and computers, with the goal of creating usable application interfaces. The course deals with the psycho-motor aspects that influence the way people communicate with machines. Through concrete examples of user interfaces, students should understand the principles and be able to apply them while designing their applications.
-
[EM593] High Performance Computing
The course stresses the need for and the design of high-performance computing (HPC) systems. It provides a solid foundation in High Performance Computing (HPC) and studies the fundamental techniques for developing HPC applications. The course focuses also on commonly used HPC platforms, the methods for measuring, assessing and analysing the performance of HPC applications, and the role of administration, workload and resource management in an HPC management software. The students will be introduced also to the issues related to the use of HPC techniques in solving different problems
-
[EM594] Neural Networks and Deep Learning
The course focuses on the theory, structure and algorithms of neural networks and deep learning. The theory and algorithms of neural networks are particularly important for understanding deep learning concepts, so these this course offers important design concepts of neural architectures in different applications. And it covers the theory and algorithms of deep learning as well, providing detailed discussions of the relationships of neural networks with traditional machine learning algorithms. This theory is linked and described with real world practical applications.
-
[EM595] Natural Language Processing
This course helps students to explore into the exciting world of Natural Language Processing (NLP) giving an overview of major topics in the field. Students will understand how computers work with human language, learn techniques and libraries for data analysis and create natural language processing tools as well. Interactive demonstrations and hands-on analysis of real-world applications will focus on a range of tasks: language translation, text classification, text clustering, sentiment analysis, speech recognition, summarization etc.
-
[EM596] Software Defined Networks
This course introduces software defined networking, an emerging paradigm in computer networking that allows a logically centralized software program to control the behavior of an entire network. The course will teach the concepts and techniques for Software Defined Networking (SDN), including an overview of available controllers, switches, and tools. More specifically, the course will cover a review of basic networking concepts, motivation and use cases for SDN, general SDN architecture and building blocks, Network Functions Virtualization (NFV), SDN protocols, and existing SDN applications.
-
[EM597] Web Services and Applications
This course introduces students to software architectures designed to enable computer programs to communicate over a network using open standard Internet protocols. They will learn how to design and develop SOAP and RESTful web services using various frameworks and tools. Moreover, they will learn about advanced concepts like security, versioning, error handling and serverless APIs. After completing the course, students will have enough knowledge to design, develop and deploy highly adaptable and scalable real-world applications using services.
Semester 2
-
[CST-THESIS-120]
[30 ECTS]
Master Thesis
This module enables students to transfer their skills and knowledge to research and carry out more complex tasks related to their master thesis. The module is designed to be fully practical and students to acquire the necessary knowledge and skills to approach writing the thesis. The module has unique return result-to enable students to write the master thesis with minimal difficulties, and with maximum efficiency. The course aims to improve research techniques and style of writing the paper, taking into account the prevention of the usage of illegal means, such as plagiarism and infringement of copyright, which are prohibited by the Statute of SEEU.