MS LEVEL COURSES IN COMPUTER SCIENCE

MS LEVEL COURSES IN COMPUTER SCIENCE

 

Elective Course

 

Catalog Description

Software Requirements: Modern SRS for Enterprise Application and Performance-
Critical Systems. Software Process: Personal Software Process, Team Software
Process. Software Design: Architecture Tradeoff Analysis, Enterprise Architecture,
COTS Architecture, Service Oriented Architecture, RAD. Software Planning: Software
Acquisition, Software Engineering Measurement and Analysis (SEMA). Software
Quality Assurance: 6-Sigma. Software Integration: Enterprise Application Integration,
COTS Integration.

 

 

Elective Course

 

Catalog Description

The course gives state of the art and state of the practice in software requirements
engineering. In-depth research-oriented study of methods, tools, notations, and
validation techniques for the analysis, specification, prototyping, and maintenance of
software requirements. Topics include study of object-oriented requirements modeling,
using state of the art modeling techniques such as the Unified Modeling Language
(UML). The course work includes a project investigating or applying approaches to
requirements engineering.

 

 

Elective Course

 

Catalog Description

Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared. In-depth research-oriented study of objectoriented analysis and design modeling using state of the art modeling techniques such as Unified Modeling Language (UML). Students participate in a group project on object-oriented software design.

 

 

Elective Course

 

Catalog Description

In-depth research-oriented study of Verification and Validation throughout the
development lifecycle. Techniques for validation and verification. Quality assurance at
the requirements and design phases. Software testing at the unit, module, subsystem,
and system levels. Automatic and manual techniques for generating and validating test data. Testing process: static vs. dynamic analysis, functional testing, inspections, and
reliability assessment.

 

 

Elective Course

 

Catalog Description

Lifecycle and process models; process metrics; planning for a software project;
mechanisms for monitoring and controlling schedule, budget, quality, and productivity;
and leadership, motivation, and team building. Topics cover quantitative models of
the software lifecycle, process improvement techniques, cost-effectiveness analysis in
software engineering, multiple-goal decision analysis, uncertainty and risk analysis,
software cost estimation, software engineering metrics; and quantitative lifecycle
management techniques.

 

 

Elective Course

 

Catalog Description

Advanced topics selected from current journals of Software Engineering that deal with
theoretical development or applications in the field. Topic include: Reusable Software
Architectures, Software Engineering, Experimentation, Concurrent Software Systems,
Software Metrics Software Engineering for the World Wide Web, Formal Methods and
Models in Software Engineering, etc.

 

 

Required Course

 

Catalog Description

Structural design aspects of an operating system: process model, inter-process
communication, synchronization mechanisms, resource management, and scheduling.
Protection issues. Implementation issues of modern operating systems. Distributed
operating systems. Deadlock detection, recovery, and avoidance. Case studies.
Project(s).

 

 

Elective Course

 

Catalog Description

Performance measures. Modeling methodologies: queuing models, graph models,
dataflow models, and Petrinet models. Mathematical models of computer systems: CPU
and computer subsystems such as memory and disks. Bottleneck analysis. Modeling
multi-server systems. Model validation methods. Case studies. Project(s).

 

 

Elective Course

 

Catalog Description

Basic probability and statistics. Review of discrete-event simulation tools and
methodologies. Simulation languages. Random Number generation. Developing
Simulation Models. Simulation Validation. Output Data Analysis. Applications to
computer systems. Project(s).

 

 

Elective Course

 

Catalog Description

Principles of functional, imperative, object-oriented and logic programming languages.
Semantic specification including axiomatic, operational and denotational semantics.
Fundamentals of type systems such as abstract data types, polymorphism, and inference.
Concurrent systems. Case studies of contemporary programming languages.

 

 

Elective Course

Real-Time Systems

 

Catalog Description

Overview of real-time systems. Design and implementation issues. System interfacing
basics. Embedded software design constraints under size, performance, and reliability.
Software timing and functional validation. Applications and case studies of real-time
hardware and software systems.

 

 

Elective Course

 

Catalog Description

Advanced topics selected from current journals in the field that deal with theoretical
development and applications of computer systems.

 

 

Elective Course

 

Catalog Description

Database development life cycle. Data modeling. Database design theory. Query
processing. Concurrency control and transaction management. Recovery. Security.
Database applications: data warehousing, data mining, web pages, and others. Various
types of database systems: object relational, object-oriented, distributed, client/server,
and others. Current trends in database research. Project(s).

 

 

Elective Course

 

Catalog Description

Multimedia data representation and management in the context of content-based
retrieval, audio, image and video data representation, Information retrieval from text.
Content based retrieval of audio, image and video data, Similarity measures. Query
formulation and evaluation, Multi-dimensional indexing algorithms and data structures.
Multimedia compression. Multimedia data mining.

 

 

Elective Course

 

Catalog Description

Graphics systems. Two dimensional concepts and methods. Geometrical
transformations. Modeling 3D scenes. Curve and surface design. Approaches to infinity.
Rendering faces for realism. Color theory. Visible-surface determination. Illumination
models and shading. Project(s).

 

 

Elective Course

 

Catalog Description

Fundamentals of E-Commerce: B2B and B2C models. Internet networking: TCP/
IP, IIOP, SOAP. Internet Security: firewalls, viruses, hacking. Design issues of ECommerce:
n-tier technology, Object Oriented paradigm such as Common Object
Request Broker Architecture and Component Object Model. Web Servers. Data
transactions between database servers and web servers using XML. Project(s).

 

 

Elective Course

 

Catalog Description

Contemporary concepts and research in the field of Arabic Computing. Arabic
characteristics and standardization. Arabic systems and tools. Arabic programming
languages. Arabic character recognition. Arabic speech synthesis and recognition.
Natural Arabic processing.

 

 

Elective Course

 

Catalog Description

Advanced topics selected from current journals on various IT and CS applications that
deal with theoretical and practical development in various enterprises.

 

 

Elective Course

 

Catalog Description

Introduction to various models of computation. Machines, languages and grammars.
Turing-computability. Universal Turing Machines. Recursive functions. Church’s thesis.
Godel’s completeness and incompleteness theorems. Closure properties and complexity
classes of languages. Decidability, undecidability and partial decidability.

 

 

Required Course

 

Catalog Description

Review of RAM model of computation, complexity measures of time and space. Graph
Algorithms for minimum spanning trees, shortest paths, matroids, the planar separator
theorem. Planarity and planarization. network flow algorithms. Graph matching and
coloring. Establishing lower bounds. NP Completeness: Cook’s theorem. Various
complexity classes and their relationships. Techniques for establishing completeness.
Approximation and probabilistic algorithms to NP-hard problems.

 

 

Elective Course

 

Catalog Description

A study of combinatorial and graphical techniques for complexity analysis including
generating functions, recurrence relations, Polya’s theory of counting, planar directed
and undirected graphs, NP complete problems. Application of these techniques to
analysis of algorithms in graph theory.

 

 

Elective Course

 

Catalog Description

Mathematical principles of cryptography and data security. A detailed study of
conventional and modern cryptosystems. Zero knowledge protocols. Information
theory, Number theory, complexity theory concepts and their applications to
cryptography.

 

 

Elective Course

 

Catalog Description

Introduction to parallel computational models (PRAM, Meshes, Trees, Hypercubes,
Shuffle-Exchange, Mesh-of-Trees) and complexity measures. Parallel algorithms design
techniques: divide-and-conquer, parallel prefix, pointer jumping, list ranking, Euler’s
path technique, and ear decomposition. Parallel algorithms for selection, merging,
sorting, searching, and graph problems. Computational geometry. Graph embedding. Parallel computational complexity: equivalence of Boolean circuits and the PRAM
models, the NC class, and P-complete problems.

 

 

Elective Course

 

Catalog Description

Advanced topics selected from current journals of Theoretical Computer Science that
deal with theoretical development or applications of computer systems.

 

 

Elective Course

 

Catalog Description

Examination of modern computer networking and data communications. Contemporary
concepts, facilities, practices, implementations, and issues. Data Link and media access
layer protocols. Introduction to Gigabit Ethernet, ATM and Frame Relay. Protocols of
TCP/IP suite. IP routing, flow and congestion control. Application Layer. Introduction
to modeling and analysis of data networks: Queueing theory, Little’s Law, Single
Queues, and Jackson Networks.

 

 

Elective Course

 

Catalog Description

Introduction to Clients, Servers, and Protocols. Client-Server Architectures. Software
Architectures for Clients and Servers. Network and Operating System Support for
Client-Server Applications. Programming language support. Standard interfaces and
API. Examples of clients and servers for several popular protocols such as X, POP3,
news, ftp, and http. Project(s).

 

 

Elective Course

 

Catalog Description

Introduction to parallel and distributed computation models. Mapping a parallel solution
to a distributed computing platform. Programming issues. Operating system support for
distributed computing. Message passing environments such as PVM and MPI. Load
balancing. Migration. Agent architectures. Performance and complexity measures.
Services. Service driven design of distributed applications. Timing and Synchronization.
Remote procedure invocation. Project(s).

 

 

Elective Course

 

Catalog Description

Theory and practice of parallel computing. Analytical models of parallelism and
performance evaluation. Parallel architectures. Software tools for parallel programming.
Design and implementation methodologies for parallel high performance applications.
Design, analysis, and implementation of parallel solutions for various scientific
problems such as linear algebraic problems, fast Fourier transform, Monte Carlo
techniques, boundary value problems, finite element techniques, and iterative systems.
Project(s).

 

 

Elective Course

 

Catalog Description

Application Development for Deployment over the WWW. Application protocols.
Connection and Session Objects. Authentication Services. Integrating Database
Services. Component Architectures. Scripting Languages. Modern applications and
application architectures such as Digital Cash and E-Commerce. Making use of the
state-of-art tools, a major project will be developed by the students.

 

 

Elective Course

 

Catalog Description

Concepts and foundation of parallel processing. Computational models. Parallel
algorithms. parallelization techniques. Parallel software characteristics and requirements:
languages, compilers, operating systems, and inter-process communication support.
Parallel computer architectures. Case studies. Project(s).

 

 

Elective Course

 

Catalog Description

State-of-the-art topics from the general area of Computer Network Software and
Protocols.

 

 

Elective Course

 

Catalog Description

This course introduces advanced issues and approaches of artificial intelligence
topics, including logic programming, computational learning theory, machine learning
(supervised, unsupervised, and reinforcement learning), search-oriented problem solving
techniques, computer perception and robotics, speech understanding, knowledgebase
systems and reasoning about Knowledge, planning and temporal reasoning, inference and theorem proving, reasoning under uncertainty, principles of intelligent agents,
reactive, goal-based, and utility-based agents.

 

 

Elective Course

 

Catalog Description

This course examines a range of issues concerning computer systems that can process
human languages. Among the issues to be discussed are morphological and syntactic
processing, semantic interpretation, discourse processing and knowledge representation.
Components of a natural languages processing system, Natural language models:
Mathematical, psychological, Lexical, syntactic, and semantic analysis, Phrasestructured
grammars, Transformational grammars, Transition networks, Semantic
networks, Conceptual parsing, Conceptual dependency, Systemic and case grammars,
Scripts, plans and goals, Knowledge representation, Sentence generation. Course
projects give the students knowledge in how to use recent trends in Natural Language
Processing.

 

 

Elective Course

 

Catalog Description

Introduction to pattern recognition, feature extraction, and classification. Bayesian
decision theory, maximum likelihood and Bayesian parameter estimation, Nonparametric
pattern classification techniques, density estimation. Pattern Classification using linear
discriminant functions. Unsupervised machine learning, clustering, vector quantization,
K-means. Various methods of pattern recognition, extraction methods, statistical
classification, various classifiers and case studies.

 

 

Elective Course

 

Catalog Description

Survey of proof theory and model theory of first-order predicate calculus, natural
deduction, Herbrand’s procedure, resolution methods, induction principles, rewrite
rules, theorem-provers for algebraic systems.

 

 

Elective Course

 

Catalog Description

Overview of Artificial Intelligence disciplines. Architecture of expert systems: including
the structure of knowledge bases and the various knowledge representation methods,
inference engines and reasoning techniques, search and exploitation of domain-specific
knowledge through heuristics, knowledge acquisition. Discuss examples of expert systems shells, their capabilities and limitations. Assign projects in specific discipline
using available shells.

 

 

Elective Course

 

Catalog Description

Fundamental concept of neural computation. Main neural network models. Perceptions
and back-propagation, Hopfield and feedback models. Fault-tolerance in neural
networks. Parallel processing in neural networks. Potential and limitations of neural
networks. Applications of neural computing. Project(s).

 

 

Elective Course

 

Catalog Description

Advanced topics selected from current journals of Artificial Intelligence that deal with
theoretical development or applications of computer systems.

 

 

Elective Course

 

Catalog Description

The course can be taken under the supervision of a faculty member to conduct an indepth
study of a subject.

 

 

Required Course

 

Catalog Description

Graduate students are required to attend the seminars given by faculty members,
visiting scholars, and fellow graduate students. Additionally, each student must give
at least presentation on a timely research topic. Among other things, this course is
designed to give the student an overview of research, research methodology, journals
and professional societies. Graded on a Pass or Fail basis.

 

 

Required Course

 

Catalog Description

The student has to undertake and complete a research topic under the supervision of a
faculty member in order to probe in depth a specific problem in Computer Science.​