Computer Science (PhD)


PhD program in Computer Science is to prepare students with the following abilities: Understanding of the theory and application on core areas of computer science, having management information systems and interdisciplinary informatics. Knowledge of the analysis, design, development, and implementation of current and future information technologies; Competence in conducting and managing high-quality, basic and applied research; Solid grounding in the fundamentals of academic teaching; Strong foundation in multidisciplinary and emergent areas in information technology.

PhD in computer science requires that the student completes a minimum of 60 credit units.

Duration: Minimum of 48 months; Maximum of 84 months

Course Descriptions

CIE 902 Research Directions and Methodology

This course aims to equip research students with the necessary foundations and skills to evaluate and perform qualitative research at a postgraduate level. Course Description: Three semester hours. This course offers "An overview of research methodology including basic concepts employed in quantitative and qualitative research methods. Includes computer applications for research. 


CSC 903 Advanced  Computer Algorithms

The course explores the analysis of algorithms and the relevance of analysis to the design of efficient computer algorithms. Advanced topics in complexity theory. Problem classification. The classes P, NP, P-space, co-NP. Matching and network flow algorithms. Algorithms for parallel, distributed and Cloud computing will be examined. Also Matrix multiplication and Approximation algorithms. Students learn about advanced algorithms and techniques for classifying and dealing with hard problems. Students also get experience applying these algorithms to applications through home-work and a class project.


CSC 947-Advanced Computer Architecture

Advanced topics in vector architectures, including: pipelined architectures, dataflow computers, VLSI architectures, butterfly connections; bus and memory architectures; cache structures; hardware implementations of algorithms.


CSC 949-Cloud and Distributed Computing

Current issues in operating systems, including multiprocessor systems and distributed computing, networks, security and performance. Case studies of current operating systems. The objective of this course is to offer a study of the design and implementation issues of distributed computing systems. It revisits the designs and approaches used by traditional centralized systems and proposes relevant solutions based on the distributed computing environment. The topics include: Client/Server Computing; Remote Object Invocation; Message-Oriented Communications; Stream-Oriented Communications; Cluster Computing; Software Agents; Distributed Transaction Models; Consistency Protocol; Reliable Computing; Distributed Recovery; SUN Network File System; CODA File System; CORBA; DOM


CSC 952-Advanced Programming Language Principles II

Language design and paradigms, including concepts underlying functional, logic, object-oriented and parallel paradigms. Theoretical foundations, including lambda calculus, denotational and axiomatic semantics. Proofs of program correctness. Programming projects emphasizing different aspects of language design. 


CIE 956-Topics in Artificial Intelligence

Introduction to topics in artificial intelligence such as problem solving methods, game playing, understanding natural languages, pattern recognition, computer vision and the general problem of representing knowledge. Students will be expected to use LISP. This will provide the foundations of Artificial Intelligence, including: Representing intelligent behavior in terms of agent, Searching a space of answers for a solution to a problem in practical time, Representing problems in terms of logic and deduction, Automated creation of complex plans in complex and unknown environments, Logical representations of uncertainty, and rational decision making in uncertain environments, Automated creation of new knowledge from examples and previous knowledge. To provide an overview of the state-of-art algorithms used in AI.



CIE 912 E-Commerce

Electronic commerce is the use of computer networks to improve organizational performance. This course focuses on the study of current management issues associated with electronic commerce strategies. Emerging technologies and approaches are studied.


CSC 967-Topics in Database Systems

Advanced topics in the area of database and information systems. Content differs in each offering. Possible topics include though not restricted to: Data Mining, Distributed Databases and Transaction Processing. Students will be equipped with the knowledge and skills on some advanced topics in database systems supporting the changing landscape of computing systems. Topics include: Missing Information without Nulls; Issues in SQL; Concurrency in databases; Temporal Databases; Web databases: XML, XML query languages


CIE 900  Model Thinking

The objective of this course is first to introduce the general concept of models. What are models? Are there different types of models? Who uses models? Why are models useful? This introduction to models also serves to discuss the concept of system, complexity, simulation and optimization. Also addressed is the role of models as tools to understand system behavior and decipher complexity. The second purpose of the course is to present and illustrate with examples of applications the main categories of models: statistical models, agent-based models, simulation models, game theory and optimization models. The third and last objective is to select one or two specific model types and practice both model building and use with real life examples of applications.


CIE 952 Advanced Statistics Methods

Modern Data Mining: Statistics or Data Science has been evolving rapidly to keep up with the modern world. While classical multiple regression and logistic regression technique continue to be the major tools we go beyond to include methods built on top of linear models such as LASSO and Ridge regression. Contemporary methods such as KNN (K nearest neighbor), Random Forest, Support Vector Machines, Principal Component Analyses (PCA), the bootstrap and others are also covered. Text mining especially through PCA is another topic of the course. While learning all the techniques, we keep in mind that our goal is to tackle real problems. Not only do we go through a large collection of interesting, challenging real-life data sets but we also learn how to use the free, powerful software "R" in connection with each of the methods exposed in the class.


INF 920 Data Mining and Data Warehouse

Data mining and investigation is a key goal behind any data warehouse effort.  The course will provide an in-depth coverage of advanced concepts on data warehousing, data mining, text mining, and web mining. Lectures and real-world examples will be used to explain the fundamental principles, uses, and some technical details of data mining techniques. The emphasis primarily is on understanding the business application of data mining techniques, and secondarily on the variety of techniques


CSC 954: Theory of Computation II

Advanced theory of computer science. A study of the formal relationships between machines, languages and grammars; we will cover regular, context free, recursive and recursive enumerable languages. Sequential machines and their applications to devices, processes, and programming. Models of computation: finite state automata, push down automata, Turing machines. The role of non-determinism.

Admission Requirement
Tuition Fees