The program provides advanced knowledge of all important fields of Computer Science, such as modern networks, database systems, algorithms and complexity and software engineering, enabling the student to delve in at least one of them.
During the development of the program, the students learn how to analyze complex problems, exploit theoretical and practical advances for developing high-quality solutions. At the end of the program, the student may follow a highly productive and promising career in industry or/and a successful Ph.D. degree.
Objectives & Outcomes
To provide education leading to an academic degree, namely a Master of Science in Computer Science.
To develop the student’s capacity to think, write and speak effectively and creatively.
To develop the student’s analytical, decision-making and communication competencies together with those qualities of self-reliance, responsibility, integrity, and self-awareness which will promote personal achievement and contribution to organizations.
To obtain a good grounding in advanced topics in Computer Science through the core subjects and attain specialization through the elective courses.
To provide the student with the advanced skills, necessary for further advancement in an academic and/or professional career.
To intensify and deepen knowledge gained in the Bachelor's program in Computer Science.
To prepare students for a lifetime career in industry, government and various institutions in the area of Computer Science, by establishing a foundation for lifelong learning and development.
To ensure a learning experience which will provide students with the necessary academic and professional know-how to enter any sector of the industry as key personnel.
To expose students to the area of scientific research and independent study and to demonstrate creativity and conduct original research work through the completion of the M.Sc. thesis in a specialized topic in the area of Computer Science.
Analyse a problem, identify and define the computing requirements appropriate to its solution through a systematic study and research.
Design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
To apply mathematical foundations, algorithmic principles, research methods and computer science theory in the modeling design and evaluation of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.
Upon successful completion of this program, the students should be able to:
Explain and discuss principles of software engineering and software considerations for the efficient development of various computer-based systems complex systems such as critical systems, or real-time systems.
List, describe and compare high-performance CPU design implementations and their performance metrics.
Identify and compare the different types of network topologies and kinds according to their performance and critical characteristics.
Describe and compare key components of communication in computer networks such as routing protocols, congestion control, transmission methods and access protocols.
Classify problems according to their hardness by mathematically prove their relation to fundamental problems of Computer Science of known complexity.
Describe and compare multiple access, flow and error control and optimization techniques and as well as system performance measurements in networks.
Identify requirements, apply appropriate modeling and explore various technologies and tools for developing WebApps.
Facilitate communication between human factors engineers and computer scientists on user interface development projects.
Analyze, design and develop database solutions by translating database modeling theory into sound database design and implementation.
Describe and compare different models of parallel and distributed computing, basic techniques for designing algorithms in these models and write parallel programs using them.
Describe and analyze fault-tolerant systems, distributed algorithms, and multiprocessing.
Utilize advanced algorithmic techniques such as approximation and randomization techniques in order to provide algorithmic solutions of proved guarantee performance for the problems that are hard to solve.
Apply fundamentals of discrete probability theory, the theory of Markov chains, randomized data structures, the probabilistic method, counting techniques and graph theory for modeling, design, and analysis of algorithmic problems and solutions.
Describe and discuss various issues and methods of context-aware computing, 3D surface representation and surface manipulation techniques with applications in mobile phones.
Independently identify, formulate complex problems and using appropriate scientific tools, design, implement and evaluate algorithmic solutions for them.
Demonstrate the ability to conduct in-depth research, both individually as well as in teams, in a specific Computer Science area.
The MSc in Computer Science degree opens doors to computer careers in all kinds of companies in Cyprus and worldwide and almost all sectors of activity related to research and development in Computer Science. In particular, some of them include Project manager, Systems designer, (Mobile/Wireless) Networks, Algorithms designer and analyst, Software Engineering, Data Mining, Web data mining, Graphics, Business/Systems Analysis and Data Analyst.
The holders of an MSc in Computer Science degree can also be hired in theoretical or applied research organizations and/or can continue their studies and complete a doctoral dissertation.