Program Details
PROGRAM DESCRIPTION
| Degree Name | Doctor of Philosophy in Computer Science |
| Number of credits | 90 credits for MS degree holders and 120 credits for BSc degree holders |

For more detailed information about our courses and program, please click here.


4 credits
Course Description: This course introduces and discusses practical aspects of research communication skills, including technical paper writing and oral presentation. Students will learn about effective scientific communications through extensive practical training including written, spoken, and individual exercises.
4 credits
Pre-requisites: Introduction to Programming (Python), Algorithms and Data Structures, AI & Introduction to Machine Learning, Probability & Statistics, Linear Algebra
Course Description: Machine learning is the data-driven process of constructing mathematical models that can make predictions about future situations, or take actions in a future situation to optimize some outcomes. Neural Networks (one form of ML methods) are unstructured and expressive models that can be used for function approximation and classification. In this course, we will study a range of Deep Learning tools that allow for the efficient construction of very complex Neural Network models. We will also study methods for model evaluation. In our homework and project work, we will make use of everal python-based tools, including PyTorch, Tensorflow and Keras.
Additionally, the course will cover advanced modeling techniques, such as ensemble learning, extended linear models, probabilistic graphical models, mixture and latent variable models, and matrix factorization. First, the theoretical foundations of these techniques will be presented and augmented with in-class examples and homework problems. Second, the state of-the-art research related to these techniques will be presented and augmented with paper reviews that highlight the practical applications of these advanced data mining techniques. Applications of the models will be presented in popular domains, including social computing and health informatics.
4 credits
Pre-requisites: Advanced Machine Learning
Course Description: Computer Vision is the area of engineering and computer science concerned with the use of artificial vision tools to collect and process information in order to provide automatic systems with some autonomy. The objective of this course is to present an insight into the world of machine vision that goes beyond image processing algorithms and traditional computer vision approaches. Students will acquire a knowledge and an understanding of artificial vision from a practical implementation perspective and gain the capability to design physical vision systems. Various aspects will be examined, as time permits, and some of the main approaches currently found in the literature will be discussed, opening the door to many research themes.
4 credits
Pre-requisites: Advanced undergraduates and graduates with a background in formal language and automata theory. Programming experience is necessary for the assignments. The required programming language for all assignments is Python 3.5. Prior exposure to linguistics is not required.
Course Description: This course covers the introduction to natural language processing (NLP), the goal of which is to enable computers to use human languages as input, output, or both. It examines NLP in context of including machine translation, automatic conversational assistants and Internet search. Possible topics include summarization, machine translation, sentiment analysis and information extraction as well as methods for handling the underlying phenomena (e.g., syntactic analysis, word sense disambiguation, discourse analysis, their shortcomings and solutions).
4 credits
Pre-requisites: Control Systems
Course Description: The course will cover: components of robotic systems; selection of coordinate frames; homogeneous transformations; solutions to kinematic equations; velocity and force/torque relations; manipulator dynamics in Lagrange’s formulation; digital simulation of manipulator motion; trajectory planning; obstacle avoidance; controller design using the computed torque method; and different controllers for manipulators.
4 credits
Pre-requisites: Undergraduate level in Computer Science or Electrical Engineering program with minimum grade of C
Course Description: This course aims to provide student with an overview and the foundation of multidisciplinary research field of next generation of computing. It covers the sensing technology, mechanism behind sensing data, embedded computing, and methods to analyze sensing data.
4 credits
Pre-requisites: Networks or Equivalent
Course Description: This course covers the main cybersecurity principles and technologies motivated by the evolving ecosystem of Internet of Things (IoT): smart devices, sensors, operating systems, data storage, networking, communication protocols, and system services. The topics include IoT device and system security threats, privacy issues, open challenges, and countermeasure techniques.
4 credits
Pre-requisites: Networks or Equivalent
Course Description: This course covers the topics related to blockchain technologies. It discusses distributed systems and alternative consensus mechanisms, as well as cryptoeconomic and proof-of-stake. The topics include: Altcoins, Bitcoin transactions, consensus protocols, cryptocurrency, elliptic curves, hash functions, mining strategies and incentives, Zerocoin, zerocash. Fundamental uses of bitcoin and blockchain technology are examined, including enterprise blockchain systems, adopting blockchain, and the governmental and societal regulation and control of the blockchain technology.
4 credits
Pre-requisites: Algorithm Design or Equivalent
Course Description: This course gives an introduction to the theory and practice of cryptographic techniques. The key topics are encryption (secret-key and public-key), message integrity, digital signatures, user authentication, key management, cryptographic hashing, network security protocols (SSL, IPsec), public-key infrastructure, digital rights management, and zero-knowledge protocols.
4 credits
Pre-requisites: Networks, Operating Systems or Equivalent
Course Description: The course gives an overview of security topics for operating systems, networks and Cloud. It covers the main operating systems in the market and gives the overview of securing their main elements according to a variety of usage scenarios. It also discusses network security, setting up secure network environments and responding to security threats in a networked environment. Finally, it considers approaches to securing Cloud and distributed systems and data, with a special focus on data privacy.
4 credits
Pre-requisites: Advanced Machine Learning
Course Description: The aim of this course is to provide practical knowledge for working as a Data Scientist or a Machine Learning Engineer in an industrial environment. Students will learn how to apply Machine Learning at a large scale, driving an AI product to production, and collaborating in a team.
4 credits
Pre-requisites: Statistics and Probability (R), Data Mining, Web Programming, JavaScript, Python
Course Description: Visual media are increasingly generated, manipulated, and transmitted by computers. When well designed, such displays capitalize on human facilities for processing visual information and thereby improve comprehension, memory, inference, and decision making. Yet the digital tools for transforming data into visualizations still require low-level interaction by skilled human designers. As a result, producing effective visualizations can take hours or days and consume considerable human effort.
In this course, we will study techniques and algorithms for creating effective visualizations based on principles and techniques from graphic design, visual art, perceptual psychology, and cognitive science. The course is targeted both towards students interested in using visualization in their own work, as well as students interested in building better visualization tools and systems. In addition to participating in class discussions, students will have to complete several short programming and data analysis assignments as well as a final programming project.
4 credits
Pre-requisites: Software Construction or Equivalent
Course Description: The course covers the area of digital forensics including collecting evidence extracting information from software and hardware systems. It discusses forensics of networks, live systems, mobile phones and other device forensics. It provides insight into the areas of covert analysis and intruder artifacts. Students participate in a project where they take a role of a forensic examiner and use existing tools to understand digital forensics cases. Special attention is given to the area of data recovery and analytics as part of the digital forensics process.