## Graduate Major Sheet

**The program requirements are (non-thesis option in parenthesis):**

22 (34) TOTAL COURSE CREDITS

22 (34) TOTAL COURSE CREDITS

**10 (13) COMPULSORY**

CS512 | Automata and Formal Languages |

CS513 | Theory of Complexity |

CS521 | Programming Paradigms |

CS590 | Research Seminar in Computer Science |

CS593 | Project (non-thesis option only) |

CS597 | Thesis I (thesis option only) |

CS599 | Thesis II (thesis option only) |

**12 (21) ELECTIVES * (3 credits each)**

Any 12 (or 21) credits of elective courses below.

## Program Director

## Course Descriptions

**CS512 **Automata and Formal Languages (3) *COMPULSORY*

*The classes of regular, context-free, context sensitive and recursively enumerable languages. Characterization by grammars. Deterministic and non-deterministic automata, pumping lemmas. Undecidable Problems. Algebraic and decidability properties of the language classes*

**CS513 **Theory of Complexity (3) *COMPULSORY*

* Algorithm, Turning machines, computability. Complexity measures based on formal models, time and space, complexity. Tractable and intractable problems. Algorithm design techniques and analysis of the resulting algorithms. Complexity cases. P-NP problem, examples of NP-complete problems. Complexity of parallel computations. *

**CS521 **Programming Paradigms (3) *COMPULSORY*

*Features of imperative (procedural) programming languages, impacts of Von Neumann computer architecture. Object-oriented programming paradigm, objects, Classes, inheritance. Concepts of functional programming and LISP, functional programming. Concepts of logic programming and prolog. *

**CS590 **Research Seminar in Computer Science (3) *COMPULSORY*

* The aim of the research seminar is to allow the M.Sc. candidate to gain experience in preparing and presenting his/her research work. *

**CS593 **Project (non thesis option only) (3) *COMPULSORY*

*Thesis option only.*

**CS597 **Thesis (thesis option only) (3) *COMPULSORY*

*Thesis option only.*

**CS511 **Algebraic Structures and Logic (3)

*Signature, algebras, semigroups, monoids, groups, rings. Homomorphisms and congruences. Term algebras. Signatures with predictable symbols, clauses, models. Conclusion and derivation, soundness and completeness. Predicate calculus. Skolem normal forms: clauses with variables, resolution principle. *

**CS514 **Principles of Programming Languages (3)

*Imperative and applicative programming languages. Syntax, semantics, pragmatics. Compilation and interpretation. Syntactic domains, concrete and abstract syntax. Semantic domains, operational denotatinal, and axiomatic semantics. Lambda calculus and typed lambda calculus. *

**CS515 **Programming Paradigms (3)

*Total and partial correctness; Pre-and post conditions, verification rules, predicate transformers. Modal and temporal logic. Algebraic specifications, heterogeneous algebras, equations and conditional equations. Structured specifications, specification languages. *

**CS516 **Graph Theory (3)

*The course covers the following topics: directed and undirected graphs, properties of graphs, graphs and subgraphs, trees, connectivity of graphs, Euler and Hamiltonian paths/cycles, Ramsey’s theorem, matching, coloring, independent sets and cliques, planar graphs, and networks.*

**CS522 **Distributed Systems (3)

*Introduction to distributed systems: hardware and software concepts. Communication in distributed systems. Language support. Processing Concepts. Synchronisation scheduling and resource allocation. Distributed transaction processing.*

**CS523 **Advanced Databases (3)

*New data modeling concepts. Advanced transactions models. Conventional and parallel query processing. Database extensions (temporal databases). Data mining concepts*.

**CS524 **Expert Systems (3)

*Structure of Expert System. Classification of Experts Systems and main application areas. Basic cycle of work. Principles of knowledge Engineering. Probability computations for Expert Systems. Reasoning under certainty and inexact reasoning. Fuzzy logic. Rete algorithm. Data structures for Expert Systems. Designing and developing Expert Systems with shells. CLIPS shell. Life cycles for Expert Systems. *

**CS525 **Operating Systems (3)

*Modern Operating systems design and construction techniques. Concurrent programming, operating system Kernels, correctness, transaction processing, synchronization problems, fault-tolerance, deadlocks, distributed system structures, distributed file systems and distributed coordination, protection and security, network operating systems, comparative structure of different kinds of operating systems, and other research topics. *

**CS526 **Advanced Computer Networks (3)

*Local area and wide-area networks, Internet protocols, TCP/IP, advanced topics in computer networking cellular and wireless, mobile communication systems and mobility management, ad hoc networks, sensor networks satellite networks, mobile IP, Bluetooth, network security and reliability. *

**CS527 **Interconnection Networks (3)

*This course discusses the topological properties of interconnection networks, comparing different interconnection networks topologies, broadcasting and routing on some well-known interconnection networks, fault tolerant broadcasting and routing on some well-known interconnection networks, Hamiltonian cycles and Gray codes, and some problems in interconnection networks. *

**CS534 **Parallel Computing (3)

Se*quential and Parallel programs. A descriptive view at sequential and concurrent program execution. Parallel processing models and terminology. Architecture classification. Communication topologies. Performance measures. Principles of organizing parallel algorithms and examples. Concurrent programming languages. *

**CS536 **Advanced Computer Graphics (3)

*Modeling real world with computer graphics. Data structures and data bases for computer graphics. Difficulties and methods fro extracting spatial relation of objects. Simulating dynamics of objects. Interacting objects. Particle systems. Constrains in computer graphics. Textures and its designing. Architectures of advanced graphics workstations. Virtual reality systems.*

**CS541 **Advanced Artificial Intelligence (3)

*Mathematical logic, resolution techniques and automated theorem proving. Problem solving methodology. Computational systems for problem solving. Sequential and parallel inference machines. Quasi-chaotic models of computations: Genetic algorithms. Game playing. Machine learning. Natural language processing: syntactic processing, semantic analysis: Selected application of AI.*

**CS542 **Scientific Computing: Mathematical Models and Algorithms (3)

*Mathematical modeling using systems of differential equations to model real situations, large systems of linear equations, sparse matrices, pseudoinverse matrices, multilevel methods, factorization. Ordinary differential equations, initial value problems, one step and multi-step methods for solution, stiff equations, boundary value problems, shooting, difference and variational methods.*

**CS543 **Advanced Numerical Computing (3)

*Fitting of data, B-spline representations, calculating with B-splines, knote insertion algorithms, curve fitting with splines, surface fitting, mesh data methods, scattered data methods. Transforms and filtration of data, Fourier transforms convolution and correlation, sampling interpolation, deconvolution problem, reconstruction from projections, discrete projections, iterative image reconstruction. Data fitting with fractals, fractal image, fractal dimension, attractor, compression with quadtree, fractal image coding.*

**CS544 **Software Engineering (3)

*Models, notations, the process for software requirement identification, representation, validation, and analysis. Software design process and its models, design state assessment and quality assurance, design verification. Systematic testing of software systems and verification. Measurement and predication of software reliability. Software project management. *

**CS545 **Computer Systems Architecture (3)

* Computational models and computer architecture. Instruction set design, processor architecture, memory organization, I/O and interrupt system. Multiprocessor systems and interconnection networks, resource handling, case studies.*

**CS546 **Design of Microprocessor-based Systems (3)

* Microprocessor systems and components; use of microprocessor systems for control applications. Design, implementation and test of several projects dedicated to microprogrammed control units, embedding microprocessors in control systems, and multiprocessors systems. *

**CS547 **Modeling and of Microprocessor-based Systems (3)

*Basic concepts of modelling, performance metrics, workload selection, data representation. Time-based vs. discrete-event simulation. Simulation of a single server system. Model validation and verification techniques. Random number generators, random variate generation, commonly used distributions. Simulation model analysis, initial transients, confidence intervals, output data analysis. Case studies. *

**CS551 **Introduction to Cryptography (3)

*The course starts with some examples of classical cipher systems such as affine cipher, substitution cipher , etc. Next we study some modern symmetric and asymmetric cipher systems and their security. Chaos-based cipher systems are also introduced. The differ-hellman key exchange protocol is discussed. Digital signatures, hash functions and message authentication codes which are important tools for authentication and data integrity are also presented. *

**CS552 **Data Mining (3)

Basic concepts, data preprocessing ;.Association rules, Classification and Prediction ;. Cluster analysis; Evaluation Techniques; Specialized Techniques.

**CS553 **Information Theory (3)

*Introduction to Algebra, Entropy, Linear codes, Cyclic codes, BCH codes, Hamming code, Huffman codes, Lempel-Ziv codes, Shannonâ€“Fano codes, Channel capacity, Mutual information, Binary symmetric channel, Gaussian channel. *

**CS554 **Wireless and Mobile Networks (3)

*Fundamentals of wireless local area networks and wireless personal communication networks, network protocols, mobile and ad hoc networks, telecommunication protocols, handoff and channel allocation algorithms, cellular concepts, tradeoff reuse, sensor networks, satellite networks, network reliability and performance measures. *

**CS555 **Design and Test of Digital Systems (3)

*Logic design principles, Boolean algebra; logic simulation methods, structural hazards; manufacturing test fundamentals, fault modeling and simulation, automatic test pattern generation algorithms; enhancing testability; advanced testing techniques; test data compaction and compression techniques; integrated circuits vs system-on-a-chip (SOC) design styles and their manufacturing test implications. *

**CS561 **Systems and Network Security (3)

*This course introduces a wide range of security problems in software, systems, and networks. Main topics include principles of systems and network security; classical and modern threat models in computing systems; security in operating systems, browsers, and at the IP stack, transport layer security; defensive methods; and security analysis. *

**CS562 **Software Security (3)

*The course provides a deep insight into state-of-the-art security problems facing design, construction, and maintenance of software systems. Main concepts include vulnerability analysis and detection through static and dynamic analysis, information flow analysis, trusted computing base, sandboxing, and return-oriented programming. *

**CS563 **Data Protection and Privacy (3)

*This is an advanced graduate course that utilizes and presents the theoretical foundations for privacy protection in database. The course includes advanced applied theoretical topics such as homomorphism, design of encrypted databases, encrypted queries, data anonymity systems considerations, and privacy in the cloud. *

**CS580 **Topics in Computer Science (3)

*Special topics not covered in other courses, May be repeated for credits under different subtitles. *