The degree of Master of Science in Computer Science (MSc in CS) is awarded for successfully completing the requirements of a program of study, which includes taught courses as well as thesis. The thesis is an independent investigation of specialized areas within the general field of computer science and associated disciplines.

The MSc in CS gives candidates the opportunity to deepen their knowledge in the broad field of computer science and contribute to the process of discovery and knowledge creation through the conduct of original research. Candidates for this degree are taught and supervised by experienced faculty and are expected to demonstrate initiative in their approach and innovation in their work. In addition to successfully completing the taught course component of the program, candidates prepare and present a thesis on their chosen area. Research may be undertaken in several topics corresponding to the areas of focus identified by the University.

Program Educational Objectives
Student Learning Outcomes

Upon graduation from the MSc in Computer Science, students will be able to:

1. Use and apply current technical concepts and practices in core computing and information technologies.
2. Analyze a problem, and identify and define the computing requirements appropriate to its solution.
3. Design, implement, and evaluate computer-based systems, processes, components, and programs both in teams and individually to meet desired outcomes.
4. Communicate effectively with a range of audiences.
5. Recognize the need for, and have an ability to, engaging in continuing professional development.

Career Opportunities

A master’s degree in Computer Science from Khalifa University helps open many career opportunities for future success. The field of computer science is broad, therefore, graduates should have plenty of career opportunities to choose from both locally and internationally. This includes artificial intelligence and data analysis, systems analyst, applications analyst/developer, cyber security analyst, games designer/developer, information systems manager, and software engineer. The wide range of industries that utilize computer scientist include, information and communication technology, energy, oil and gas, healthcare, cyber security, banking/finance, robotics and autonomous systems, and transportation. The MSc in CS program at Khalifa University offers the student an excellent opportunity for interdisciplinary education, which will help them fulfill the requirement of these career paths. Graduates also go through rigorous training and research experience to enable them to pursue their studies at PhD level.

Structure & Requirements
Course Descriptions

COSC 101                 Foundations of Computer Science (2-1-3)

Prerequisites:          ENGR 112


The course provides a comprehensive high-level introduction to computer science. It exposes students to variety of topics from computer science and its applications, including: system software, computer network, cloud computing, databases, artificial intelligence & machine learning, and information security. Python programming language and basics of web development will be also covered.


COSC 201                 Computer Systems Organization (2-3-3)

Prerequisites:          COSC 101


This course provides a basic understanding of the fundamental logical organization of a computer (its parts and their relationship) and how it actually works; exposure to a central processor’s native language, and to basic computer components and basic architectures for high performance design. Topics include: Von Neumann architecture, C programming (low-level aspects), data representation, computer arithmetic, assembly language programming, digital logic design, registers, instruction counter, processor architecture, pipelining, memory hierarchies, caching, virtual memory, interrupts, input and output, buses.


COSC 301                 Automata, Computability, and Complexity (2-2-3)

Prerequisites:          COSC 101, MATH 234


This course is about fundamental ideas in the theory of computation, including formal languages, computability and complexity. In this standard computer science course, the students will gain the proficiency in the concepts of automata, formal languages, grammar, algorithms, computability, decidability, and complexity.


COSC 310                 Data Structures (2-3-3)

Prerequisites:          ECCE 230, MATH 234


Review of object-oriented design. Analysis of algorithm complexity. Fundamental data structures: Concept of Abstract Data Types (ADTs), Queues, Stacks, Lists, Trees; Java Collections Framework.  Fundamental computing algorithms: binary search trees, hash tables, heaps, balanced trees, sorting algorithms, searching algorithms.  


COSC 312                 Design and Analysis of Algorithms (2-2-3)

Prerequisites:          COSC 301, COSC 310


This course covers the most important algorithm strategies and solution techniques, independent of programming language or computer hardware. Topics include: Big-O notation; worst and average case analysis; recurrences and asymptotics; efficient algorithms for sorting, searching, and selection; algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, randomization; algorithms for fundamental graph problems; string algorithms; and numerical methods.


COSC 320                 Concepts of Programming Languages (2-3-3)

Prerequisites:          COSC 301


This course provides the students with a basic understanding and appreciation of the various essential programming-languages constructs, programming paradigms, evaluation criteria and language implementation issues. The topics covers concepts from imperative, object-oriented, functional, logic, and concurrent programming. These concepts are illustrated by examples from varieties of languages such as Pascal, C, C++, C#, Java, Python, Lisp, Scheme, Haskell, Prolog. Some basic aspects of compiler design like lexical and syntax analysis will also be covered.


COSC 330                 Introduction to Artificial Intelligence (2-3-3)

Prerequisites:          COSC 310 or ECCE 342


This course covers the fundamental aspects of classic and modern Artificial Intelligence. Topics include: AI History, solving problems by searching, knowledge representation and reasoning techniques, agents, decision tree, Bayes classifier, machine learning, game theory, reinforcement learning, and fuzzy logic.


COSC 340                 Introduction to Computer Security (2-2-3)

Prerequisites:          ECCE 354


Introduction to computer security. Fundamentals of cryptography: Substitution ciphers, hashing, symmetric and asymmetric crypto. Program Security: detect and exploit vulnerabilities in programs. Web vulnerabilities: SQL injection, cross site scripting. Identification and Authentication: Username and passwords, spoofing attack, password cracking. Access control: access control matrix and list, role based access control, multi-level security, access control in operating system such as Linux. Malware and Malware detection. Emerging threats: overview of other threats.


COSC 391                 Independent Study I (Variable course credits from 1 to 3)

Prerequisites:          Approval of department and junior standing


This course gives an upper level undergraduate student the opportunity to participate in an individual or group project, study, or research activity under the supervision of a faculty member.  A formal report is required.


COSC 395                 Special Topics in Computer Science (from 1 to 3 credits)

Prerequisite:            Topic specific


This course mainly deals with new trends in Computer Science and emerging technologies. Course is repeatable if title and content differ.



COSC 401                 Computational Social Science (2-3-3)

Prerequisites:          COSC 312, COSC 410


The course is concerned with using computational approaches to study social phenomena and address important questions in social science. The course provides an overview of the computational social science field and use of data science techniques for computational social research. The course covers various techniques for data analysis of digital traces of people in social media, telecommunication and clickstreams as well as web-based social experiments that can be conducted at a large scale. The topics covered include overview of computational social science, data analysis of digital traces and clickstreams, design of social web-based experiments, data analysis of mobile phones and wearable sensors data, data analysis of social media data, and data science crowdsourcing techniques.


COSC 410                 Parallel and Distributed Computing (2-3-3)

Prerequisite:            COSC 312, ECCE 354


This course covers a broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing. Course topics include: concepts of parallelism, parallelism in Python, multi-threading, networks and MPI for cluster computing, fork-join parallelism, shared-memory concurrency control, and practical parallel/distributed programming applications.


COSC 412                 Numerical Computing (2-3-3)

Prerequisite:            COSC 312


This course is an introduction to numeric and algorithmic techniques used for the solution of a broad range of mathematical problems, with an emphasis on computational issues. It covers basic concepts and methods in numerical analysis: Analysis of round off errors using floating-point arithmetic; Solution of non-linear equations in one variable; Polynomial interpolation and approximation; Numerical differentiation and integration; Initial-value problems for ordinary differential equations; Direct methods for solving linear systems; Singular-value approximation; and Optimization.


COSC 430                 Data Analytics (2-3-3)

Prerequisite:            COSC 330; MATH 242/ 243

Co-requisite:            COSC 434


This course covers various contemporary techniques in data analytics, which encompasses a broad set of computational and statistical methods and tools needed to draw insights from the growing amounts of data. Overall topics include: data acquisition, scraping, cleaning, manipulation; predictive data analysis; exploratory data analysis; statistical modeling of data; and communication of results via data visualization. The course will include significant programming in Python, and will introduce the statistical programming language R.


COSC 432                 Algorithmic Robotics (2-3-3)

Prerequisite:            COSC 330


In this course, fundamental disciplines of modern robotics are introduced: mechanics, control, and computing. These components are integrated to analysis, design, and control of mobile robots and manipulators to serve engineering or scientific needs. Students will learn: how to use mathematical methods to model mobile robots and manipulators and to plan their motion; how to process sensor information to form a perception of the environment; and how to implement algorithms through computer systems to achieve autonomy.


COSC 434                 Introduction to Machine Learning (2-3-3)

Prerequisites:          COSC 330, MATH 204, MATH 243/242


This course covers various contemporary techniques in machine learning. Overall topics include: classes of machine learning (supervised, unsupervised), feature engineering and selection, logistic regression, non-parametric methods, non-parametric methods, GMM and EM algorithms, neural networks, support vector machine, k-means and hierarchical clustering, etc. The course will use Python machine learning libraries extensively.


COSC 440                 Digital Forensics (2-3-3)

Prerequisite:            COSC 340


This module gives an introduction to principles, techniques, and tools to perform digital forensics, which encompasses the recovery and investigation of material found in digital devices in relation to cybercrime and other crimes where digital evidence is relevant. Students will learn evidence extraction and analysis on UNIX/Linux, Windows, and macOS systems, networks, web applications, and mobile devices; and gain exposure to available tools. Some legal/ethical aspects of digital forensics will also be discussed.


COSC 442                 Applied Cryptography (2-3-3)

Prerequisite:            COSC 340


This course builds upon the cryptography concepts covered in the course “Introduction to Computer Security” and it presents security protocol designs and advanced topics in applied cryptography. We cover a comprehensive set of topics including cryptographic protocol design, zero knowledge proofs, multi-party encryption protocols, blockchain technology, encrypted machine learning, and secure hardware technologies.



COSC 452                 Human-Computer Interaction (3-0-3)

Prerequisite:            ECCE 336


This course provides an introduction to and overview of the field of human-computer interaction (HCI).  HCI Theories Principles and Guidelines will be covered including   HCI Design and  principles of user interface design. In addition, the different types of user interface evaluation techniques will be covered including  expert reviews, predictive models and  usability testing. Students will work on team project to design, implement and evaluate computer interfaces.


COSC 454                 Computer Graphics (3-0-3)

Prerequisite:            COSC 312


This course will provide a comprehensive introduction to basic computer graphic technology in both theory and practice. Focusing on geometric intuition, it will provide the necessary information to understand how 2D and 3D synthetic images are modelled and generated using the complementary approaches of ray tracing and rasterization. Topics covered include introduction to graphics, mathematical foundations of graphics, raster images, ray tracing and shading, viewing transformations and projection, the graphics pipeline, surface shading, texture mapping, curves, computer animation, etc.


COSC 460                 Bioinformatics and Genomic Data Science (2-3-3)

Prerequisite:            COSC 312, COSC 410


This course introduces Computer Science students to bioinformatics, the scientific discipline at the intersection of Computer Science and Molecular Biology/Genetics. It aims to make sense at Big Data generated in biotechnology, first and foremost sequential data such as DNA and protein sequences. A central focus of this course is to bridge the gap between existing algorithms to the development of the next generation bioinformatics tools by understanding the algorithmic underpinnings incl. computational complexity, common data representations and file formats as well as state of the art storage strategies. The course will cover common sequence analysis techniques, phylogeny, common data formats and storage techniques and cutting edge topics such as CRISPR and Deep Learning.


COSC 462                 Mobile and Web Applications Development (2-3-3)

Prerequisite:            COSC 310


This practical-oriented course will enable the students to understand the fundamental concepts of web services and web & mobile app development. The techniques to design and develop static and interactive websites using HTML5, CSS3, Javascript, and other tools like JQuery, web-APIs, JSON, AJAX, etc. will be included. For the Android Platform, the app development including graphics and multimedia ones using Android Studio IDE will be discussed. For the iOS Platform, the app development techniques using iOS SDK with Swift and XCode will be covered.


COSC 464                 Natural Language Processing (2-3-3)

Prerequisite:            COSC 330, COSC 410


The course will provide a broad introduction to the field of Natural Language Processing or NLP, loosely defined as the study of systems and algorithms that can comprehend, communicate in or analyze data in human language. Students will gain a good understanding of the different problems faced by NLP systems, methods for addressing these problems, and their relative advantages or disadvantages. The class will devote significant time to recent data-driven approaches, in particular neural-network and/or deep learning methods that can be trained (rather than manually programmed) using labeled text corpora.


COSC 491                 Independent Study II (Variable course credits from 1 to 3)

Prerequisite:            Approval of department and senior standing


This course gives an upper level undergraduate student the opportunity to participate in an individual or group project, study, or research activity under the supervision of a faculty member.  A formal report is required.


COSC 495                 Special Topics in Computer Science

Prerequisite:            Topic specific


This course mainly deals with new trends in Computer Science and emerging technologies. Course is repeatable if title and content differ.