APPLICATIONS ARE OPEN! APPLY

Master of Science in Computer Science

Master of Science in Computer Science

Master in Computer Science (120 ECTC, 2 academic years, full-time)
Program’s Objectives

The aim of the Master of Science in Computer Science study program is to deepen, broaden, and strengthen the knowledge and skills acquired during the first cycle of studies, as well as to provide students with advanced practical and theoretical knowledge in the field of computer science. The program supports rapid technological advancement and provides a foundation for lifelong learning and career success in both national and international environments. It offers specialized theoretical and practical knowledge in computer science and enables innovation in industry, as well as original research innovation within higher education institutions. The program also provides expertise in problem-solving in the areas of research and innovation and in the acquisition of new interdisciplinary knowledge. It equips students with the skills to develop teamwork strategies that contribute to the advancement of professional knowledge and to the evaluation of such work.

Objectives and Learning Outcomes of the Study Program:

The Master of Science in Computer Science program prepares students to achieve the following career and professional accomplishments within the years following graduation.

First Level: Knowledge and Understanding
The student will be able to:
– recognize and apply advanced algorithmic principles and computer science theory in the modeling, development, and design of computer systems.
– in the design of data structures, parallel algorithms, hash codes and algorithmic assumptions, heuristic programming, information security, the design of multimedia systems and various games, as well as artificial intelligence and machine learning, in order to solve complex problems in industry or scientific research contexts.
– identify input/output and peripheral devices, all components related to computer hardware, network interfaces, and drivers.

Second Level: Enhancing the Capacity to Apply Theoretical Knowledge in Practice
The student will acquire the following skills:
– pursue successful careers in computer science disciplines and/or continue with Master’s/doctoral studies in this field or related fields;
– enhance their knowledge and skills through lifelong learning and adapt to emerging markets and technologies.

Third Level: Professional Skills
The student will acquire expertise and skills to:
– assume leadership positions with the aim of improving services in this field, as well as initiate businesses that provide innovative solutions, and collaborate effectively in teams to complete a joint final project;
– act with awareness of the potential and responsibilities of the computing profession in the context of science, technology, society, and humanity.

Employment opportunities

Given the spread and development of computer technology in society today, there are many different job opportunities for computer science graduates. Some of the employment opportunities offered by the Master of Science in Computer Science program include the following:

  • Software Engineer, who designs computer programs and applies
  • computer science concepts to solve practical problems;
  • Database Analyst, who designs and develops programs for collecting, storing, and
  • analyzing various types of data;
  • Systems and/or Database Administrator;
  • Information Systems Manager;
  • Information and Computer Security Specialist;
  • IT Project Manager or Consultant;
  • Web Developer;
  • Game Developer;
  • Computer Network Specialist;

EDUCATION PROGRAM

Semester I
Advanced Programming (Python)Objectives:The main objective of the course is to enable students to understand advanced principles of Python programming and apply them in the development of advanced web applications using Django, Flask, AI libraries, TensorFlow, and other relevant libraries. The course is structured into several areas, including Django and Flask frameworks, asynchronous programming libraries, application development using Artificial Intelligence and Data Science, TensorFlow development, automated testing, and other development tools. Students will gain expertise in designing RESTful APIs, implementing authentication and authorization mechanisms, and applying ORM concepts for database interactions in both Flask and Django. In addition, the course emphasizes automated testing practices, enabling students to develop skills in creating unit tests, integration tests, and end-to-end tests to ensure code reliability and functionality.
Course description:Python is a high-level programming language used to develop a wide range of applications. It can be used for web development, automated testing, data analysis through Machine Learning algorithms, and many other purposes. Python enables programmers to perform automated testing through scripts that identify problems at an early stage, thereby increasing the reliability and efficiency of a system or program. It also facilitates and supports the software documentation process.
Computer Aided Analyses and DesignObjectives:The main objective of the course is to provide students with knowledge of methodological tools, Vector and Sketchingdesign, sketching, solid modeling, and CAD-based analysis. Students will develop proficiency in product design methodologies, the design process, design thinking, creative tools, prototyping, and the use of advanced CAD systems.Course Description:The Computer-Aided Analysis and Design course is interdisciplinary and provides students with knowledge and competencies in CAD-based design. Vector and Sketching design is integrated with methodological tools, enabling students to combine different techniques and perform comprehensive analyses. The acquired skills and knowledge will allow students to demonstrate creativity and innovation in solving a variety of design and engineering problems.
Distributed SystemsObjectives:The main objective of the Distributed Systems course within the Master of Science in Computer Science program is to provide comprehensive knowledge of the design, implementation, and management of distributed computer systems. Students will explore fundamental concepts such as communication protocols, distributed algorithms, and system architectures in order to understand the challenges and opportunities associated with distributed environments. The course aims to equip students with the skills required to develop scalable, flexible, efficient, and reliable distributed systems and applications, while fostering a solid understanding of the fundamental principles underlying modern distributed computing.Course Description:Distributed systems address complex computational problems by providing address-space isolation, high processing capacity, and remote access without requiring physical proximity. These systems make data and computational resources available to geographically distributed users. The course covers communication protocols, the TCP/IP model, socket programming, and related technologies in detail. Particular emphasis is placed on the design of distributed systems and on identifying and addressing the challenges and difficulties that may arise during the design process.
Advanced Algorithms and Data StructuresObjectives:The aim of this course is to advance students’ knowledge of algorithms, their efficiency, and the data structures that support them. Students will become familiar with algorithms used for searching, sorting, and distance optimization, as well as with methods for analyzing algorithms in order to determine their efficiency. This will enable them to make more informed decisions when selecting among alternative approaches to solving different problems. Students will also gain experience in understanding and solving problems related to fields of study such as Artificial Intelligence. The project to be presented at the end of the course will provide students with an initial opportunity to demonstrate responsibility and independence in applying the knowledge and skills acquired.Course Description:The course focuses on algorithm analysis and aims to provide students with advanced knowledge of algorithms in close connection with the data structures best suited to them. Advanced methods involving graphs, sorting, distributed hash tables, divide-and-conquer techniques, dynamic programming using the Java programming language, Greedy algorithms, and related approaches will be covered.These methods will enable students to develop optimal and efficient solutions to a variety of problems related to programming and Computer Science in general, taking into account factors such as execution and processing time, algorithmic complexity, resource utilization, and required memory space.
Elective subject

The student selects one (1) of the following courses:

Laboratory Creativity Objectives: Write the course objectives here. Course Description: Write the course content here.
Project Management Objectives:
The objectives of the course are to provide students with the knowledge required to become effective project managers, as well as practical techniques for managing projects. At the same time, students will work both individually and as part of a team to develop their own project. More specifically, the course aims to equip students with the knowledge and practical skills necessary for project management by examining a range of well-established project management techniques, from traditional to modern approaches. It also aims to establish a connection with computer science in the “real world” by sharing experiences from projects that are currently being implemented. Course Description:
Project management is the process of planning, organizing, and overseeing the overall execution of a project from its initiation through to completion. The general role of a project manager is to define the project objectives, develop a feasible project plan, allocate essential resources, and manage the project team as a whole. Effective project management requires strong communication skills, attention to detail, and the ability to adapt to constantly changing circumstances. It is critical across many industries, including construction, engineering, software development, and marketing. At the same time, almost everything in the field of computer science is structured as a “project,” often involving significant risk and uncertainty. Nevertheless, computer science professionals are expected to plan and anticipate effectively in order to deliver high-quality, fully functional products on time and within budget.
Business Information Systems Objectives: Write the course objectives here. Course Description: Write the course content here.
Semester II
Machine LearningObjectives:
The main objective is to familiarize students with the necessary mathematical concepts as well as the latest software tools used in the development of artificial intelligence algorithms. In this way, students will be prepared to analyze and develop various AI algorithms. Students will also become familiar with the statistical approach to artificial intelligence and will be able to interpret the results obtained. Finally, they will implement some of the most widely used artificial intelligence algorithms and test their performance on different datasets.
Course Description:

In this course, through lectures, seminars, and laboratory sessions focused on coding-related aspects, students are introduced to the fundamental concepts of artificial intelligence. The aim is to equip students with the knowledge required to contribute to various areas of scientific research as well as to industry. The course introduces students to the fundamental concepts of linear algebra, optimization, probability, and statistics, helping them develop the mathematical maturity necessary to succeed in research-oriented environments. Furthermore, throughout the course, students are required to implement some of the most widely used artificial intelligence algorithms using various Python libraries. This knowledge equips students with the skills and competencies needed to succeed across a range of industries.
Software Engineering (Modern Software Development Methods) Objectives: The Software Engineering module aims to enable students to understand software engineering as a discipline dedicated to building reliable systems; apply technical analysis of solutions to practical examples; and understand the essential tools and processes required for implementing systems that demand more innovative technical approaches.
Course Description:
The Software Engineering module covers the complete software development lifecycle, from design through to implementation. During this module, students will learn the principles, techniques, methods, and tools required to support application development.
The module places particular emphasis on the disciplined development and management of large and complex systems. Through practical examples, the topics covered guide students in meeting initially defined requirements by developing software correctly as a product that satisfies business needs.
Information Security Objectives: The aim of this course is to develop an understanding of the core concepts of information security, general frameworks and practices for information security management, and the tools and methods used to monitor and respond to information security incidents. Students will also learn how to design appropriate security measures for simple applications. The course equips students with advanced skills for identifying and analyzing cybersecurity threats and applying effective methodologies for protection against cyberattacks.
Course Description:
This course provides broad coverage of information security and cybersecurity as a foundation for understanding, evaluating, and implementing a range of technical and organizational measures designed to ensure the appropriate protection of information resources against damage or compromise.
Cybersecurity also involves protecting physical systems from damage resulting from attacks carried out through the Internet. The course provides a foundation for pursuing additional security-related courses at the Master’s level.
Elective subject

The student selects one (1) of the following courses:

Advanced Programming (Python) Objectives: The main objective of the course is to enable students to understand advanced principles of Python programming and its use in developing advanced web applications using Django, Flask, AI libraries, TensorFlow, and other suitable libraries.
The course is divided into several areas, including Django and Flask libraries, asynchronous libraries, application development through Artificial Intelligence and Data Science, TensorFlow development, automated testing, and other development tools.
Students will gain expertise in designing RESTful APIs, implementing authentication and authorization mechanisms, and using ORM concepts for database interactions in both Flask and Django.
Furthermore, the course emphasizes automated testing practices, ensuring that students develop skills in creating unit tests, integration tests, and end-to-end tests in order to maintain code reliability and functionality. Course Description: Python is a high-level programming language used to develop a wide range of applications. It is used for web development, automated testing, data analysis through Machine Learning algorithms, and other purposes.
Python enables programmers to perform automated testing through scripts that detect problems at an early stage, increase the reliability and efficiency of a system or program, and also support the documentation process.
Real-Time Systems Objectives: The aim of the course is to enable students to understand specific aspects of real-time systems, identify the main challenges involved in the design of real-time systems and become familiar with possible solutions, and apply formal reasoning techniques to real-time systems. Course Description: Real-time systems are specialized operating systems designed to perform tasks and functions that respond to various events within predefined time constraints. In this course, students are introduced to the fundamental problems, concepts, and approaches involved in the design and analysis of real-time systems.
The course addresses issues related to the design and analysis of systems operating under real-time constraints.
Data Structure Objectives: Write the course objectives here. Course Description: Write the course content here.
Elective subject

The student selects one (1) of the following courses:

Game Development Objectives: Write the course objectives here. Course Description: Write the course content here.
Big Data Objectives: Write the course objectives here. Course Description: Write the course content here.
Intelligent Multimedial Systems Objectives: Write the course objectives here. Course Description: Write the course content here.
Semester III
Advanced Computer Networks and Technologies Objectives: The main objective of this course is to prepare students for careers in network engineering, systems administration, information security, and related fields. Upon successful completion of the course, students will have a strong foundation in networking technologies and their modern applications.
The knowledge and techniques acquired in the Advanced Computer Networks and Technologies course enable students to conduct in-depth analyses and develop proposals for solutions and improvements to practices and procedures related to the design, implementation, and maintenance of computer networks.
Course Description:
This course aims to equip students with the knowledge and skills required to design, secure, manage, and adapt computer networks within a rapidly evolving technological environment.
Upon completion of the course, students will have developed knowledge and skills in areas such as the analysis and application of network protocols, customized design of network topologies, configuration and management of network devices, network performance optimization, and related topics.
Research and Innovation Methods in Computer Science Objectives: The Research Methods module provides students with the opportunity to learn all aspects of the research process and to develop appropriately formulated research questions relevant to their field of study. By the end of the course, students are expected to apply specific techniques such as developing an initial research framework, collecting and analyzing data, academic writing, and presenting research findings.
Course Description:
The module is designed in an open-class format, encouraging in-depth discussion of both the theoretical and practical perspectives of scientific research. Through this module, students will become familiar with the techniques and processes required to conduct high-quality scientific research in computer science and related fields.
The range of topics covered throughout the course will be applied to a specific case using an appropriate methodology that identifies how to address the research problem, achieve the research objectives, and answer the research question and/or validate the research hypothesis.
Integrated Computer Science Laboratory Objectives: The main objective of this course is to equip students with a more advanced approach to web development by covering key concepts in modern technologies. Students will develop skills in tools such as React, GitHub, and CLI, enabling them to build, structure, and test robust web applications. Furthermore, the course aims to introduce best practices in DevOps, with an emphasis on building, deploying, and managing applications.
Course Description:
This course is designed to provide students with a comprehensive understanding of web development. The curriculum covers essential DevOps practices and version control using GitHub. The course aims to equip students with the skills and knowledge required to successfully develop and deploy web applications online.
Elective subject

The student selects one (1) of the following courses:

Service-Oriented Computing Objectives: Write the course objectives here. Course Description: Write the course content here.
Human-Computer Interaction Objectives: By the end of the course, students are expected to understand and apply the most important and modern interaction methodologies; be able to apply them to generic HMI systems, SCADA HMI, and AI applications; and be able to design systems using a participatory approach, among other methods. Course Content:
This interdisciplinary course focuses on the design and evaluation of computer systems and technologies with which users interact. The course aims to help students learn and understand the principles of Human-Computer Interaction Design. The course is divided into three levels: 1. Theoretical instruction; 2. Exercises, case studies, and examples; 3. Project work carried out by students in teams. The theoretical component of the course can be divided into four main areas: 1. Principles of participatory design; 2. Principles of interaction design; 3. User Experience (UX) and User Interface (UI) design; 4. Tools and languages.
Virtual Technologies Objectives: Write the course objectives here. Course Description: Write the course content here.
Elective subject

The student selects one (1) of the following courses:

Business Intelligence Objectives: By the end of the course, students are expected to understand the most widely used digital business models, as well as the opportunities and risks associated with emerging disruptive technologies. Students should be able to apply these concepts to traditional business models in order to develop innovative solutions, implement them within organizations of any size, and define an appropriate start-up pathway for a new venture using digital business approaches. Course Description: Business Intelligence focuses on the creation, transformation, and use of data to improve the performance of business units and organizations as a whole. The course aims to enable students to learn and understand the principles of Digital Business and Business Intelligence, including both current and emerging technologies.
The course is structured into three levels: theoretical instruction; exercises, case studies, and examples; and project work carried out by students in teams.
The theoretical component can be divided into several areas, including the fundamentals of digital business, disruptive technologies, principles of business intelligence, and relevant tools and programming languages.
Bioinformatics Objectives: Write the course objectives here. Course Description: Write the course content here.
Python Programming Objectives: Write the course objectives here. Course Description: Write the course content here.
Semester IV
InternshipObjectives: Write the course objectives here. Course Description:
Write the course content here.
Computer Science in Society Objectives: The aim of this course is to understand the impact of computer science on the development of various areas of life, including advancements across scientific disciplines, education, communication, engineering and manufacturing, finance, healthcare, as well as different businesses and industries. The course will also examine the influence of computer science on emerging technologies such as Artificial Intelligence (AI), the Internet of Things (IoT), quantum computing, cybersecurity, and big data analytics.
Course Description:
Through lectures, students are expected to gain comprehensive knowledge of the impact of computer science across all areas of life and, more directly, on society. The course provides a broad examination of the influence of computer science from two main perspectives: the fields in which it is applied and its impact on emerging technologies.
We are now living in the computer age, where most people use devices capable of processing data, such as personal computers or smart devices including smartphones, smartwatches, and smart glasses. The development of computing represents one of the greatest scientific achievements of the 20th century and continues to have a direct influence on technological and societal developments in the 21st century.
Diploma ThesisObjectives: Write the course objectives here. Course Description:
Write the course content here.