Sign In
 

 Ph.D. In Computer Science - Course List

Program Features Course and Admission Requirements ​Degree Comprehensive Examination Program Objectives and Student Outcomes​ Degree Plan Course List

AREA A: ALGORITHMS AND APPLICATIONS

ICS 553: Algorithms and Complexity Syllabus (3-0-3)

Computational complexity: P-space and EXP classes, R​eduction, NP-complete problems, Cook’s theorem, Randomized algorithms, Approximation algorithms, Branch-and-Bound, Amortized analysis; Max flow, Bipartite matching; Geometric algorithms: Convex hull, Closest pairs; Computability: Turing machines, Church-Turing thesis, ​Rice’s theorem, Undecidability.
Note: Prerequisite is ICS 353 or equivalent.
Prerequisite: 


ICS 545: Arabic Computing Syllabus (3-0-3)

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.
Note: Consent of Instructor required.


ICS 546: Multimedia Information Management Syllabus  (3-0-3)

Multimedia data representation and management in the context of contentbased 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.
Note: Consent of Instructor required.


ICS 547: Digital Image Processing Syllabus  (3-0-3)

Continuous Image. Mathematical Characterization. Psychovisual Properties. Photometry and Colorimetry. Superposition and Convolution. Image Transforms. Linear Processing Techniques. Image Enhancement. Morphological Image Processing. Edge Detection. Image Feature Extraction. Image Segmentation. Shape Analysis.
Note: Consent of Instructor required. Not to be taken for credit with EE 663 or SE 662.


ICS 557: Advanced Machine Learning Syllabus  (3-0-3)

Linear and logistic regression. Regularization. Generalized linear models. Learning theory. Support vector machines. Kernel methods. Principal component analysis. Independent component analysis. Hidden Markov models. Random forests. Design of learning systems. Recommender systems. Online Learning. Ensemble learning models. Bootstrapping techniques.
Note: Prerequisite is ICS 485 OR Consent of Instructor.
Prerequisite: 


ICS 558: Introduction to Bioinformatics and Biomedicine Syllabus  (3-0-3)

This course offers an introduction to bioinformatics with an emphasis on biomedical aspects. Topics include bioinformatics databases, sequence alignments, protein domains, protein-protein interaction, gene expression, gene ontology, pathways, disease state analysis, and computational methods in biomedicine.​  
Note: Consent of Instructor required.


ICS 582: Natural Language Processing Syllabus (3-0-3)

Components of a natural languages processing system. Natural language models:  Mathematical, psychological. Lexical, syntactic, and semantic analysis. Phrase-structured grammars. Transformational grammars. Transition networks. Semantic networks. Conceptual parsing Conceptual dependency. Systemic and case grammars. Scripts, plans and goals. Knowledge representation. Sentence generation. Recent trends.​
Note: Prerequisite is ICS 381 or equivalent.
Prerequisite: 


ICS 583: Pattern Recognition Syllabus (3-0-3)

Various methods of pattern recognition, extraction methods, statistical classification, minmax procedures, maximum likelihood decisions, data structures for pattern recognition, case studies.  
Note: Consent of Instructor required.


ICS 611: Combinatorial, Approximation, and Probabilistic Algorithms Syllabus  (3-0-3)

Representation and generation of combinatorial objects, Graph algorithms, Greedy method and the theory of matroids. Graph matching and applications. Network flows and applications. Approximation algorithms to combinatorial problems like scheduling, bin-packing, knapsack, vertex cover, TSP, clique partitioning, graph compression, Steiner problem on networks. Randomized algorithms: Monte-Carlo, Las-Vegas, algorithms, occupancy problems, randomized sorting and pattern matching, Markov chains and random walks.
Note: Prerequisite is ICS 553 or Consent of Instructor.
Prerequisite: 


ICS 614: Advanced Pattern Recognition Syllabus  (3-0-3)

The course covers advanced topics in pattern recognition and machine learning. Recent conference and journal papers will be discussed in depth. Tentative topics: Classification and discriminant analysis, feature generation using transformations. Feature selection, data transformation and dimensionality reduction, Classifier evaluation, Kernel methods, error rate estimation techniques and performance evaluation. Actual topics covered will depend on time available and students’ interests.
Note: Prerequisite is ICS 583 or equivalent.
Prerequisite: 


ICS 615: Advanced Computer Vision Syllabus  (3-0-3)

This course intends to provide an in-depth overview of the current state-ofthe-art of computer vision by covering a set of advanced topics that are actively investigated. Recent conference and journal papers will be discussed in depth. Tentative topics: Low level vision: Image Segmentation, Stereo, Optical flow, de-noising and texture analysis; Higher level vision: Object Detection and Recognition/Pose Estimation; geometrical and 3D vision, stereo, 3D scene reconstruction, motion analysis, visual tracking, object recognition and human motion analysis, capturing and recognition. Actual topics covered will depend on time available and students’ interests.
Note: Prerequisite is ICS 547 or Consent of Instructor.
Prerequisite: 


AREA B: SYSTEMS AND LANGUAGES


ICS 531: Advanced Operating Systems Syllabus (3-0-3)

Advanced concepts in operating systems design; multiprocessing model, interprocess communication; synchronization mechanisms; resource management and sharing; scheduling in multiprocessor system; Process migration; Operating system-level virtualization; Special-purpose operating systems: Real-time, Distributed and network operating systems; Distributed deadlock handelling; Distributed file system; Distributed shared memory; Replication & consistency; In addition, students will be exposed to recent developments in operating systems through research projects and papers.
Note: Prerequisite is Consent of Instructor.


ICS 532: Performance Analysis and Evaluation Syllabus (3-0-3)

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).
Note: This course is equivalent to COE 587. Prerequisite is STAT 319 or equivalent.
Prerequisite: 


ICS 533: Modeling and Simulation of Computing Systems Syllabus (3-0-3)

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).
Note: This course is equivalent to COE 588. Prerequisite is STAT 319 or equivalent.
Prerequisite: 


ICS 535: Theory and Design of Programming Languages Syllabus (3-0-3)

Fundamentals of type systems, type inference, control structures, and storage management. Formal syntax specification. Semantic specification models: axiomatic, operational and denotational. Project(s) to design a programming language.
Note: Prerequisite is ICS 410 or equivalent.
Prerequisite: 


ICS 541: Database Design and Implementation Syllabus (3-0-3)

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).
Note: Prerequisite is ICS 324 or equivalent.
Prerequisite: 


ICS 630: Distributed Systems Syllabus (3-0-3)

Taxonomy of distributed systems: Client-server, cluster systems, Grid systems, P2P systems, cloud systems, volunteer-based systems. Distributed systems service models. Modeling, performance, scalability, elasticity and trust/reputation issues in distributed systems. Project(s).
Note: Prerequisite is ICS 531 or Consent of Instructor.
Prerequisite: 


ICS 633: Semantics of Programming Languages Syllabus (3-0-3)

Formal methods for the description of programming languages. Advanced semantics models, attribute grammar, two-level grammars, fixed-point theory of computation, Program verification techniques.
Note: Prerequisite is ICS 535 or Consent of Instructor.
Prerequisite: 


AREA C: SECURITY AND NET-CENTRIC COMPUTING


ICS 555: Crytography and Data Security Syllabus (3-0-3)

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.
Note: Prerequisite is Consent of Instructor.


ICS 570: Computer Communication Networks Syllabus (3-0-3)

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.
Note: This course is equivalent to COE 540 or EE 674. Prerequisite is ICS 343 or equivalent.
Prerequisite: 


ICS 571: Client Server Programming Syllabus (3-0-3)

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).
Note: Prerequisite is (ICS 570 and ICS 431) or Consent of Instructor.
Prerequisite: 


ICS 572: Distributed Computing Syllabus (3-0-3)

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).
Note: Prerequisite is (ICS 570 and ICS 431) or Consent of Instructor.
Prerequisite: 


ICS 573: High Performance Computing Syllabus (3-0-3)

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).
Note: Prerequisite is (ICS 353 or Equivalent) or Consent of Instructor.
Prerequisite: 


ICS 575: Application Development for Internet Based Services Syllabus (3-0-3)

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


ICS 576: Concurrent and Parallel Processing Syllabus (3-0-3)

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). 
Note: Prerequisite is ICS 431 or equivalent.
Prerequisite: 


COE 541: Local and Metropolitan Area Networks Syllabus  (3-0-3)

Protocols and Network Architectures. Various Technologies for Local and Metropolitan Area Networks (LANs and MANs). Classes of LANs and MANs. LAN and MAN design issues and Standards. LAN and MAN performance modeling and analysis. Internetworking. Examples of LANs and MANs. Case studies. Emerging LAN/MAN technologies.
Note: Prerequisite is COE 540 or Consent of Instructor.
Prerequisite: 


COE 542: High-Speed Networks Syllabus  (3-0-3)

Protocols and Network Architecture. Local high speed networks. Broadband Metropolitan and Wide Area Networks. Impact of high speed on communication protocols and networks. Fiber optic networks. Design and performance issues of high speed networks. Standard high speed protocols and networks. Examples of high speed networks.  Case studies. Emerging technologies for high speed networks.
Note: Prerequisite is COE 540 or Consent of Instructor.
Prerequisite: 


COE 543: Mobile Computing and Wireless Networks Syllabus  (3-0-3)

Introduction to mobile computing and wireless networks. Designing computer networks to support computer mobility. Wireless network architecture and ad-hoc networks. Mobility standards, e.g. mobile IP. Mobility systems issues (e.g. performance &bandwidth). Quality of Service guarantees, reliability, and security in mobile computing environment. Access protocols for wireless networks.
Note: Prerequisite is COE 540 or Consent of Instructor.
Prerequisite: 


CNW 550: Computer Network Design Syllabus  (3-0-3)

Types of computer networks: LANs, VLANs, and WANs. Routing algorithms and routing protocols. The network development life cycle. Network analysis and design methodology. Network design issues: Manageability; Node placement and sizing; Link topology and sizing; Routing; Reliability. Data in support of network design. Structured enterprise network design. Hierarchical tree network design: Terminal assignment; Concentrator location. Mesh topology optimization. Traffic flow analysis. Analysis of loss and delay in networks. Network reliability issues.​
Note: Prerequisite is (COE 540 and (ICS 353 or equivalent)) or Consent of Instructor.
Prerequisite: 


CNW 554: Modeling and Analysis of Computer Networks Syllabus  (3-0-3)

Modeling. General concepts. Performance measures. Performance evaluation techniques. Model Validation. Introduction to Queuing Networks and StochasticProcesses. Simulation. The modeling cycle. Queuing network modeling. Flow analysis. Bottleneck analysis. Hierarchical modeling. Introduction to Analysis driven Design. Case studies with applications to different aspects of computer network systems.​
Note: Prerequisite is COE 540 or Consent of Instructor.
Prerequisite: 


CNW 555: Protocol Engineering Syllabus  (3-0-3)

Protocols and languages. Protocol structure. Structured protocol design. Fundamentals of Protocol Engineering. Specification and modeling. State Machines and Reachability Analysis. Formulation of desirable properties of protocols. Formal Logic and Deduction. Verification techniques. Formal description languages. Protocol synthesis. Protocol Design. Validation and conformance testing. Computer aided design tools for protocol engineering (simulation and validation tools). A major project involving comprehensive design and verification of a non-trivial protocol.​
Note: Prerequisite is (COE 540 and (ICS 253 or Equivalent)) or Consent of Instructor.
Prerequisite: 


SEC 511: Principles of Information Assurance and Security Syllabus  (3-0-3)

Introduction to security and information assurance. Information confidentiality, availability, protection, and integrity. Security systems lifecycle. Risks, attacks, and the need for security. Legal, ethical, and professional issues in information security. Risk management including identification and assessment. Security technologies and tools. Security laws, audit and control. Cryptography foundations, algorithms and applications. Physical security, security and personnel, security implementation and management. Securing critical infrastructure. Trust and security in collaborative environments.
Eligibility Requirements: Graduate Standing


SEC 521: Network Security Syllabus  (3-0-3)

Network infrastructure security issues, including perimeter security defences, firewalls, virtual private networks, intrusion detection systems, wireless security, and network security auditing tools. Secure network applications. Network security protocols such as SSL, SSL/TLS, SSH, Kerberos, IPSec, IKE. Network threats and countermeasures. Network auditing and scanning. VoIP Security. Remote exploitation and penetration techniques. Network support for securing critical infrastructure. Design and development of software-based network security modules and tools based on hands-on experiences and state-of-the-art technologies.
Note: SEC 521 cannot be taken for credit with CSE 551.
Prerequisite: 


SEC 524: Computer and Network Forensics Syllabus  (3-0-3)

Methodical approaches for collecting and preserving evidence of computer crimes, laws/regulation, and industry standards. Hands-on experience on identifying, analyzing, recreating, and addressing cyber based crimes. Ethical issues associated with information systems security. Foundational concepts such as file system structures, MAC times, and network protocols. Use of tools for evidence recovery. Use of established forensic methods in the handling of electronic evidence. Rigorous audit/logging and date archival practices. Prevention, detection, apprehension, and prosecution of security violators and cyber criminals, and general legal issues.
Prerequisite: 


SEC 528: Security in Wireless Networks Syllabus  (3-0-3)

Security of wireless networks such as cellular networks, wireless LANs, mobile ad hoc networks, wireless mesh networks, and sensor networks. Overview of wireless networks. Study of threats and types of attacks, including attacks on MAC protocols. Selfish and malicious behavior in wireless routing protocols. Countermeasures/solutions and their limitations. Encryption and authentication. Secure hand-off techniques. Energy-aware security mechanisms. Secure multicasting. Key pre-distribution and management in wireless networks.
Prerequisite: 


SEC 531: Secure Software Syllabus  (3-0-3)

Software security development lifecycle including security requirements analysis, design, coding, review, and testing. Construction of secure and safe C/Unix programs. Vulnerabilities in C source code. Stack and heap buffer overflows. Overview of secure web application development with consideration for SQL injection, cookies, and forceful browsing. Techniques for software protection, such as code obfuscation, tamper-proofing, and water-marking. Analysis of software based attacks and defenses, timing attacks and leakage of information. Type safety and capability systems. Numerous hands-on exercises and projects on writing secure code and unbreakable code and other related topics.
Note: Equivalent to SWE 531.
Eligibility Requirements: Graduate Standing


SEC 534: Database Security Syllabus  (3-0-3)

Study of database security and auditing issues, challenges and protection methods. A review of relational and object database concepts. Database security and auditing issues. Authentication methods. Authorization based on privileges, roles, profiles, and resource limitations, and role-based authorization constraints. A study of access control mechanisms for current DBMSs, content-based and fine-grained access control, access control systems for object-based design and XML. Data confidentiality and privacy for databases. Secure statistical databases. Integrating databases and applications security. Database security protection via inference detection. Security implementation and administration, with applications to ecommerce, and emerging research in database security.
Prerequisite: 


SEC 536: Web Application Security Syllabus  (3-0-3)

Web applications security requirements, threats and countermeasures. Contemporary web application vulnerabilities and exploitation techniques, based on the Open Web Application Security Project (OWASP). Web defacement and server penetration techniques. Content-based attacks and effective countermeasures. Intellectual property protection and watermarking. Auditing and scanning Web applications and infrastructure for security weaknesses. Analysis of Web applications for key vulnerabilities and attacks. Security mechanisms and protocols and their roles in securing Web applications. Secure Web programming mechanisms in ASP.NET, Java, PHP, XML and SQL. Secure Web applications for e-commerce, e-banking and e-government transactions. Numerous hands-on exercises and projects on using tools and writing secure Web applications.
Prerequisite: 


SEC 538: Trusted Computing Syllabus  (3-0-3)

A comprehensive overview of trusted computing technology and its applications, TPM chips, secure boot, attestation, DRM, sealed storage, nature of trust, methods for characterizing, establishing, and attesting trust of a system. Trusted Virtualization. Operating system and hardware support for TC. Key management. Code signing. Identity management. Implications of certification. Trusted Mobile Platforms. Trust negotiation, transitive trust, trust evaluation and reputation systems. Trust computing architectures and modeling. Trust computing in P2P and cloud computing paradigms. Design and development of software applications and components to utilize trust computing for protecting information providers and end users.
Prerequisite: 


SEC 544: Biometric Systems Syllabus  (3-0-3)

Theory of signal processing, especially image and sound processing, for purposes of biometric system design. An introduction to basic methods and techniques for the study of authentication based on static biometric features such as fingerprints, hand geometry, facial features, thermograms, iris and retina, voice, and handwriting. Study of recognition based on dynamic features including lip movements, typing, and gait, study of standards and applications of biometry.​
Eligibility Requirements: Graduate Standing


SEC 546: Embedded Systems Security Syllabus  (3-0-3)

Study of various security models and techniques for embedded systems both from a hardware as well as a software perspective. Smart card security. RFID attack models (including power analysis, side channel, and timing attacks), and security techniques. Security in wireless sensor networks (key management techniques, attack models, detection and prevention techniques). eHealth (embedded medical systems) security. Cryptographic hardware. Industrial control systems (SCADA). Physical hardware. Security for System-on-chip, and Internet-devices such as Internet thermostats and automated doors.
Eligibility Requirements: Graduate Standing


SEC 548: Watermarking and Steganography Syllabus  (3-0-3)

Study of enabling technologies for digital watermarking and steganography including the history of information hiding, basic principles and techniques such as still images, video, and 3-D video objects, and their applicability to owner authentication, content authentication, information embedding and communication with side information. Evaluation and benchmarking of watermarking and steganography mechanisms. Study of malicious attacks inclusive of bit rate limitation, counterfeiting marks and removal attacks. Overview of attempts to formalize watermarking. Steganography vs. watermarking. Applications of steganography. software for steganography, and steganalysis techniques.
Eligibility Requirements: Graduate Standing


SEC 595: Special Topics in Information Assurance and Security Syllabus  (3-0-3)

Advanced topics selected from current journals of Information Assurance & Security and that deal with theoretical development or applications in the field.
Eligibility Requirements: Graduate Standing


ICS 654: Advanced Topics in Computer Networking Syllabus  (3-0-3)

This course explores recent research trends and developments in computer networks and their applications covering state-of-the-art topics and case studies.
Note: Prerequisite is ICS 570 or equivalent.
Prerequisite: 


AREA D: SOFTWARE ENGINEERING



SWE 515: Software Requirements Engineering Syllabus  (3-0-3)

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.
Note: SWE 515 cannot be taken for credit with ICS 512.


SWE 516: Software Design Syllabus  (3-0-3)

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 object-oriented 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.
Note: SWE 516 cannot be taken for credit with ICS 513.


SWE 526: Software Testing and Quality Assurance Syllabus  (3-0-3)

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.
Note: SWE 526 cannot be taken for credit with ICS 514.


SWE 531: Secure Software Syllabus  (3-0-3)

Software security development lifecycle including security requirements analysis, design, coding, review, and testing. Construction of secure and safe C/Unix programs. Vulnerabilities in C source code. Stack and heap buffer overflows. Overview of secure web application development with consideration for SQL injection, cookies, and forceful browsing. Techniques for software protection, such as code obfuscation, tamper-proofing, and water-marking. Analysis of software based attacks and defenses, timing attacks and leakage of information. Type safety and capability systems.
Note: Equivalent to SEC 531.


SWE 532: Web Application Security Syllabus  (3-0-3)

Study of contemporary web application vulnerabilities, based on the OWASP (Open Web Application Security Project). Study of exploitation techniques for server and client web applications, and techniques that lead to web defacement and server penetration. Auditing and scanning web applications and servers for security weaknesses and vulnerabilities. Contemporary attack scenarios exploiting web vulnerabilities such as cross-site scripting, SQL injection, cookies, and forceful browsing. Content-based attacks and effective countermeasures. Secure programming for the following technologies: .NET, ASP.NET, ActiveX, JAVA, Secure Sockets, and XML, and a study of web security protocols such as SSL and HTTPS.


SWE 536: Software Architecture Syllabus  (3-0-3)

Advanced principles, methods and best practices in building software architecture and the architecture design process are discussed. Architectural styles and patterns are presented and compared. Software architecture analysis and evaluation methods such as ATAM and CBAM, tradeoffs among conflicting constraints in building high quality architecture are also discussed. Architecture documentation is also presented.


SWE 539: Software Metrics Syllabus  (3-0-3)

Software metrics history and current practice, basics of measurement theory for software metrics, framework for software measurement, product, application, and process metrics. The course includes introduction to foundations of measurement theory, models of software engineering measurement, software products metrics, software process metrics and measuring management.


SWE 566: Software Agents Syllabus  (3-0-3)

Agent-based programming; elements of distributed artificial intelligence; beliefs, desires and intentions; component based technology; languages for agent implementations; interface agents; information sharing and coordination; KIF; collaboration; communication; ontologies; KQML; autonomy; adaptability; security issues; mobility; standards; agent design issues and frameworks; applications in telecommunications.
Note: Consent of Instructor required.


SWE 585: Empirical Software Engineering Syllabus  (3-0-3)

The course discusses how empirical studies are carried out in software engineering. The distinction between analytical techniques and empirical techniques is reviewed. Other topics include empirical studies required in software engineering, kinds of problems that can be solved empirically, methods used to control variables and eliminate bias in empirical studies, and analysis and presentation of empirical data for decision making.


SWE 587: Software Project Management Syllabus  (3-0-3)

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.
Note: SWE 587 cannot be taken for credit with ICS 515.


SWE 595: Special Topics in Software Engineering Syllabus  (3-0-3)

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, Web Engineering or Formal Methods and Models in Software Engineering, etc.​
Note: Consent of Instructor required.


SWE 634: Real-Time and Distributed Software with Reusable Components Syllabus  (3-0-3)

Advanced object-oriented design and programming of real-time and distributed systems using C++ and/or Java. Object-oriented features: inheritance, polymorphism, templates, exception handling and Concurrency issues. Design patterns and frameworks for distributed systems, with examples from communication applications. Design issues for reusable software.
Note: Consent of Instructor required.


SWE 638: Software Maintenance and Re-Engineering Syllabus  (3-0-3)

Software evolution and reengineering approaches and abstraction techniques to extract specifications and design from existing code are discussed. Major maintenance activities are presented including estimating maintenance costs, managing change and predicting maintainability with software quality metrics. Organizational issues relative to product maintenance are discussed. Principles of reverse engineering techniques are also presented. ​
Note: Consent of Instructor required.


SWE 670: Formal Methods and Models in Software Engineering Syllabus  (3-0-3)

In-depth advanced formal mechanisms for specifying, validating, and verifying software systems. Program verification. Formal specification via algebraic specifications and abstract model specifications, including initial specification and refinement toward implementation. Integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches. Model-driven architectures. Formal methods using the Object Constraint Language (OCL).
Note: Consent of Instructor required.


SWE 671: Global Software Engineering Syllabus  (3-0-3)

Topics include: Essentials of global software engineering, Software engineering outsourcing (Onshore outsourcing, Nearshore Outsourcing, Offshore outsourcing), Outsourcing models (Simple Dyadic Outsourcing, Multi-Vendors Outsourcing, Co-Sourcing and Complex Outsourcing), Global software project management concepts, tools, and techniques, Managing virtual teams, Crosscultural collaboration, Global project leadership, Measuring organizations readiness for global software development, Software quality in global software development (CMMI, ISO 9001:2000), Global software engineering challenges, Professional practices for global software engineering Intellectual Property Rights, Group working, conflict and negotiations management, Presentations, writing and referencing)
Note: Consent of Instructor required.

COMMON COURSES


ICS 690: Special Topics in Computer Science III Syllabus  (3-0-3)

Advanced topics selected from current literature that deals with theoretical foundations and advances in computer science. The specific content of an offering of the course should focus on a specific area of computer science.​
Note: Consent of Instructor required.


ICS 691: Special Topics in Computer Science IV Syllabus  (3-0-3)

Advanced topics selected from current literature that deals with theoretical foundations and advances in computer science. The specific content of an offering of the course should focus on a specific area of computer science.​
Note: Consent of Instructor required.


ICS 699: Seminar  Syllabus  (1-0-0)

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.​
Eligibility Requirements: Graduate Standing


ICS 701: Directed Research I Syllabus  (3-0-3)

This course is intended to allow students to conduct research in advanced problems in their PhD area of specialization. Among other things, this course is designed to give the students an overview of research in computer science, and a familiarity with research methodology, journals and professional societies in his discipline. At the end of the course, the student must deliver a public seminar to present his work and findings. The course is graded on a Pass or Fail basis.
Note: Consent of Instructor required.


ICS 702: Directed Research II Syllabus  (3-0-3)

This course is intended to allow students to conduct research in advanced problems in their PhD area of specialization. Among other things, this course is designed to give the students an overview of research in computer science, and a familiarity with research methodology, journals and professional societies in his discipline. At the end of the course, the student must deliver a public seminar to present his work and findings. The course is graded on a Pass or Fail basis.
Note: Consent of Instructor required.


ICS 711: PhD Pre-Dissertation  Syllabus  (0-0-3)

This course enables the student to submit his PhD Dissertation Proposal and defends and defends it in public. The student passes the course if the PhD Dissertation committee accepts the submitted dissertation proposal report and upon successfully passing the Dissertation proposal public defense. The course grade can be NP, NF, or IP.​
Eligibility Requirements: PhD candidacy
Co-requisite:: ICS 699: Seminar


ICS 712: PhD Dissertation  Syllabus (0-0-9)

This course enables the student work on his PhD Dissertation as per submitted dissertation proposal, submit its final report and defend it in public. The student passes this course if the PhD Dissertation committee accepts the submitted final dissertation report and upon successfully passing the Dissertation public defense. The course grade can be NP, NF, or IP.​
Prerequisite: 

Program Features Course and Admission Requirements ​Degree Comprehensive Examination Program Objectives and Student Outcomes​ Degree Plan Course List