Graduate Program Course List

Compulsory Departmental Courses

Elective Courses

Elective Courses Taken From Other Departments

Scientific Preparation



Compulsory Departmental Courses

COMPE 502 - Advanced Databases
Database system concepts. Transaction processing, concurrency control and database recovery. Object-oriented and Object-relational databases. Semi-structured data and XML. Parallel and Distributed Databases. Advanced Concepts of Distributed Databases. Introduction to Big Data. Temporal Databases.

COMPE 508 - Advanced Computer Networks
Advanced concepts of TCP/IP computer networks. Routing principles and routing algorithms in TCP/IP networks. Wireless-networking. Multimedia networks. Network security. Network management.

COMPE 589 - Graduation Seminar
Each Master's student with thesis option, at least one semester prior to his/her thesis defense, is expected to give a presentation on his/her thesis work.

COMPE 598 - Special Studies on Thesis Subject
Research methodologies. Review of background knowledge. Academic reading.

COMPE 599-1 - Thesis-1
Problem identification and analysis. Research methodologies. Literature Survey. Typical phases of the system development life cycle. Progress Report.

COMPE 599-2 - Thesis-2
Research methodologies. Requirement Analysis. Design. Typical phases of the system development life cycle. Progress Report.

COMPE 599-3 - Thesis-3
Research methodologies. Implementation. Testing. Typical phases of the system development life cycle. Thesis documentation.

Elective Courses

COMPE 501 - Object Oriented Design & Programming
Thinking Object-Oriented. Abstraction. Object-Oriented analysis and design concept and design patterns. UML: Introduction, role of modeling, models and views, core diagrams, fundamental elements (structural elements, Java independent entities, Java dependent entities). Introduction to Sequence, Class, and Package Diagrams. Development Lifecycle and UML (Requirements, Analysis & Design, Construction, Test, Deployment). The Full Lifecycle. Java and UML: Responsibility-Driven Design (RDD) method, and using CRC. Classes and methods. Messages, instances and initialization. Inheritance, subclass and subtype. Static and dynamic behavior. Substitution. Multiple inheritance and polymorphism.

COMPE 503 - Big Data Analytics
Infrastructure as a Service(IaaS), Hadoop Framework, Hive Infrastrucure, Data Visualization, MapReduce Model, NoSQL databases, Large-scale Data Workflows, Clustering, Using R

COMPE 505 - Advanced Network Programming
Introduction to networking, overview of programming language that will be used to implement course content, threads and multi threading, exceptions, sockets, web sockets, streaming, file streaming, memory I/O streams, object streaming, client-side networking, server-side networking, HTTP networking, message queuing, synchronous and asynchronous communication.

COMPE 506 - Advanced Data Mining
Introduction to Data Mining, Concepts, Attributes and Instance, Data Processing (Cleaning, Integration and Reduction), Data Warehousing and Online Analytical Processing (OLAP), Data Mining Algorithms ,Credibility, Advanced Pattern Mining, Classification, Engineering the Input and Output, Data Mining software and applications

COMPE 507 - Information Retrieval
Organization, representation, and access to information; categorization, indexing, and content analysis; data structures for unstructured data; design and maintenance of such databases, indexing and indexes, retrieval and classification schemes; use of codes, formats, and standards; analysis, construction and evaluation of search and navigation techniques; and related search engines.

COMPE 513 - Computer and Network Security
Encryption techniques and algorithms. Public-key encryption. Hash functions. Digital signatures. Authentication. Network security. Web security. Operating System security(Unix and Windows). Bell-LaPadulla model. Software and database security.

COMPE 516 - Current Trends in Internetworking Technologies
Overview and history of the community organizations related to Internet technologies and standard organizations. Open and proprietary standards. Widely used current techniques and technologies in Internet. Latest technologies under development. Latest techniques and their states that are under development and discussed by the communities.

COMPE 521 - Multimedia Systems
Hardware and software requirements of multimedia systems. Multimedia data types (digital audio, video, image). Image and video compression techniques. Multimedia communication systems. Content-based multimedia storage and retrieval. Mobile multimedia.

COMPE 531 - Advanced Operating Systems
Advanced topics in process scheduling. Multiprocessor and real-time scheduling. Concurrent programming fundamentals. Review of inter-process communication, semaphores and monitors. Synchronization and communication. Fault tolerance. Recent advances in operating systems.

COMPE 532 - Advanced Computer Architecture
Quantitative Principles of Computer Design, Instruction Set Principles and Examples, Advanced Pipelining and Instruction-Level Parallelism, Memory-Hierarchy Design, Storage Systems, Thread Level Parallelism

COMPE 551 - Biometric Identification and Verification Systems
Biometric identification and verification. Performance calculations of biometric systems. Fingerprint verification. Face recognition. Iris and retina based identification. Hand geometry and DNA based identification. Multimodal biometric systems. Biometric system standards.

COMPE 552 - Penetration Testing
Penetration testing concepts. Ethical issues in penetration testing. Building a testing infrastructure. Legal issues with penetration testing. Port scanning. Vulnerability Scanning. Exploitation. Password Attacks. Web Application Penetration Testing. Wireless Penetration Testing. Reporting of the obtained test results.

COMPE 553 - Cyber Security
Basic concepts in cyber space and security. Cyber crime, IT law, computer law and cyber law. Computer forensics. Information security and assurance. Computer and network security. Cyber Warfare. International standards on cyber security.

COMPE 562 - Multiagent Systems
Agent paradigm. Abstract agent architectures. Design of intelligent agents. Agent cooperation. Auction systems. Negotiation. Argumentation. Interaction languages and protocols. Distributed problem solving. Coordination. Applications for multi-agent systems.

COMPE 564 - Natural Computing
Problem Solving by Search; Hill Climbing; Simulated Annealing; Artificial Neural Networks; Genetic Algorithms; Swarm Intelligence (including Ant Colony Optimization and Particle Swarm Optimization); Artificial Immune Systems.

COMPE 565 - Machine Learning
Concept Learning, Decision Tree Learning, Artificial Neural Networks, Evaluating Hypotheses, Bayesian Learning, Computational Learning Theory, Instance-Based Learning, Genetic Algorithms, Analytical Learning, Reinforcement Learning

COMPE 567 - Semantic Web Programming
XML, Resource Description Language,Web Ontology Language,Ontologies and Rules ,Query Languages-SPARQL,Ontology Engineeering,Semantic Web Applications and Semantic Web Services

COMPE 568 - Advanced Artificial Intelligence
Intelligent agents. Problem solving by searching. Informed/uninformed search methods. Exploration. Constraint satisfaction problems. Knowledge and reasoning: first-order logic, knowledge representation. Learning. Selected topics: neural networks, natural computing.

COMPE 574 - Advanced Algorithms
Design and Analysis of Algorithms, O-Notation, Graph Algorithms, Topological Sort, Minimum Spanning Trees, Single-Shortest Paths, All-Pairs Shortest Paths, Flow networks, NP-Hard and NP-Complete Problems.

COMPE 575 - Parallel and Cluster Computing
Models of parallel computing – dependence on architecture, trade-off between computation cost and communication cost. Performance measures for parallel computation – computational complexity. Techniques for parallel computation – divide and conquer, partitioning, and pipelining. Parallel algorithms for sorting, searching and matrix computations. MPI and OpenMP environments for parallel programming.

COMPE 577 - Distributed Computing
Introduction to the core concepts and principles of distributed programming techniques, computing paradigms, protocols, and application program interfaces (APIs), sockets, multicast, Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Interface Definition Language (IDL), applets, servlets, Common Gateway Interface (CGI), REST, and Simple Object Access Protocol (SOAP), MPI

Elective Courses Taken From Other Departments

ISE 513 - Systems Integration
Integration of information systems in organizations. The processes by which different computing systems and software applications are linked together physically or functionally. Examine the strategies and methods for blending a set of interdependent systems into a functioning or unified whole, thereby enabling two or more applications to interact and exchange data seamlessly. Explore tools and techniques for systems integration as well as proven management practices for integration projects.

ISE 514 - Cloud Computing
Basics of cloud computing, discovering the value of the cloud computing for business, advantages of cloud computing, elements of cloud computing, technical foundation of cloud computing, managing data in cloud, standards, managing and securing cloud services, virtualization, service oriented architecture, managing cloud environment.

SE 552 - Advanced Software Project Management
Introduction to project management; algorithmic cost estimation models; advanced cost estimation models; function points estimation; risk assessment; life cycle models; prototyping; management of software reuse; software maintenance; software maturity framework; case studies

SE 564 - Service Oriented Architecture and Business Process Management
Basics of SOA; SOA design principles; SOA standards, foundations, BPEL, SOAP, WSDL and UDDI; governance; business process models; business process management from process and content management to collaboration and analytics; BPM enabled by SOA

Scientific Preparation

COMPE 723 - Fundamentals of Object-Oriented Programming
Data types. Expressions and statements. Functions and scope rules. Class definitions. Inheritance. Polymorphism. Name overloading. Templates. Exception handling. Input/Output. Object oriented principles will be introduced using the UML and C++ programming language.

COMPE 726 - Object-Oriented Data Structures
Stacks. Recursion. Queues. Creation and destruction of dynamic variables. Serial linked lists. Circular lists. Doubly linked lists. Circular doubly linked lists. Sorting and searching algorithms. Space and time considerations. Binary trees. Binary search trees. Tree traversal algorithms. Binary tree sorting algorithms. Hashing.

COMPE 734 - Computer Networks
Basic concepts of computer networking. Application layer and well-known applications. Transport layer, UDP and TCP services. Network layer, IPv4 addresses, forwarding and routing. Data link layer, MAC addresses, HUBs and switches. Physical layer properties and standards.

COMPE 741 - Database Design & Management
Database system concepts. Data modeling with ER and EER. The Relational Data Model. File organizations and index structures. Relational algebra. Structured Query Language (SQL). Database design: functional dependence and table normalization. Introduction to database administration. A relational DBMS will be introduced in a laboratory environment.