MASTER OF SCIENCE

COMPUTER SCIENCES

Program code: 0418

INTRODUCTION

The Computer Science Department (College of Science) offers a graduate program that leads to the degree of Master of Science in Computer Science. The program features a thesis and a non-thesis option. The thesis option requires a successful completion of a thesis, and the non-thesis option requires the completion of a project and passing a comprehensive examination. The graduate program in Computer Science places equal emphasis on fundamentals and practical aspects of Computer Science. Current research interests of the faculty include algorithms, artificial intelligence, security, database systems, networks and distributed systems, and software engineering. The aim of this program is to prepare students for industrial and research careers.

According to the University Council decision dated 4/2/2007, Thesis students admitted with effect from September 2007 are exempted from the comprehensive examination.

PROGRAM REQUIREMENTS

31 (34) TOTAL COURSE CREDITS (non-thesis option in parenthesis)

10 (4) ) COMPULSORY (credits in parenthesis)

            0418-590 Research Seminar in Computer Science (1)

            0418-593 Project (Non-Thesis option only) (3)

            0418-597 Thesis (Thesis option only) (0)

            0418-598 Thesis (Thesis option only) (0)

            2000-599 Thesis (Thesis option only) (9)

21 (30) CORE COURSES

            Group A: Theory  (3-6 credits)

0418-512 Automata and Formal Languages (3)

0418-513 Theory of Complexity (3)

0418-516 Graph Theory(3)

0418-521 Programming Paradigms (3)

            0418-553 Information Theory (3)

            Group B: Systems and Security (3-12 credits)

            0418-522 Distributed Systems (3) 

            0418-525 Operating Systems (3) 

            0418-526 Advanced Computer Networks (3) 

0418-551 Introduction to Cryptography (3) 

0418-561 Systems & Network Security (3) 

0418-562 Software Security (3) 

0418-563 Data Protection and Privacy (3) 

            Group C: Artificial Intelligence (3-12 credits )

            0418-524 Expert Systems  (3) 

0418-541 Advanced Artificial Intelligence (3) 

0418-552 Data Mining (3) 

            0418-566 Machine Learning (3) 

0418-567 Algorithms for Optimization (3) 

Group D: Applications and Special Topics (0-12 credits)

0418-515 Program Specification & Verification (3)   

0418-523 Advanced Databases (3) 

0418-527 Interconnection Networks (3) 

0418-534 Parallel Computing (3) 

0418-543 Advanced Numerical Computing (3) 

0418-544 Software Engineering (3) 

            0418-547 Modeling and Computer Simulation

0418-564 Computational Biology (3) 

0418-565 Computational Medicine (3) 

0418-580 Topics in Computer Science (3) 

Group E: Free Electives (0-6 credits)

Students may study up to 6 credit hours from the 400 level undergraduate courses offered by Computer Science Department, or any 400/500 level courses offered by other Departments at Kuwait University with the approval of the Program Director.

COURSE DESCRIPTION

0418-512: AUTOMATA AND FORMAL LANGUAGES

CR: 3

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.

0418-513: THEORY OF COMPLEXITY

CR: 3

Algorithm, Turing 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.

0418-515: PROGRAM SPECIFICATION AND VERIFICATION

CR: 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.

0418-516: GRAPH THEORY

CR: 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.

0418-521: PROGRAMMING PARADIGMS

CR: 3

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, functionals in programming. Concepts of logic programming and PROLOG.

0418-522: DISTRIBUTED SYSTEMS

CR: 3

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

0418-523: ADVANCED DATABASES

CR: 3

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

0418-524: EXPERT SYSTEMS

CR: 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.

0418-525: OPERATING SYSTEMS

CR: 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.

COLLEGE OF SCIENCE

0418-526: ADVANCED COMPUTER

NETWORKS

CR: 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.

0418-527: INTERCONNECTION

NETWORKS

CR: 3

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

0418-534: PARALLEL COMPUTING   CR: 3   Sequential and Parallel programs. A descriptive   view at sequential and concurrent program   execution. Parallel processing models and   terminology. Architecture classifications.   Communication topologies. Performance measures.   Principles of organizing parallel algorithms and   examples. Concurrent programming languages.  

0418-541: ADVANCED ARTIFICIAL   INTELLIGENCE  

CR: 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.  

0418-543: ADVANCED NUMERICAL   COMPUTING  

CR: 3  

Fitting of data, B-spline representations,   calculating with B-splines, knot 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.   

0418-544: SOFTWARE ENGINEERING  

CR: 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 prediction of software reliability. Software   project management.

COLLEGE OF SCIENCE  

0418-547: MODELLING AND COMPUTER   SIMULATION   CR: 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.  

0418-551: INTRODUCTION TO   CRYPTOGRAPHY  

CR: 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 Diffie-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.

0418-552 : DATA MINING

CR: 3

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

0418-553 : INFORMATION THEORY

CR: 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.

0418-561: SYSTEM & NETWORK SECURITY  

CR: 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.  

0418-562: SOFTWARE SECURITY  

CR: 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.  

0418-563: DATA PROTECTION AND   PRIVACY   CR: 3  

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

0418-564: COMPUTATIONAL BIOLOGY   CR: 3  

Main topics include central dogma in biology,   bioinformatics databases and sequence alignment,   phylogenetic trees & clustering techniques,   molecular dynamics simulations and applications,   hidden markov models, affine transformations and   modeling molecular aggregation.  

0418-565: COMPUTATIONAL MEDICINE   CR: 3  

Main topics include an overview of computational   medicine & medical informatics, electronic health   records and health systems, designing scalable   software systems for health, algorithm   development for diabetes pumps, and   computational molecular docking and drug design.      

0418-566: MACHINE LEARNING  

CR: 3  

The course covers the basic concepts and   techniques of Machine Learning from both   theoretical and practical perspective. The material   includes decision trees, artificial neural networks,   deep learning, Bayesian learning, instance-based   learning and reinforcement learning  

0418-567: ALGORITHMS FOR   OPTIMIZATION  

CR: 3  

Methods and algorithms for developing systems   and software to solve single and multiple objective   optimization problems. Methods include   backtracking, direct search, and gradient-based   methods.  

0418-580: TOPICS IN COMPUTER SCIENCE   CR: 3  

Special topics not covered in other courses, may be  repeated for credit under different subtitles.  

0418-590: RESEARCH SEMINAR IN   COMPUTER SCIENCE  

CR: 1  

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

0418-593: PROJECT 

CR: 3  

The student undertakes an independent project on a   research topic of theoretical and/or experimental   focus under the supervision of a faculty member   listed in the supervisory list of the College of   Graduate Studies. The objective is to provide the   student with an opportunity to integrate and apply   the knowledge gained throughout the course of   study in a practical problem. The student must   document the project in a scientific report   following standard research writing guidelines and   give a public presentation to the project examination committee.

0418-597: THESIS

CR: 0

0418-598: THESIS

CR: 0

2000-599: THESIS

CR: 9