The Department of Computer Science offers a two-year graduate thesis-based program leading to a Master of Science (M.Sc.) degree in Computer Science. This program is designed to promote high achievement in theoretical and practical problems within the field of Computer Science and to address the growing education demands for graduates and professionals with an advanced Computer Science education. This program has received full accreditation from the Ministry of Higher Education.
The main objective of the M.Sc. program in Computer Science is to provide a technically- oriented scientific graduate education for individuals who are motivated to extend their Computer Science expertise and education, or to acquire new technical and scientific skills in this rapidly-developing discipline. Another major objective of this program is to prepare students for their graduate studies at the doctoral level.
(11711) Data Communication and Networking
This is an advanced-level course on the recent developments in computer networks. It covers the principles of computer networking with emphasis on algorithms, protocols, and implementation aspects of advanced networking services. The topics covered in this course include the design of the Internet and its basic mechanisms and protocols in addition to selected advanced recent topics of research in networking such as routing, congestion control, wireless and mobile networks, and performance analysis of computer networks. Most of the course material will be covered via state-of-the-art research papers. The students will be assigned research papers and articles to read, summarize, criticize, and/or present; in addition to working on a research project and writing a research paper.
(11712) Operating Systems
Theoretical and practical aspects of operating systems. Process and thread communication and synchronization. File systems, disk management, I/O systems, protection and security systems, distributed system, real-time and multimedia systems, mobile operating systems, current trends in operating systems. Study of recent papers in operating systems.
(11713) Computer Architecture
Fundamentals of Computer Design: overview of history and trends in processor design, measuring and reporting performance,motivations for the modern trend towards simpler architectures. Performance Enhancement Techniques:advanced topics in pipe-lining topics, fine grain (instruction level) parallelism. Memory System Issues:discrepancies between memory speed and processor speed, introduction to multiple cache systems, overview of advanced storage systems. Parallel Processing: fine-and coarse-grained parallelism, introduction to tightly-and loosely-coupled designs, interconnection networks, multiprocessors.
(11714) Cloud Computing
The course gives an introduction to cloud computing, its techniques and main components. It covers the topics of data centers, virtualization, cloud storage and programming models. It discusses the motivating factors, benefits, challenges, and service models. It describes several concepts behind data center design and management. It also presents virtualization, data distribution, durability, consistency and redundancy.
(11715) Parallel Processing
With the growing number of cores on a chip, programming them efficiently has become an indispensable knowledge for the future. Modern Parallel Programming is a hands-on course involving significant parallel programming on compute-clusters, multi-core CPUs and massive-core. The main topics of Parallel processing course will cover the Basic and Introduction of parallel computer architectures , Parallel computing using the Message-Passing Interface (MPI) , Parallel Programming Paradigms, Standard Parallel Architecture, Evaluating parallel programs , Partitioning strategies , Pipelined computations ,Load balancing , Algorithms and applications of different important topics related to modeling different algorithms such as: sorting algorithms, numerical algorithms and image processing.
(11723) Advanced Software Engineering
No change. Keep the current description.
(11731) Database Management
Review of topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints. Object-Oriented Database Modeling and Development. Query processing; query optimization and cost estimation. Transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases.Large databases and data warehousing. Semi structured data and XML querying. Lectures and readings from original research papers. Semester-long project and paper.
(11732) Information Security
This course focuses on the fundamentals of information security. Students will learn the principles of information security, security architectures and models, and aspects and methods of information security such as physical security control, operations security, access control, hacks/attacks/defense, systems and programs security, cryptography, network and web security, worms and viruses, and other Internet secure applications. The course covers the following topics: system security issues, authentication systems, IP security, web security, access control, firewalls, data integrity through encryption, virtual private networks, SSL, SSH, and IPSec.
(11734) Data Mining
Introduction to data mining, data preprocessing and cleaning, data exploration and visualization. Classification: decision trees, Bayesian classifiers, rule-based classifiers, instance-based methods, Neural Networks, ensemble methods, evolutionary computation algorithms, model evaluation and model selection techniques. Clustering: centroid-based clustering, density-based clustering, hierarchical clustering, cluster evaluation techniques. Association Analysis: Apriori and FP-Growth algorithms. An introduction to advanced topics like: text mining, graph mining, stream mining, big data processing and big data analytics. Data mining and big data tools and software libraries.
(11740) Algorithms
Review of algorithm design and analysis techniques: asymptotic notation and design techniques. Advanced problems in dynamic programming (e.g, edit distance, matrix-chain multiplication and the partition problem).Advanced topics in graph algorithms: all-pairs shortest paths, graph connectivity. Network flow and bipartite matching. String matching and suffix trees. Randomized algorithms. NP-Completeness: complexity classes (P, NP, NP-complete, NP-hard), NP-completeness reductions, dealing with NP-complete problems (approximation algorithms, branch-and-bound, integer linear programming).Selected advanced topics (if time allows), such as number theoretic algorithms, computational geometry and parallel algorithms.
(11742) Programming Languages
This course discusses advanced principles in programming language design models. Topics include control, data abstractions, binding, indeterminacy, delayed evaluation and languages and models for parallel and distributed processing. A variety of programming language paradigms are discussed: functional programming, logic programming, object-oriented programming and data flow programming.
(11743) Information Theory
This course provides the students with an understanding of the principles and applications of information theory. It covers the quantitative theory of information and its applications to reliable, efficient storing, coding and communication data. The course topics include mathematical definition and properties of information, source coding theorem, lossless and lossy compression of data, optimal lossless coding, noisy communication channels, channel coding theorem, the source channel separation theorem, multiple access channels, broadcast channels, Gaussian noise, and time-varying channels.
(11745) Numerical Analysis Methods
This course provides an introduction to a range of numerical procedures, methods and algorithms designed to solve advanced problems that cannot be solved by standard techniques. Practical numerical ones, provides alternative algorithms and methods of solution that are practical even for simple and very large systems which cannot be solved analytically. This course will cover floating - point representation, Advanced numerical methods of solutions of Linear and Nonlinear Systems and its applications in environmental, imaging, finance and |graphic , Application of finite difference methods , Sparse structures of discrete problems, methods for stability and convergence analysis, Fourier analysis, energy method, Rates of convergence and the model problem analysis, advanced methods of Interpolation and error analysis, stability and convergence, Simulation parallel numerical algorithms and its software. Numerical Projects related to: Computer, Engineering, Environmental, Finance, Transportation and other topics will be covered in this course.
(11751) Digital Image Processing
This course is designed to help students develop a practical understanding of the various techniques of digital image processing. The course starts with the introduction to digital image fundamentals. Other topics include: Sampling and Quantization, Edge Detection Techniques, Image Segmentation, Texture Analysis, Image Restoration, Noise Removal, Character Recognition and various image optimization techniques.
(11753) Artificial Intelligence
The course is divided into four parts, the first covering knowledge representation, the second introducing heuristic search and constraint satisfaction and the third is dedicated to advanced topics such as rule-based Expert Systems, case-based reasoning, model-based reasoning. The fourth part is dedicated to machine learning techniques and theory. The following topics will be discussed in the course: introduction to AI and applications; exhaustive search methods; heuristic search methods; First order logic for knowledge representation; other knowledge representation schemes such as semantic networks, frames; production rule systems; principles of expert systems; Knowledge acquisition, planning and scheduling, machine learning techniques: decision trees, neural networks, Instance-Based-learning, Naïve Bayesian learning, Bayesian networks and learning theory.
(11754) Computer Simulation and Modeling
Concepts and techniques of computer simulation modeling are presented. Use of computer simulation to design and operate complex processes and systems is discussed. A simulation language is presented. Design, implementation, validation, and analysis of results of computer simulation models and experiments are studied. The course also discusses applications of computer simulations for different topics such as: scheduling activities, application of simulation and modeling using mathematical models related to environment, engineering, and building applied mathematical models to be applied in the different administration topics, manufacturing, finance and commercial one. Studying the mathematical applied part of modeling based on differential or partial differential topics, in addition to the studying the probability and statistical topics related to modeling and simulation, and prediction too.
(11757) Natural Language Processing
This course covers the fundamental concepts and ideas of natural language processing (NLP). It develops an in-depth understanding of both the algorithms available for the processing of linguistic information and the underlying computational properties of natural languages with focus on Arabic language. Word level, syntactic, and semantic processing from both a linguistic and an algorithmic perspective are considered. The focus is on modern quantitative techniques in NLP: using large corpora, statistical models for acquisition, disambiguation, and parsing. The main NLP applications will be presented: Information Extraction, Question Answering, Summarization, Dialogue and Conversational Agents, and Machine Translation.
Mandatory Courses (24 credit hours):
(11711) Data Communication and Networking
(11712) Operating Systems
(11723) Advanced Software Engineering
(11731) Database Management
(11740) Algorithms
(11751) Digital Image Processing
(11753) Artificial Intelligence
(11791) Seminar
(11798) Comprehensive Examination
Elective Courses (9 credit hours):
(11713) Computer Architecture
(11714) Cloud Computing
(11715) Parallel Processing
(11722) Human Computer Interaction
(11724) Software Quality
(11732) Information Security
(11734) Data Mining
(11739) Selected Topics in Computer and Information Technology
(11742) Programming Languages
(11743) Information Theory
(11745) Numerical Methods
(11754) Computer Simulation and Modeling
(11757) Natural Language Processing
Mandatory Courses (24 Credit Hours):
(11711) Data Communication and Networking
(11731) Database Management
(11740) Algorithms
(11753) Artificial Intelligence
(11791) Research Methodology Seminar
(11799) Thesis
Elective Courses (9 Credit Hours):
(11712) Operating Systems
(11713) Computer Architecture
(11714) Cloud Computing
(11715) Parallel Processing
(11722) Human Computer Interaction
(11723) Advanced Software Engineering
(11724) Software Quality
(11732) Information Security
(11734) Data Mining
(11739) Selected Topics in Computer and Information Technology
(11742) Programming Languages
(11743) Information Theory
(11745) Numerical Analysis Methods
(11751) Digital Image Processing
(11754) Computer Simulation and Modeling
(11757) Natural Language Processing