Computer Science

Total Credit Hours: 66

Applied Sciences (Mandatory)

39 Credits
CS316 3 Credits Mandatory

Advanced Data Structures

Dynamic optimality and memory hierarchy hashing dynamic graphs and strings (searching for phrases in giant text). Indexing of unstructured data Btree, B+ tree, B* tree.

Prerequisites:
CS322 3 Credits Mandatory

Concepts of Programming Languages

Different types of programming languages, implementation methods - Declarative programming - Functional Programming. Describing Syntax and Semantics, BNF notations and Parse Trees, denotational and operational semantics- names, Binding, Lifetime and scope - Data Types, type checking - Expressions and Assignment Statements - side effect, short-circuit evaluation. Subprograms, Parameter passing, lambda expressions - concurrency.

Prerequisites:
CS331 3 Credits Mandatory

Computer Organization and Architecture

Computer organization fundamentals. Modern processor memory and peripherals design and organization - Modern computer design principles and levels of abstraction - Instruction set architecture design and implementation. Computer hardware-software interface - Computer performance-based design. Computer processor design data path and control. Instruction pipelining. Parallel computer paradigms, instruction set architectures and design. Architecture-oriented programming. Power and energy aware computing. Tools and simulation for computer design and performance enhancement.

Prerequisites:
CS342 3 Credits Mandatory

Advanced Operating Systems

Operating system for different platforms: cell phones, multi-core, parallel systems, distributed systems. System support for Internet-scale computing, clouds.

Prerequisites:
CS352 3 Credits Mandatory

Advanced Software Engineering

Software architecture, Architectural styles, Service oriented architectures. Advanced design patterns - Software quality assurance. Reviews - Refactoring. Testing. Software Configuration management. Software evolution and maintenance.

Prerequisites:
CS361 3 Credits Mandatory

Artificial Intelligence

Knowledge Representations: Predicate Calculus - Structured Representations, Network Representations. State Space Search: simple search - heuristic search - reasoning with uncertain or incomplete knowledge constraints satisfaction problem.

Prerequisites:
CS371 3 Credits Mandatory

High performance computing

The need for parallel processing and the limitations of uniprocessors. Basic concepts of parallel processing and their impact on computer architecture. Various kinds of system architectures - design methodologies - communication networks for parallel computers, various programming models - performance evaluation, parallelizing techniques, parallel algorithms and resource management of parallel and distributed systems.

Prerequisites:
IT351 3 Credits Mandatory

Information Theory and Data Compression

Introduction to Data Compression Approaches - Dictionary based compression approach. Introduction to information theory and Entropy calculation. Shannon theorem and its applications. Huffman Coding approaches. Arithmetic Coding Approaches. Quantization with application. Prediction Coding techniques. Transform Coding and DCT. Compression of Color images- JPEG Compression and its building blocks - Video basics, MPEG Compression and its building blocks - Motion Estimation and compensation in Video.

Prerequisites:
IT361 3 Credits Mandatory

Computer Graphics

Introduction to Computer Graphics. Overview of Graphics systems. Line drawing algorithms - Circle drawing algorithms - Ellipse drawing algorithms. Area filling algorithms - Polygon filling algorithms - Line clipping algorithms. Polygon clipping algorithms - Two dimensional transformations - (translation, rotation, scaling, general transformations, composite transformations). Three dimensional object representation and Projections. Three dimensional modeling and transformations (translation, rotation, scaling, sheer, reflection - composite). Three dimensional Viewing and Camera Model.

Prerequisites:
CS423 3 Credits Mandatory

Compilers

Basic concepts. Lexical analysis. Regular expressions. Context-free grammars. Parsing - Top-down parsers, Predictive parsers, LR parsers, Shift-reduce parsers. Semantic analysis - Intermediate code generation - Code generation - Code optimization.

Prerequisites:
CS432 3 Credits Mandatory

Theory of Computation

Regular languages - Regular expressions Properties of regular expressions. Proofs. Finite automata Non-deterministic finite automata Deterministic finite automata. Transformation of regular expressions to finite automata. Transformation of DFAs to NFAs. Transformation of finite automata to regular expressions - Context-free grammars - Push-down automata - Parsing - Turing machines - Complexity theory-down automata Parsing - Turing machines Complexity theory.

Prerequisites:
CS462 3 Credits Mandatory

Machine Learning

Linear Regression, Polynomial Regression. Logistic Regression. Regularization. Machine Learning System Design. Naive Bayes. Support Vector Machines. Decision Trees. Unsupervised Learning - Recommender Systems. Application Examples such as (Recommender Systems) and Project.

Prerequisites:
CS472 3 Credits Mandatory

Cloud Computing

Overview of Cloud Computing; Introduction to distributed systems, Advantages, History, Characteristics, concepts of cloud computing services. Service and Deployment Models- such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Virtualization Concepts. Migration Approaches - Resource Management.

Prerequisites:

Elective Courses

18 Credits
CS434 3 Credits Elective

Big Data Analysis

Map Reduce. Clustering algorithms for high-dimensional data, predictive analytics. Dimensionality reduction. Application of machine learning algorithms for analyzing structure of large graphs like social network graphs. Technologies for extracting important properties of large datasets.

Prerequisites:
CS435 3 Credits Elective

Bioinformatics Systems

Biological background related to bioinformatics -the genome, protein and motif databases DNA replication-motifs finding algorithms- local and global pairwise sequence alignment scoring matrices introduction to multiple sequence alignment genome assembly algorithms microarray gene expression databases- applications on microarrays datasets- genome compression.

Prerequisites:
CS436 3 Credits Elective

Mobile Computing

Mobile systems and devices. Mobile operating systems - Types of mobile devices. Application development. Mobile application development with sensors of mobile and controllers of mobile - Mobile integration with embedded and internet of things systems - Mobile development project.

Prerequisites:
CS453 3 Credits Elective

Software Testing and Quality Assurance

Quality: how to assure it and verify it, the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing: verification and validation techniques. Process assurance versus Product assurance. Quality process standards - Product and process assurance - Problem analysis and reporting.

Prerequisites:
CS454 3 Credits Elective

Software security

Software design process choices of programming languages, operating systems, databases and platforms for building secure systems; common software vulnerabilities such as buffer overflows and race conditions, auditing software, proving properties of software, and the benefits of open and closed source development.

Prerequisites:
CS455 3 Credits Elective

Human Computer Interaction

Relationship between people and machine, the role of human factors and psychology. Motivation for usability. Principles of interaction - interface design issues. Command languages, menus, windows, icons, error messages, response time. Physical interaction - devices - interaction styles and techniques. The design process and user models. Interface evaluation, rapid prototyping, iterative refinement. Natural language and voice interfaces, text-to-speech technology.

Prerequisites:
CS456 3 Credits Elective

Software Design and Architecture

Study of design patterns. Frameworks and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design - Measurement theory and appropriate use of metrics in design. Designing for software qualities attributes. Measuring internal qualities and complexity of software - Evaluation and evolution of designs. Basics of software evolution - reengineering - reverse engineering.

Prerequisites:
CS457 3 Credits Elective

Selected Topics in Software Engineering

This course aims at introducing students to novel topics in software engineering that need to be identified in a responsive manner as technology evolve and develop.

Prerequisites:
CS463 3 Credits Elective

Natural Language Processing

Introduction - Language Models - Text Classification - Information Retrieval. Information Extraction. Morphological Analysis and the Lexicon. Phrase Structure Grammars - Parsing - Context Free Grammar - Augmented grammar rules. Semantic interpretation. Machine Translation Systems. Statistical Machine Translation.

Prerequisites:
CS464 3 Credits Elective

Semantic Web and Ontology

Introduction Semantic web. Descriptive logic. Describing web resources in RDF. Ontology development. Ontology development Ontology language. Web ontology language OWL - OWL API - Rule Interchange Format RIF. Query language. Semantic Portals - applying Semantic Web technologies to the Social Web.

Prerequisites:
CS465 3 Credits Elective

Soft Computing

Genetic Algorithms, Population, Chromosomes, Fitness functions, Crossover, Mutation, Binary bit chromosomes, Floating point array chromosomes, Schema theory. Fuzzy logic, Fuzzy systems, Fuzzy operators - Fuzzy rule-based systems - Neural networks - Feed forward neural networks - Back propagation algorithm - Bias - Scaling - Proof of Delta rule. Performance issues. Hybrid systems. Feature selection. Training of NNs with GAs - Evolution of fuzzy rule-based systems. Genetic programming. Immune systems - Evolution strategy.

Prerequisites:
CS466 3 Credits Elective

Knowledge Discovery

Basic principle of knowledge discovery in large dataset - Data pre-processing, transformation techniques, classification, deviation detection, fuzzy rule prediction - association rules generation techniques - evaluation of patterns from data. Knowledge discovery in unstructured texts. Techniques for evaluating methods.

Prerequisites:
CS467 3 Credits Elective

Selected Topics in Artificial Intelligence

This course aims at introducing students to novel topics in artificial intelligence that need to be identified in a responsive manner as technology evolve and develop.

Prerequisites:
CS473 3 Credits Elective

Advanced High performance computing

Quick Overview about Parallel Processing Concepts. Fundamental Design Issues in Parallel Computing - Synchronization, Scheduling - Job Allocation, Job Partitioning - Dependency Analysis. Mapping Parallel Algorithms onto Parallel Architectures - Performance Analysis of Parallel Algorithms - Parallel programming Models shard Memory, Message Passing. Fundamental Limitations Facing Parallel Computing. Bandwidth Limitations, Latency Limitations, Latency Hiding/Tolerating Techniques and their limitations. Power-Aware Computing and Communication.

Prerequisites:
CS474 3 Credits Elective

Selected Topics in High Performance Computing

This course aims at introducing students to novel topics in High Performance Computing that need to be identified in a responsive manner as technology evolve and develop.

Prerequisites:
CS495 3 Credits Elective

Selected Topics in Computer Science - 1

This course aims at introducing students to novel topics in computer science that need to be identified in a responsive manner as technology evolve and develop.

Prerequisites:
CS496 3 Credits Elective

Selected Topics in Computer Science - 2

This course aims at introducing students to novel topics in computer science that need to be identified in a responsive manner as technology evolve and develop.

Prerequisites:

Field Training

3 Credits
TR301 3 Credits Mandatory

Field Training

Particular emphasis is placed on the importance of practical experience and all teaching involves industry standard hardware, software, methods and techniques. Students asked to complete training on chosen area of specialization to be familiar with the industry.

Prerequisites:

Graduation Project

6 Credits
CS498 6 Credits Mandatory

Graduation Project

This course will continue for two semesters. In the first semester; a group of students will select one of the projects proposed by the department and analyze the underlying problem. In the second semester; the design and implementation of the project will be conducted.

Prerequisites: