The master of Science program in computer science offers students the opportunity to engage in course work, research projects, and other activities designed to develop theoretical background and up-to-date practical skills in rapidly changing area of computer science. The program provides a broad spectrum of study in preparation for careers in advanced computer research areas. The program allows student flexibility in planning their program of study after the initial course requirements are met.

Admission

The program is open to computer science graduates and also selected students whose preparation is outside computer science. However, students entering graduate study from outside the computer area may be required to go through additional preparation before beginning their graduate program. Those students who have some deficiency in their undergraduate training but are well qualified in other aspects may be admitted provisionally. The department may prescribe a number of prerequisites courses to make up for the deficiency.

Courses (24 credit hours)

A minimum of eight courses (24 credit hours) is required: four core courses (12 credit hours), and four electives (12 credit hours).

Core Course (12 credit hours)
All candidates must take the following four core courses:

CSCI 525 Algorithms and Complexity Theory, 3 cr.
CSCI 530 Advanced Processor Architecture, 3 cr.
CSCI 545 Distributed Systems, 3 cr.
CSCI 565 Advanced Artificial Intelligence, 3 cr.

Elective Courses (12 credit hours)

CSCI 527 Neural Networks and Genetic Algorithms, 3 cr.
CSCI 529 Design and Analysis of Parallel Algorithms, 3 cr.
CSCI 532 Parallel Computer Architecture, 3 cr.
CSCI 535 High Speed Networks, 3 cr.
CSCI 541 Advanced Software Engineering, 3 cr.
CSCI 555 Computer Graphics and Animation, 3 cr.
CSCI 563 Digital Image Processing and Pattern Recognition, 3 cr.
CSCI 567 Robotics and Computer Vision, 3 cr.
CSCI 585 Selected Topics, 3 cr.

Thesis (8 Credits hours)

The graduate thesis work is an important and required part of the master's degree program. Each student must submit a thesis topic that has been approved by a faculty supervisor, normally after 12 credit hours. Various research topics are discussed in the seminar courses. The student must register in the first seminar course before submitting a thesis topic and once during the execution of the thesis research. To ensure adequate faculty consultation on the thesis, the student must register for the graduate thesis for at least two semesters.

The computer Science Seminar is a two-semester course (1 credit hour per semester) designed to prepare students for research in computer science. The seminar must be taken by all students. The first seminar will help the students select a topic for his/her thesis and must be taken before submitting a thesis topic. In the second seminar, the student will present a report on his/her thesis progress.

Example of a Program Completion Plan:

Semester 1:  3 graduate courses
Semester 2:  3 graduate course + seminar P1
Semester 3:  2 graduate courses + Thesis
Semester 4:  Thesis + seminar P2

Computer Science Courses (CSCI)

CSCI 525 Algorithms and Complexity Theory, 3 cr.

Measures of the complexity of algorithms. Amortized complexity. Greedy algorithms. Dynamic programming. NP-Completeness and lower-bound theory. Cook's Theorem. Techniques for proving problems NP-complete. Complexity of parallel algorithms. Well-parallelizable and hardly-parallelizable problems.


CSCI 527 Neural Networks and Genetic Algorithms, 3 cr.

Basic concepts on artificial neural networks, non-symbolic vs symbolic information learning systems. Unsupervised learning networks, supervised learning networks, neural network hardware. Evolutionary computations, genetic algorithms, evolutionary programming, genetic programming. Hybrid systems integrating classical AI techniques with biologically-based techniques, and some applications.


CSCI 529 Design and Analysis of Parallel Algorithms, 3 cr.

PRAM model and work-time presentation framework. Basic parallel algorithm design techniques: balanced problem decomposition, printer jumping, divide and conquer, partitioning, pipelining, accelerated cascading, symmetry breaking. Parallel searching and sorting. Parallel pattern matching. Randomized parallel algorithms.


CSCI 530 Advanced Processor Architecture, 3 cr.

Advanced topics in modern microprocessor micro architecture especially as they relate to systems and applications software. Modern “core” CPU design: Instruction Level Parallelism, [ILP :Instruction Level Parallelism via software], Dynamic Instruction Level Parallelism by hardware [ Dynamic scheduling, Superscaling, Reservation stations, Instruction Reordering buffers, Speculative instruction execution, Out-of-order instruction execution and retirement], Static and Dynamic Branch prediction techniques & VLIW technology. CMP (Chip Multiprocessing), Chip multithreading design and applications. Basics of parallel software design issues and how they interact with the architecture. All topics are illustrated by state of the art Microprocessors


CSCI 532 Parallel Computer Architecture, 3 cr.

Prerequisites: CSCI 530. Analysis and design of high-performance computer systems, pipelining techniques, cache design, instruction level parallelism, parallel and vector architectures, shared memory multiprocessors, message passing multicomputers, data flow architectures, scalability and performance, software for parallelism.


CSCI 535 High Speed Networks, 3 cr.

Prerequisites: Previous experience in networks. Introduction to the need for Giga-bit networks and the technology support of that demand. Changes required to support this high rate of data, voice, and live video. Over view of IDN, ISDN, and B-ISDN. Fiber Optics Medium. Cell networking. ATM (Asynchronous Transfer Mode). Switching and switches. Traffic control in ATM networks. ATM Local Area Networks.


CSCI 541 Advanced Software Engineering, 3 cr.

Formal methods in software engineering, first-order logic, basic specification elements and rigorous proofs. Verification and validation. Testing and debugging techniques and tools. Reusability, modularity, top-down and bottom-up development approaches, object classification, support for concurrency and polymorphism.

CSCI 545 Distributed Systems, 3 cr.

Models of concurrency, specifications of distributed systems, consistent global states, fault tolerance and related problems, interprocess communication, distributed file systems, replication mechanisms, distributed operating systems, real-time distributed systems, transputers, and case studies of distributed systems.


CSCI 555 Computer Graphics and Animation, 3 cr.

Fundamental concepts and basic techniques of computer graphics. Algorithms and recent research in graphics and animation. A thorough survey of object modeling, realism, ray tracing, rendering, and light models. Modeling of animated objects, motion animation, and human animation.


CSCI 563 Digital Image Processing and Pattern Recognition, 3 cr.

Image transforms, enhancement and filtering, image restoration, compression and segmentation, pattern representation and description, pattern classification, recognition and interpretation.


CSCI 565 Advanced Artificial Intelligence, 3 cr.

Concepts of logic-based Artificial Intelligence, logic programming, automated deduction, planning, speech recognition, machine learning, case-based reasoning, integrated AI architecture, distributed AI, common sense representation, and fuzzy systems.


CSCI 567 Robotics and Computer Vision, 3 cr.

Prerequisites: CSCI 565. Introduction to robotic applications and research, spatial representation, robot kinematics, jacobian matrix, motion trajectory, sensor and data fusion, sensor placement, imaging for robotics, object identification, wireless communication. Micro-controllers, real-time operating systems and computer interfacing.


CSCI 585 Selected Topics, 3 cr.

Prerequisites: Permission of instructor. Topics chosen according to special interests of faculty and students. May be repeated for credit more than once if content changes.

© 2001-2008, Computer Science and Engineering Department at the American University in Cairo