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. In addition, specialization in four majors such as Data Engineering, Web and Mobile Systems, Software Engineering and Information Systems, will enable graduate students to gain expertise in certain areas and be even more competitive in their workplaces.
The program will supply students with 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 telecommunications field, 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
Ability to take responsibility for continued private study in specialized areas of business and information within the networked economy;
Ability to take responsibility for further professional development and training;
Semester 1
-
[MCS-103]
[6 ECTS]
Advanced Software Engineering
The aim of this course is to provide students with knowledge and understanding of advanced software engineering concepts. Initially the students will be introduced to the construction of a clear specification. In addition, the aim is to answer the following advanced aspects of software engineering: What key technical activities are conducted during the clean room software engineering process? How is component-based software engineering used to create systems from reusable components? How does the client/server architecture affect the way in which software is engineered? Are software engineering concepts and principles applicable for Web-based applications and products?
-
[MCS-201]
[6 ECTS]
Advanced Data Structures and Algorithms
This course builds on previous knowledge in the area of algorithms and data structures. The goal of the course is to acquaint students with efficient advanced algorithms and adequate data structures that are used to organize, search and optimize data. It also includes the theoretical efficiency of algorithms and its practical determination with in order to be able to compare different algorithms. During the course, students will be introduced to several well-known algorithms, particularly search and optimization in complex nonlinear structures such as trees and graphs.
-
[CCS-802]
[6 ECTS]
Logic and Functional Programming
This course aims to introduce logic programming paradigm through Prolog language. The subject focuses on syntax and the semantics of Prolog, the working of a Prolog interpreter and various applications of Prolog. In particular, its application database querying, parsing, meta-programming, and problem solving in Artificial Intelligence (AI).
-
[6 ECTS]
General elective course
-
[MFE11] Project Management
On successful completion of the course, students will be able to:
- plan the activities necessary to implement the project, identify their interdependencies, their duration and costs;
- prepare the necessary reports and perform all the required communication between the project and the client, as well as among the team members and the other stakeholders.
- structure the project to its constituent activities;
- prepare a Gantt-chart and a network plan for the project and identify the shortest time needed to complete the project;
- use MS Project as a tool in the process of planning, implementation and review of the project;
- define the project, identify its scope and objectives and develop project specification;
-
[?F?12] Optimization Methods
The aim of this course is to present techniques of modeling and optimization in order to prepare students for developing their ability to prepare models for solving real problems in the field of computer science. The course explore the importance of matrix factorizations as an important tool which offers modality for optimizing the solutions of different numerical algorithms which are of basic interest for problem solving in the area computer sciences. The course introduces optimization theory and approach to find the optimum. The different methods of optimization will be analyzed such as the simplex method, duality problem and sensitivity of the problems of linear programming. The aim is to explore a computer implementation for each of the problems followed by the proposal of the corresponding model for optimization.
-
[MFE15] Applications for Preparing a Scientific Paper
The aim of this subject is:
- To display the technical elements, the structure of the text and design of a scientific research.
- To enable students to acquire advanced knowledge and skills from selected advanced chapters of IT applications that will be needed in preparing the scientific and research paper.
- Practical application of these objectives in preparing student’s individual research paper.
-
[MFE04] Selected Advanced Topics in Applications for Statistical Data Processing
The aim of this subject is:
- To display the technical elements in the field of statistics: organizing, processing, comparing through analysis and publication of data.
- To enable students to acquire advanced knowledge and skills from selected advanced chapters of the applications for statistical data processing.
- Practical application of these objectives in statistical processing of data obtained from questionnaires, reports, scientific studies and other documents.
-
[ECS3060] IT Professional Ethics
Aims of the course program:
- to develop an understanding of the relationship between computing, technological change and society;
- to emphasize the powerful role that computers and computer professionals play in a technological society;
- to provide an understanding of ethical concepts that are important to computer users and professionals;
- to provide experience in the consideration of ethical matters and the resolution of ethical dilemmas.
-
[ECS-507] Numerical Computations
This course is designed to equip students with concepts and methods of numerical calculations. The primary intent is to provide students with a sound introduction for the numerical methods. They have big application in solving different problems which can be solved just by using the computers, therefore, solving numerical problems will help students not just to apply them in different other areas, but simply it will help them to become better computer scientists. After e brief look at the ways numbers are placed and manipulated in computers we will deal with fundamental computational problems, such are solving the equations, system of equations followed by an approximation theory. We will deal with the accuracy of numerical solutions and also the aim is to evaluate the functions, numerical differentiation and integration.
-
[CCS-804] Information Security
This course teaches principles of computer security from an applied viewpoint and provides hands on experience with security threats and countermeasures. The course additionally covers principles and skills useful for making informed security decisions and for understanding how security interacts with the world around it. Applied topics include cryptography, authorization control, operating systems security, and web and network security. Other topics include general security principles, human factors such as trust and social engineering, the security of complex systems, and the economics of security. The course aims to balance theory and practice.
-
[EM479] Technologies for Big Data
Recent technological advances decreasing hardware costs and the Internet of things has led to a rapid explosion in the amount of data generated in a variety of domains, including data-driven science, telecommunications, social media, large-scale e-commerce, medical records and e-health. Big data refers to the ability of exploiting these massive amounts of extremely heterogeneous in structure and content data that are routinely generated at an unprecedented scale from an ever-expanding variety of data sources. Business and industry used their big data to extract a better understanding of customers’ needs and behavior, to develop targeted new products and to cut operational costs. The competitive advantages and productivity gain that big data brought led to a great number of a big data projects and a shortage of people with the required skills. This course is aimed to introduce students into this rapidly expanding and exciting area; it has been designed to build the knowledge and understanding of big data systems architectures and to equip by the core technologies utilized in big data projects.
-
[6 ECTS]
Professional elective course
-
[ECSWMS-01] Wireless Mobile Networks
The course introduces the underlying concepts and principles of wireless networks. It presents the different components of a network and how these components fit together. It is intended to help students to understand the wireless mobile network technologies in general, and wireless LAN (WLAN) technology in depth and to help students prepare for the CWNA certification exam (PW0-100). The CWNA certification prepares the candidate to implement, troubleshoot, and maintain small, medium, and large wireless networks.
-
[ECSWMS-02] Interactive Systems Design for Web and Mobile Applications
The objective of this course is to help students learn the design principles of web and mobile applications in order to achieve high level of usability. More specifically, students will get acquainted with the user-centered design method, which represents the design of mobile applications based on user analysis and the context of use. Additionally, various wire-framing methods of building web and mobile application will be learned, which will be implemented to ensure the usability of the application by the users. Through practical examples, students will learn to avoid designing bad interfaces and instead develop usable and desirable web and mobile interfaces.
-
[ECSWMS-03] Internet of Things
This course provides a general introduction to the emerging concept of the “Internet of Things” and an overview of its stack of enabling technologies, spanning from sensors and actuators near the user or environment end to the cyber-physical systems that provide governing intelligence, via the Cloud that caters for virtually ubiquitous connectivity. This course brings together the next two big things, Semantic Web (Web 3.0) and the Internet of Things. The course emphasizes software-hardware code sign. A student may choose to focus on either software, hardware, or both aspects. The course aims at highlighting open issues with the Internet of Things (IoT) model, deployment, evaluation and evolution, outlining future directions relevant for societal impact and research opportunities.
-
[ECSWMS-04] Software Development for Mobile Devices
The aim of the course is to provide students with knowledge and understanding of a pragmatic process for developing applications for mobile devices. It will cover the development aspects for mobile devices, and practical individual project work in design and development oriented towards real practical case for one or more contemporary platforms that will enable students to gain real life practical experience and insights
-
[ECSWMS-05] Web Application Security
This class is designed to teach students how to properly secure a web server, web page, and web application. Students will take an already existing web application and redesign it to be as secure as possible. Students will also design and build an ecommerce site designed with the best security practices. Students will learn how to protect confidential information, including financial and personal data.
Part of security is testing the security and vulnerabilities of the web application. To that end, students will also learn the common techniques for penetrating web applications and web servers. This will give students the techniques to properly test their web applications in their academic and professional careers.
-
[ECSWMS-06] Large Scale Distributed Systems
Distributed systems have become widely inescapable and are having a tremendous impact on various domains of human activity. They range from ad-hoc networks comprising of tiny sensor devices, to massive web farms of powerful servers. Therefore, this course will cover advanced and current topics in modern, large-scale distributed systems. The course will include an in-depth coverage of different strategies to process voluminous data. Issues related to replication, fault tolerance, consistency, scalability, isolation and privacy, virtualization and creation of machine images in large-scale distributed systems will also be covered. Writing critical reviews of research papers in the field is a principal activity of this course.
-
[ECSWMS-07] Cloud Computing Technologies
This course covers a series of current cloud computing technologies. The students will learn how to develop Cloud-based software applications on top of various Cloud platforms, how to integrate application-level services built on heterogeneous Cloud platforms, and how to leverage SaaS and PaaS solutions to build comprehensive end-to-end business solutions on the Cloud. For different layers of the cloud technologies, practical solutions such as Google, Amazon, Microsoft, SalesForce.com, etc. as well as theoretical solutions (covered by a set of papers) will be introduced.
-
[EMCS-01] Service Oriented Architectures
The aim of this course is to establish an in-depth study of Service Oriented Architectures (SOA) from three main perspectives: business, architectural and technological point of view. From business perspective, adopting SOA is essential to delivering business agility; therefore, the importance of SOA in industry will be explained. The architectural perspective will discuss different architectural models of software development, with focus on SOA design and design patterns. The technology perspective will provide students with the opportunity to gain the required experience to implement and deploy SOA solutions that will meet different functional and non – functional requirements.
-
[EMCS-02] Data Visualization
The aim of this course is to introduce students to the field of data visualization. Students will learn visualization design and evaluation principles, and learn how to acquire, parse, and analyze large datasets. Students will also learn techniques for visualizing multivariate, temporal, text-based, geospatial, hierarchical, and network/graph-based data. Additionally, students will utilize Processing, D3, R and ggplot2, and many other tools to prototype many of these techniques on existing datasets.
-
[EMCS-03] Web Engineering
The Web has become a major delivery platform for resources. The aim of this course is to address concepts, methods, technologies and techniques to developing high quality, reliable and usable web applications. The course explores the approaches, methodologies, techniques and tools that support their design, development, evolution and evaluation. Students will be able to learn Web engineering methods and techniques that incorporate unique aspects of the problem domain such as: document oriented delivery, fine-grained lifecycles, user-centric development, client-server legacy system integration and diverse end user skill levels that ensure proper operability, maintenance and security of a web application.
-
[ECS4060] 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.
Semester 2
-
[MCS-101]
[6 ECTS]
Advanced Databases
The course aims are to continue with an in-depth study of databases. The course is a continuation of the same course from the first study cycle; it starts with some revision of the conceptual database design models (a well-known entity relationship model) and continues with the enhanced entity relationship model. The concept of normalization and normal forms is introduced and is used for database design. The course continues with data storage methods, representing data elements, database system architecture, query processing and optimization, transaction processing concepts, concurrency control techniques, database recovery techniques and database security and authorization.
-
[MCS-302]
[6 ECTS]
Advanced Data Engineering
The aim of this course is to provide students with knowledge and understanding of advanced software engineering concepts. Initially the students will be introduced to the construction of a clear specification. In addition, the aim is to answer the following advanced aspects of software engineering: What key technical activities are conducted during the clean room software engineering process? How is component-based software engineering used to create systems from reusable components? How does the client/server architecture affect the way in which software is engineered?
-
[CM131]
[6 ECTS]
Microservices Development
The aim of this course is:
Identify the characteristics microservices and the benefits they provide;
Learn how to use the different platforms and frameworks to build truly reactive microservices;
Learn how to develop microservices that are maintainable, testable, and scalable;
Learn how to use tools such as postman to test microservices;
Learn how to design and implement effective tests for microservices;
Monitor and maintain microservices in large ecosystems and in the cloud.
-
[6 ECTS]
General elective course
-
[MFE11] Project Management
On successful completion of the course, students will be able to:
- plan the activities necessary to implement the project, identify their interdependencies, their duration and costs;
- prepare the necessary reports and perform all the required communication between the project and the client, as well as among the team members and the other stakeholders.
- structure the project to its constituent activities;
- prepare a Gantt-chart and a network plan for the project and identify the shortest time needed to complete the project;
- use MS Project as a tool in the process of planning, implementation and review of the project;
- define the project, identify its scope and objectives and develop project specification;
-
[?F?12] Optimization Methods
The aim of this course is to present techniques of modeling and optimization in order to prepare students for developing their ability to prepare models for solving real problems in the field of computer science. The course explore the importance of matrix factorizations as an important tool which offers modality for optimizing the solutions of different numerical algorithms which are of basic interest for problem solving in the area computer sciences. The course introduces optimization theory and approach to find the optimum. The different methods of optimization will be analyzed such as the simplex method, duality problem and sensitivity of the problems of linear programming. The aim is to explore a computer implementation for each of the problems followed by the proposal of the corresponding model for optimization.
-
[MFE15] Applications for Preparing a Scientific Paper
The aim of this subject is:
- To display the technical elements, the structure of the text and design of a scientific research.
- To enable students to acquire advanced knowledge and skills from selected advanced chapters of IT applications that will be needed in preparing the scientific and research paper.
- Practical application of these objectives in preparing student’s individual research paper.
-
[MFE04] Selected Advanced Topics in Applications for Statistical Data Processing
The aim of this subject is:
- To display the technical elements in the field of statistics: organizing, processing, comparing through analysis and publication of data.
- To enable students to acquire advanced knowledge and skills from selected advanced chapters of the applications for statistical data processing.
- Practical application of these objectives in statistical processing of data obtained from questionnaires, reports, scientific studies and other documents.
-
[ECS3060] IT Professional Ethics
Aims of the course program:
- to develop an understanding of the relationship between computing, technological change and society;
- to emphasize the powerful role that computers and computer professionals play in a technological society;
- to provide an understanding of ethical concepts that are important to computer users and professionals;
- to provide experience in the consideration of ethical matters and the resolution of ethical dilemmas.
-
[ECS-507] Numerical Computations
This course is designed to equip students with concepts and methods of numerical calculations. The primary intent is to provide students with a sound introduction for the numerical methods. They have big application in solving different problems which can be solved just by using the computers, therefore, solving numerical problems will help students not just to apply them in different other areas, but simply it will help them to become better computer scientists. After e brief look at the ways numbers are placed and manipulated in computers we will deal with fundamental computational problems, such are solving the equations, system of equations followed by an approximation theory. We will deal with the accuracy of numerical solutions and also the aim is to evaluate the functions, numerical differentiation and integration.
-
[CCS-804] Information Security
This course teaches principles of computer security from an applied viewpoint and provides hands on experience with security threats and countermeasures. The course additionally covers principles and skills useful for making informed security decisions and for understanding how security interacts with the world around it. Applied topics include cryptography, authorization control, operating systems security, and web and network security. Other topics include general security principles, human factors such as trust and social engineering, the security of complex systems, and the economics of security. The course aims to balance theory and practice.
-
[EM479] Technologies for Big Data
Recent technological advances decreasing hardware costs and the Internet of things has led to a rapid explosion in the amount of data generated in a variety of domains, including data-driven science, telecommunications, social media, large-scale e-commerce, medical records and e-health. Big data refers to the ability of exploiting these massive amounts of extremely heterogeneous in structure and content data that are routinely generated at an unprecedented scale from an ever-expanding variety of data sources. Business and industry used their big data to extract a better understanding of customers’ needs and behavior, to develop targeted new products and to cut operational costs. The competitive advantages and productivity gain that big data brought led to a great number of a big data projects and a shortage of people with the required skills. This course is aimed to introduce students into this rapidly expanding and exciting area; it has been designed to build the knowledge and understanding of big data systems architectures and to equip by the core technologies utilized in big data projects.
-
[6 ECTS]
Professional elective course
-
[ECSWMS-01] Wireless Mobile Networks
The course introduces the underlying concepts and principles of wireless networks. It presents the different components of a network and how these components fit together. It is intended to help students to understand the wireless mobile network technologies in general, and wireless LAN (WLAN) technology in depth and to help students prepare for the CWNA certification exam (PW0-100). The CWNA certification prepares the candidate to implement, troubleshoot, and maintain small, medium, and large wireless networks.
-
[ECSWMS-02] Interactive Systems Design for Web and Mobile Applications
The objective of this course is to help students learn the design principles of web and mobile applications in order to achieve high level of usability. More specifically, students will get acquainted with the user-centered design method, which represents the design of mobile applications based on user analysis and the context of use. Additionally, various wire-framing methods of building web and mobile application will be learned, which will be implemented to ensure the usability of the application by the users. Through practical examples, students will learn to avoid designing bad interfaces and instead develop usable and desirable web and mobile interfaces.
-
[ECSWMS-03] Internet of Things
This course provides a general introduction to the emerging concept of the “Internet of Things” and an overview of its stack of enabling technologies, spanning from sensors and actuators near the user or environment end to the cyber-physical systems that provide governing intelligence, via the Cloud that caters for virtually ubiquitous connectivity. This course brings together the next two big things, Semantic Web (Web 3.0) and the Internet of Things. The course emphasizes software-hardware code sign. A student may choose to focus on either software, hardware, or both aspects. The course aims at highlighting open issues with the Internet of Things (IoT) model, deployment, evaluation and evolution, outlining future directions relevant for societal impact and research opportunities.
-
[ECSWMS-04] Software Development for Mobile Devices
The aim of the course is to provide students with knowledge and understanding of a pragmatic process for developing applications for mobile devices. It will cover the development aspects for mobile devices, and practical individual project work in design and development oriented towards real practical case for one or more contemporary platforms that will enable students to gain real life practical experience and insights
-
[ECSWMS-05] Web Application Security
This class is designed to teach students how to properly secure a web server, web page, and web application. Students will take an already existing web application and redesign it to be as secure as possible. Students will also design and build an ecommerce site designed with the best security practices. Students will learn how to protect confidential information, including financial and personal data.
Part of security is testing the security and vulnerabilities of the web application. To that end, students will also learn the common techniques for penetrating web applications and web servers. This will give students the techniques to properly test their web applications in their academic and professional careers.
-
[ECSWMS-06] Large Scale Distributed Systems
Distributed systems have become widely inescapable and are having a tremendous impact on various domains of human activity. They range from ad-hoc networks comprising of tiny sensor devices, to massive web farms of powerful servers. Therefore, this course will cover advanced and current topics in modern, large-scale distributed systems. The course will include an in-depth coverage of different strategies to process voluminous data. Issues related to replication, fault tolerance, consistency, scalability, isolation and privacy, virtualization and creation of machine images in large-scale distributed systems will also be covered. Writing critical reviews of research papers in the field is a principal activity of this course.
-
[ECSWMS-07] Cloud Computing Technologies
This course covers a series of current cloud computing technologies. The students will learn how to develop Cloud-based software applications on top of various Cloud platforms, how to integrate application-level services built on heterogeneous Cloud platforms, and how to leverage SaaS and PaaS solutions to build comprehensive end-to-end business solutions on the Cloud. For different layers of the cloud technologies, practical solutions such as Google, Amazon, Microsoft, SalesForce.com, etc. as well as theoretical solutions (covered by a set of papers) will be introduced.
-
[EMCS-01] Service Oriented Architectures
The aim of this course is to establish an in-depth study of Service Oriented Architectures (SOA) from three main perspectives: business, architectural and technological point of view. From business perspective, adopting SOA is essential to delivering business agility; therefore, the importance of SOA in industry will be explained. The architectural perspective will discuss different architectural models of software development, with focus on SOA design and design patterns. The technology perspective will provide students with the opportunity to gain the required experience to implement and deploy SOA solutions that will meet different functional and non – functional requirements.
-
[EMCS-02] Data Visualization
The aim of this course is to introduce students to the field of data visualization. Students will learn visualization design and evaluation principles, and learn how to acquire, parse, and analyze large datasets. Students will also learn techniques for visualizing multivariate, temporal, text-based, geospatial, hierarchical, and network/graph-based data. Additionally, students will utilize Processing, D3, R and ggplot2, and many other tools to prototype many of these techniques on existing datasets.
-
[EMCS-03] Web Engineering
The Web has become a major delivery platform for resources. The aim of this course is to address concepts, methods, technologies and techniques to developing high quality, reliable and usable web applications. The course explores the approaches, methodologies, techniques and tools that support their design, development, evolution and evaluation. Students will be able to learn Web engineering methods and techniques that incorporate unique aspects of the problem domain such as: document oriented delivery, fine-grained lifecycles, user-centric development, client-server legacy system integration and diverse end user skill levels that ensure proper operability, maintenance and security of a web application.
-
[ECS4060] 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.
Semester 3
-
[MCS-303]
[6 ECTS]
Research Methodologies
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.
-
[MCS-203]
[6 ECTS]
Distributed Computing
This subject introduces graduate students to the advanced topics in distributed computing models, algorithms, and software systems. In particular, the course will emphasize recent techniques used by real-world distributed systems such as distributed file systems, lock services, enterprise data centers, cloud computing, wireless sensor networks and pervasive applications. Case studies on real distributed systems will be conducted, and recent research literature in the subject area will be reviewed.
-
[CM132]
[6 ECTS]
Software Development for Web and Mobile Devices
This course aims to provide students with knowledge of the technologies used to build web and mobile applications. In addition to general aspects of specific technologies on different platforms, the focus will be on software development that can run on multiple platforms simultaneously, technologies that are typically based around the JavaScript programming language. In addition to the techniques for developing, publishing and maintaining this type of software, the course will cover the benefits and limitations or difficulties we encounter in developing such software.
-
[6 ECTS]
Professional elective course
-
[ECSWMS-01] Wireless Mobile Networks
The course introduces the underlying concepts and principles of wireless networks. It presents the different components of a network and how these components fit together. It is intended to help students to understand the wireless mobile network technologies in general, and wireless LAN (WLAN) technology in depth and to help students prepare for the CWNA certification exam (PW0-100). The CWNA certification prepares the candidate to implement, troubleshoot, and maintain small, medium, and large wireless networks.
-
[ECSWMS-02] Interactive Systems Design for Web and Mobile Applications
The objective of this course is to help students learn the design principles of web and mobile applications in order to achieve high level of usability. More specifically, students will get acquainted with the user-centered design method, which represents the design of mobile applications based on user analysis and the context of use. Additionally, various wire-framing methods of building web and mobile application will be learned, which will be implemented to ensure the usability of the application by the users. Through practical examples, students will learn to avoid designing bad interfaces and instead develop usable and desirable web and mobile interfaces.
-
[ECSWMS-03] Internet of Things
This course provides a general introduction to the emerging concept of the “Internet of Things” and an overview of its stack of enabling technologies, spanning from sensors and actuators near the user or environment end to the cyber-physical systems that provide governing intelligence, via the Cloud that caters for virtually ubiquitous connectivity. This course brings together the next two big things, Semantic Web (Web 3.0) and the Internet of Things. The course emphasizes software-hardware code sign. A student may choose to focus on either software, hardware, or both aspects. The course aims at highlighting open issues with the Internet of Things (IoT) model, deployment, evaluation and evolution, outlining future directions relevant for societal impact and research opportunities.
-
[ECSWMS-04] Software Development for Mobile Devices
The aim of the course is to provide students with knowledge and understanding of a pragmatic process for developing applications for mobile devices. It will cover the development aspects for mobile devices, and practical individual project work in design and development oriented towards real practical case for one or more contemporary platforms that will enable students to gain real life practical experience and insights
-
[ECSWMS-05] Web Application Security
This class is designed to teach students how to properly secure a web server, web page, and web application. Students will take an already existing web application and redesign it to be as secure as possible. Students will also design and build an ecommerce site designed with the best security practices. Students will learn how to protect confidential information, including financial and personal data.
Part of security is testing the security and vulnerabilities of the web application. To that end, students will also learn the common techniques for penetrating web applications and web servers. This will give students the techniques to properly test their web applications in their academic and professional careers.
-
[ECSWMS-06] Large Scale Distributed Systems
Distributed systems have become widely inescapable and are having a tremendous impact on various domains of human activity. They range from ad-hoc networks comprising of tiny sensor devices, to massive web farms of powerful servers. Therefore, this course will cover advanced and current topics in modern, large-scale distributed systems. The course will include an in-depth coverage of different strategies to process voluminous data. Issues related to replication, fault tolerance, consistency, scalability, isolation and privacy, virtualization and creation of machine images in large-scale distributed systems will also be covered. Writing critical reviews of research papers in the field is a principal activity of this course.
-
[ECSWMS-07] Cloud Computing Technologies
This course covers a series of current cloud computing technologies. The students will learn how to develop Cloud-based software applications on top of various Cloud platforms, how to integrate application-level services built on heterogeneous Cloud platforms, and how to leverage SaaS and PaaS solutions to build comprehensive end-to-end business solutions on the Cloud. For different layers of the cloud technologies, practical solutions such as Google, Amazon, Microsoft, SalesForce.com, etc. as well as theoretical solutions (covered by a set of papers) will be introduced.
-
[EMCS-01] Service Oriented Architectures
The aim of this course is to establish an in-depth study of Service Oriented Architectures (SOA) from three main perspectives: business, architectural and technological point of view. From business perspective, adopting SOA is essential to delivering business agility; therefore, the importance of SOA in industry will be explained. The architectural perspective will discuss different architectural models of software development, with focus on SOA design and design patterns. The technology perspective will provide students with the opportunity to gain the required experience to implement and deploy SOA solutions that will meet different functional and non – functional requirements.
-
[EMCS-02] Data Visualization
The aim of this course is to introduce students to the field of data visualization. Students will learn visualization design and evaluation principles, and learn how to acquire, parse, and analyze large datasets. Students will also learn techniques for visualizing multivariate, temporal, text-based, geospatial, hierarchical, and network/graph-based data. Additionally, students will utilize Processing, D3, R and ggplot2, and many other tools to prototype many of these techniques on existing datasets.
-
[EMCS-03] Web Engineering
The Web has become a major delivery platform for resources. The aim of this course is to address concepts, methods, technologies and techniques to developing high quality, reliable and usable web applications. The course explores the approaches, methodologies, techniques and tools that support their design, development, evolution and evaluation. Students will be able to learn Web engineering methods and techniques that incorporate unique aspects of the problem domain such as: document oriented delivery, fine-grained lifecycles, user-centric development, client-server legacy system integration and diverse end user skill levels that ensure proper operability, maintenance and security of a web application.
-
[ECS4060] 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.
-
[6 ECTS]
Professional elective course
-
[ECSWMS-01] Wireless Mobile Networks
The course introduces the underlying concepts and principles of wireless networks. It presents the different components of a network and how these components fit together. It is intended to help students to understand the wireless mobile network technologies in general, and wireless LAN (WLAN) technology in depth and to help students prepare for the CWNA certification exam (PW0-100). The CWNA certification prepares the candidate to implement, troubleshoot, and maintain small, medium, and large wireless networks.
-
[ECSWMS-02] Interactive Systems Design for Web and Mobile Applications
The objective of this course is to help students learn the design principles of web and mobile applications in order to achieve high level of usability. More specifically, students will get acquainted with the user-centered design method, which represents the design of mobile applications based on user analysis and the context of use. Additionally, various wire-framing methods of building web and mobile application will be learned, which will be implemented to ensure the usability of the application by the users. Through practical examples, students will learn to avoid designing bad interfaces and instead develop usable and desirable web and mobile interfaces.
-
[ECSWMS-03] Internet of Things
This course provides a general introduction to the emerging concept of the “Internet of Things” and an overview of its stack of enabling technologies, spanning from sensors and actuators near the user or environment end to the cyber-physical systems that provide governing intelligence, via the Cloud that caters for virtually ubiquitous connectivity. This course brings together the next two big things, Semantic Web (Web 3.0) and the Internet of Things. The course emphasizes software-hardware code sign. A student may choose to focus on either software, hardware, or both aspects. The course aims at highlighting open issues with the Internet of Things (IoT) model, deployment, evaluation and evolution, outlining future directions relevant for societal impact and research opportunities.
-
[ECSWMS-04] Software Development for Mobile Devices
The aim of the course is to provide students with knowledge and understanding of a pragmatic process for developing applications for mobile devices. It will cover the development aspects for mobile devices, and practical individual project work in design and development oriented towards real practical case for one or more contemporary platforms that will enable students to gain real life practical experience and insights
-
[ECSWMS-05] Web Application Security
This class is designed to teach students how to properly secure a web server, web page, and web application. Students will take an already existing web application and redesign it to be as secure as possible. Students will also design and build an ecommerce site designed with the best security practices. Students will learn how to protect confidential information, including financial and personal data.
Part of security is testing the security and vulnerabilities of the web application. To that end, students will also learn the common techniques for penetrating web applications and web servers. This will give students the techniques to properly test their web applications in their academic and professional careers.
-
[ECSWMS-06] Large Scale Distributed Systems
Distributed systems have become widely inescapable and are having a tremendous impact on various domains of human activity. They range from ad-hoc networks comprising of tiny sensor devices, to massive web farms of powerful servers. Therefore, this course will cover advanced and current topics in modern, large-scale distributed systems. The course will include an in-depth coverage of different strategies to process voluminous data. Issues related to replication, fault tolerance, consistency, scalability, isolation and privacy, virtualization and creation of machine images in large-scale distributed systems will also be covered. Writing critical reviews of research papers in the field is a principal activity of this course.
-
[ECSWMS-07] Cloud Computing Technologies
This course covers a series of current cloud computing technologies. The students will learn how to develop Cloud-based software applications on top of various Cloud platforms, how to integrate application-level services built on heterogeneous Cloud platforms, and how to leverage SaaS and PaaS solutions to build comprehensive end-to-end business solutions on the Cloud. For different layers of the cloud technologies, practical solutions such as Google, Amazon, Microsoft, SalesForce.com, etc. as well as theoretical solutions (covered by a set of papers) will be introduced.
-
[EMCS-01] Service Oriented Architectures
The aim of this course is to establish an in-depth study of Service Oriented Architectures (SOA) from three main perspectives: business, architectural and technological point of view. From business perspective, adopting SOA is essential to delivering business agility; therefore, the importance of SOA in industry will be explained. The architectural perspective will discuss different architectural models of software development, with focus on SOA design and design patterns. The technology perspective will provide students with the opportunity to gain the required experience to implement and deploy SOA solutions that will meet different functional and non – functional requirements.
-
[EMCS-02] Data Visualization
The aim of this course is to introduce students to the field of data visualization. Students will learn visualization design and evaluation principles, and learn how to acquire, parse, and analyze large datasets. Students will also learn techniques for visualizing multivariate, temporal, text-based, geospatial, hierarchical, and network/graph-based data. Additionally, students will utilize Processing, D3, R and ggplot2, and many other tools to prototype many of these techniques on existing datasets.
-
[EMCS-03] Web Engineering
The Web has become a major delivery platform for resources. The aim of this course is to address concepts, methods, technologies and techniques to developing high quality, reliable and usable web applications. The course explores the approaches, methodologies, techniques and tools that support their design, development, evolution and evaluation. Students will be able to learn Web engineering methods and techniques that incorporate unique aspects of the problem domain such as: document oriented delivery, fine-grained lifecycles, user-centric development, client-server legacy system integration and diverse end user skill levels that ensure proper operability, maintenance and security of a web application.
-
[ECS4060] 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.
Semester 4
-
[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.