College of Science, Engineering & Technology
Department of Computer Science

Design, implementation, and analysis of abstract data types; data structures and their algorithms. Also included: data and procedural abstraction, linked list, stacks, queues, binary trees, priority queues, heaps, searching, and sorting. Specific algorithmic design techniques to be addressed are divide and conquer, the greedy method, backtracking, branch-and-bound, and dynamic programming. (Three hours of lecture per week).

Architecture of computer hardware, including memory hierarchies, I/O mechanisms, instruction set and data level parallelism, symbolic computation, multiprocessor networks and consistency, and performance modeling. Operational units and their interconnections, which result from architectural specifications, discussed. Also included: memory hierarchies, pipe-lining, RISC vs. CISC architectures, super scalar processors, and micro-programming. (Contemporary illustrations included). Three hours of lecture per week.

Design principles and construction techniques for operating systems discussed. Also included: kernel, process management, memory management, multi-threading, auxiliary storage management, and resource allocation. Comparative structures of different kinds of operating systems included. Three hours of lecture per week.

Presentation of Functions required to operate computer communications networks and methodology procedures for implementing these functions. Broad area of wireless data networks addressed. Other topics included: ad hoc radio nets, wireless LAN’s, 2.5 G and 3 G cellular network architectures, and Internet protocols. Main focus on the TCP and network layer.

Prerequisite: consent of the instructor or undergraduate course in networking. Three hours of lecture per week.

Fundamentals of security principles; security policies; access control systems and methodology; identification, authentication, and accountability; computational number theory and cryptography; strategies of cryptography; and methods of cryptanalysis. Implications and relationships of security in different areas discussed along with applications. (Three hours of lecture per week).

Prerequisite: Consent of the instructor. 

Topics include finite automata; regular sets, expressions and their properties; push-down automata; standard, universal, and linear-bounded Turing machines; relationships between formal languages and automata; Church-Turing thesis; computational view of P and NP problems, undecidability and its consequences. (Three hours of lecture per week).

In depth presentation of the foundations, design and implementation of programming languages. The major emphasis will be placed on formal specification of syntax and semantics and a variety of programming language paradigms including, statement-oriented and procedural, logic, functional, object-oriented and parallel programming languages. (Three hours of lecture per week).

Prerequisite: COSC5351. 

In depth study of artificial intelligence (AI) systems. Specific topics include: intelligent agent, problem solving, knowledge representation and reasoning, uncertain knowledge and non-monotonic reasoning, uncertain reasoning and statistical methods, planning, machine learning, natural language processing, image processing, and robotics. (Three hours of lecture per week).

Prerequisite: Consent of the instructor. 

Presentation of concepts of data mining, including applications, data preparation, model building and evaluation, scoring, data warehousing, architecture data capture, ETL, schema modeling, query design, and optimization. (Three hours of lecture per week).


Prerequisite: Consent of the instructor. 

Provides understanding and experience in modeling essential aspects of Web-based business application systems, including basic processes to the analyze information requirements and to design appropriate solutions leading to web-based applications in an e-business environment. Emphasis on object-oriented analysis and design, client/server system development methods, and human-computer interaction techniques. (Three hours of lecture per week).


Prerequisite: Consent of the instructor. 

A series of seminars held every semester in which students are exposed to various research topics in computer sciences. Students are required to attend thesis seminars and provide a written review to each topic presented. (One hour of seminar per week).


Prerequisite: Consent of the instructor. 

Software measurement and analysis theory, applications, and techniques. Also included: process and product metrics, risk and hazard assessment, quality assurance certification techniques, COCOMO model for cost estimation, re-use, re-engineering, and software safety. (Three hours of lecture per week).


Prerequisite: Consent of the instructor. 

Advanced issues related to database design, data modeling and normalization, query optimization, functional dependencies, data integrity, and data security. (Three hours of lecture per week).


Prerequisite: Consent of the instructor. 

Consideration of contemporary topics and issues in computer science and associated technology. (Three hours of lecture per week).
This course can be repeated for different topics.


Prerequisite: Consent of the instructor. Three hours of lecture per week. This course can be repeated for different topics.

Opportunity for students to do an independent in-depth study on a contemporary topic under the mentorship of a faculty member. Required of students pursuing the Plan B (non-thesis) option.


Prerequisites: Completion of 18 semester credit hours including core courses 

Required independent research project under the mentorship of a faculty member that leads toward the completion of a written thesis for students pursuing the Plan A (thesis) option.


Prerequisites: Completion of 18 semester credit hours including core courses.

Close Menu