Sign In
 

 Complete List Of Offered Courses

ICS 104:  Introduction to Programming in Python and C (2-3-3)
Overview of computer hardware and software. Programming in Python with emphasis on basic program constructs: variables, assignments, expressions, decision structures, looping, functions, lists, files and exceptions; Introduction to objects and classes. Programming in C with emphasis on pointers and functions with output parameters. Simple multidisciplinary problem solving in science, engineering and business.
PrerequisitesNone

ICS 108: Object-Oriented Programming (3-3-4)
Review of object-oriented concepts; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Greedy Algorithms; Hash tables; Applications of data structures (e.g. data compression and string matching).
PrerequisitesICS 104

ICS 202: Data Structures and Algorithms (3-3-4)
Advanced object-oriented programming; Inheritance; Polymorphism; Abstract classes and interfaces; Generic and collection classes; File input and output; Exception handling; GUI and event-driven programming; Recursion; Searching and sorting. 
PrerequisitesICS 108

ICS 253: Discrete Structures (3-0-3)
Propositional Logic, Propositional Equivalence, Predicates and Quantifiers, Nested Quantifiers, Rules of Inference, Introduction to Proofs; Sets, Set Operations, Functions, Sequences and Summations; Mathematical Induction, Strong Induction, Recursive Definitions and Structural Induction; Basics of Counting, Pigeonhole Principle, Permutations and Combinations, Binomial Coefficients, Discrete Probability, Probability Theory; Recurrence Relations, Solving Linear Recurrence Relations, Generating Functions, Inclusion-Exclusion.
PrerequisitesICS 104

ICS 321: Database Systems (3-0-3)
Basic database concepts; Conceptual data modeling; Relational data model; Relational theory and languages; Database design; SQL; Introduction to query processing and optimization; Introduction to concurrency and recovery. 
PrerequisitesICS 202

ICS 343: Fundamentals of Computer Networks (3-3-4)
Introduction to computer networks and layered architectures: Connectivity, topology, circuit and packet switching, TCP/IP and ISO models; Application layer: C/S model, DNS, SMTP, FTP, WWW; Transport layer: TCP and UDP, ARQ, congestion and flow control; Network layer: Internetworking, addressing and routing algorithms and protocols; Data link layer: Framing, error detection and correction, medium access control and LANs; Physical layer: Principles of data communications, circuit switching, encoding, multiplexing and transmission media; Introduction to network security. 
Note: This course cannot be taken for credit with COE 344.
PrerequisitesICS 108

ICS 344: Information Security (3-0-3)
Security properties; Confidentiality, integrity, authentication, non-repudiation; Attack vectors, malicious software and countermeasures; Risk management and analysis; Security mechanisms; Secure software development; Defensive programming; Input sanitization; Symmetric and public-key cryptography; User authentication and access control; Internet security: Email and web security, network security protocols and standards such as IPSec and SSL/TLS; Security technologies and systems: Firewalls, VPNs and IDSs/IPSs; Information security process, ethical and legal issues
PrerequisitesICS 343 or COE 344

ICS 353: Design and Analysis of Algorithms (3-0-3)
Basic algorithmic analysis; Analysis of iterative and recursive algorithms; Advanced algorithmic design techniques (induction, divide and conquer, dynamic programming, backtracking); The complexity classes P and NP; Basic computability; Parallel algorithms
PrerequisitesICS 202, ICS 253 

ICS 355: Theory of Computing (3-0-3)
Regular grammars: Equivalence of DFA, NDFA and regular expressions, pumping lemma, emptiness and membership; Context-Free Grammars: parsing and ambiguity, normal forms, applications, equivalence of PDA's and CFG's, pumping lemma, emptiness and membership; Turing machines: Programming techniques for Turing machines, universal Turing- June 2009 CS Student Guide Page 17 of 19 machine; Undecidability: Recursively enumerable and recursive languages, undecidability, problem reduction, undecidable problems of CFG's, RE's and TM's.
PrerequisitesICS 253

ICS 381: Principles of Artificial Intelligence (3-0-3)
AI history and applications; Intelligent agents and expert systems; Introduction to AI programming; Problem solving agents by uninformed, heuristic and local search; Constraint satisfaction and programming, games and adversarial search; Knowledge-based agents: Propositional and first-order logic, Forward and backward chaining and inference; Planning and reasoning in uncertain situations; Basics of machine learning; Natural language processing; Exposure to other applications of AI (e.g. Vision and Robotics)
Co-requisites: STAT 319
PrerequisitesICS 253

ICS 398: Internship (0-0-6)
A continuous period of 16 weeks spent as a normal “new” employee in industry, business, or government agencies with the purpose of familiarizing students with the real world of work and enabling them to integrate their learning to a real work environment. During this period, a student is exposed to a real-life work in the field and work as a normal employee. Each student is required to participate with at least one project. Students are required to submit progress reports during the work period. Students are also required to give a presentation and submit a final report on their experience and the knowledge they gained during their work.
PrerequisitesENGL 214, ICS 321, SWE 206, SWE 363, Completion of at least 85 hours, Major and Cumulative GPA of at least 2.0.

ICS 399: Summer Training (0-0-0)
A continuous period of 8 weeks spent as a normal employee in industry, business, or government agencies with the purpose of familiarizing students with the real world of work and enabling them to integrate their classroom learning to a real work environment. During this period, a student is exposed to a real-life work in the field. Students are required to submit progress reports during the work period. Students are also required to give a presentation and submit a final report on their experience and the knowledge they gained during their Training.
PrerequisitesENGL 214, ICS 321, SWE 206, SWE 363, Completion of at least 85 hours, Major and Cumulative GPA of at least 2.0

ICS 410: Programming Languages (3-0-3)
Programming paradigms: Object-oriented, imperative, functional, and logic; Application development in these paradigms; Fundamentals of Language Design: Syntax and semantics; Language implementation: virtual machines; Compilation, interpretation, and hybrid.
PrerequisitesICS 202

ICS 411: Senior Project (1-6-3)
Project-oriented course in which students work in teams on an applied real-world problem of their interest, go through its software development lifecycle in order to develop a prototype software solution for the problem at hand. The senior project offers the opportunity to integrate the knowledge acquired in preceding courses, as well as promote and instill communication skills, writing skills, and lifelong self-learning. 
PrerequisitesICS 398 or ICS 399 

ICS 412: Compiler Construction Techniques (3-0-3)
Compiler techniques and methodology; Organization of compilers; Lexical and syntax analysis; Parsing techniques; Object code generation and optimization, detection and recovery from errors; Contrast between compilers and interpreters.
PrerequisitesICS 202, ICS 253

ICS 415: Computer Graphics (3-0-3)
Applications of computer graphics; Graphics systems and devices; Output primitives and their attributes; Geometric transformations; Window to viewport mapping and clipping; Curves and surfaces; Three-dimensional viewing; Hidden surface removal; illumination and color models; Animation.
PrerequisitesICS 202

ICS 424: Advanced Database Systems (3-0-3)
Data preprocessing, data warehousing and OLAP; Security, transaction processing, concurrency control techniques, and backup and recovery of relational databases; Introduction to non-relational database systems such as NoSQL and NewSQL databases.
PrerequisitesICS 321

ICS 433: Operating Systems (3-1-3)
History and evolution of operating systems; Types of operating systems; Operating system structures; Process management: processes, threads, CPU scheduling, process synchronization; Memory management and virtual memory; File systems; I/O systems; Security and protection; Distributed systems; Case studies.
PrerequisitesCOE 233 or COE 301

ICS 437: Distributed Systems (3-0-3)
Introduction to distributed systems; Distributed systems architecture; Computer networks for distributed systems; Distributed objects and remote invocation; Distributed naming; Distributed file systems; Security and synchronization in distributed systems; Distributed coordination and agreement; Distributed transactions; Distributed replication; Distributed multimedia systems, distributed shared memory; Case studies.
Note: It cannot be taken for credit with COE 423.
PrerequisitesICS 343 or COE 344 

ICS 440: Cryptography and Blockchain Applications (3-0-3)
Secret key encryption; Block and stream ciphers, Encryption standards; Number theory: Divisibility, Modular arithmetic, Group theory and Finite fields; Public key encryption: RSA, ElGamal and Rabin cryptosystems; Diffie-Hellman key exchange; Cryptographically secure hashing; Authentication and digital signatures; Digital signature standard (DSS), Randomized encryption; Cryptocurrency, Blockchain models and applications. Security issues and their solutions in Blockchain models and applications. Blockchain payment networks.
PrerequisitesMATH 208 and STAT 319

ICS 441 Digital Forensics Techniques (3-0-3)
Major phases of digital investigation; Data acquisition of physical storage devices; Study of file systems with a main focus on Microsoft Windows and Linux systems; File system analysis and file recovery; File carving and document analysis; Information hiding and steganography; Time, registry and password recovery; Email and database forensics; Memory acquisition.
PrerequisitesICS 253 or Consent of Instructor

ICS 442: Penetration Testing and Ethical Hacking (3-0-3)
Introduction to penetration testing and ethical hacking, requirements and legal issues, setting up virtual lab; Exploring Kali Linux and Metasploit framework, hacking and penetration testing phases; Information gathering through passive and active reconnaissance, footprinting, social engineering, port scanning; Advanced fuzzing techniques; Exploitation, password attacks and gaining access to remote services; Web penetration testing and web-based exploitation; Maintaining access with backdoors and rootkits; Bypassing defense applications; Wireless and mobile device hacking techniques; Writing penetration testing report; Tools and programming available for penetration testers in both Windows and Linux platforms such as Kali Linux, OpenVAS, Burp, NMAP, Netcat, Python, etc
PrerequisitesICS 343 or COE 344 or COE 353

ICS 443: Network Design & Management (3-0-3)
Overview of network design and management; Design methodologies; Network management strategies; Network configuration management; Network management protocols: SNMP, and RMON; Network management tools and systems; Network management applications; Desktop and web-based network management; Network troubleshooting.
Note: This course cannot be taken for credit with COE 444.
PrerequisitesICS 343 or COE 344

ICS 446: Cluster Computing (3-0-3)
Introduction to high performance computing: Types of parallel computers, system architectures and performance measures; Message passing programming; Complexity analysis of parallel algorithms; Embarrassingly parallel computations; Partitioning and divide-and-conquer strategies; Pipelined computations; Synchronous computations; Load balancing and termination detection; Programming with shared memory; Parallel sorting algorithms; Numerical algorithms; Parallel image processing; Searching and optimization.
Note: It cannot be taken for credit with COE 420.
PrerequisitesICS 202 and Junior Standing 

ICS 447: Computer Network Technologies (3-0-3)
Performance measures and evaluation techniques; Advanced network architectures and differentiated services in IP networks; Switched, fast and gigabit Ethernet; VLANs; Wireless LANs; ISDN and ATM; Frame relay; Mobile computing and mobile IP; VPN and enterprise networks; Emerging network trends and technologies.
Note: It cannot be taken for credit with COE 446.
PrerequisitesICS 343 or COE 344

ICS 448: Network and Security Administration (2-3-3) 
Installing, configuring, securing, and administering network services. Assessing tools for improving data/service protection; Securing remote and local network infrastructures; DNS servers, web servers, network file sharing, and other common network communication components; Practical experience through hands-on lab exercises.
PrerequisitesICS 344 or Consent of Instructor

ICS 471: Artificial Neural Networks and Deep Learning (3-0-3)
The course will review linear models and stochastic optimization. It will develop an in-depth understanding of Feedforward networks, Loss functions, Back-propagation training, Regularization, Convolutional neural networks, Recurrent and recursive networks, Vanishing gradient problem, Long-short term memory (LSTM) model, Gated recurrent units (GRUs), Processing sequences, images, and hierarchical structures, Auto-encoders, Transfer learning, and Generative adversarial networks. The course will develop models for several domain problems such as automatic speech recognition, image recognition, drug discovery, and recommendation systems, etc.
PrerequisitesCOE 292 and MATH 208 and STAT 319

ICS 472: Natural Language Processing (3-0-3)
Foundations of natural language processing (NLP); Different algorithms and techniques for NLP: Word-level, syntactic, and semantic; Quantitative NLP using large corpora, statistical models for acquisition, disambiguation, parsing and the construction of representative systems.
PrerequisitesICS 381 or Consent of Instructor

ICS 473: Bioinformatics Mining and Algorithms (3-0-3)
Foundations of bioinformatics; Sequence alignment; Sequence motifs/patterns; Protein structures prediction; Microarray data analysis; Biological networks modeling and mining.
Prerequisites[ICS 202 and ICS 381] or Consent of Instructor

ICS 474: Big Data Analytics (3-0-3)
Foundations of data mining and big-data analytics; Statistical analysis of very large datasets that do not fit on a single computer; Popular tools for analyzing big data (e.g., Apache Hadoop, Apache Spark, and TensorFlow); Real-world applications of big-data analytics in multiple domains.
Prerequisites[ICS 321 and ICS 381] or Consent of Instructor

ICS 483: Computer Vision (3-0-3)
Image acquisition, Digital image and its properties, Image preprocessing, Segmentation (Thresholding, edge- and regionbased segmentation), Morphological image processing. Image feature extraction. Bag of words. Image segmentation. Object detection and classification. Shape analysis. Feature tracking. Motion analysis. Case studies (object recognition / object tracking).
Note: It cannot be taken for credit with COE 487 or EE 410.
PrerequisitesSenior Standing

ICS 484: Arabic Computing (3-0-3)
Arabic language characteristics; Arabic character sets; Standardization; Unicode; Arabization systems; Arabic software tools; Arabic programming languages and introduction to Arabic computations.
PrerequisitesICS 108 or Consent of Instructor

ICS 485 Machine Learning (3-0-3) 
This course provides a thorough grounding in a wide range of machine learning methods, for classification, regression, conditional probability estimation, clustering, and dimensionality reduction. It provides the students with the essential foundations of machine learning and their applications to real world problems.
PrerequisitesCOE 292 and MATH 208 and STAT 319

ICS 486: Agent-Based Systems and Swarm Intelligence (3-0-3)
Fundamental concepts and models of multi-agent systems (MAS) and their characteristics; Models of agency; Architectures and languages; Logics for MAS; Deductive and practical reasoning agents; Reactive and hybrid agents; Coordination, negotiation and coalition mechanisms; Learning in MAS; Agent and swarm-based models to solve an optimization problem using PSO, Ants, and GA; Implementing agent and swarm-based applications (e.g. in electronic commerce, semantic Web agents, and information retrieval).
PrerequisitesICS 381

ICS 488: Knowledge Based System and Soft Computing (3-0-3)
Introduction to knowledge and soft computing based systems; Handling imprecision and uncertainty; Probabilistic reasoning and rough sets; Structured approach to fuzzy reasoning; Machine learning and neuro computing; Evolutionary computation and genetic algorithms; Immunological computing; Hybrid computational intelligence methods; Neuro-fuzzy June 2009 CS Student Guide Page 20 of 19 inference systems; Combination of genetic algorithms with neural networks; Combination of genetic algorithms with fuzzy based systems; Applications to real life applications for building expert systems and pattern recognition.
Prerequisites: ICS 381

ICS 489: Applications of Machine Learning (3-0-3)
This is a multidisciplinary course that covers applications of artificial intelligence (AI) and machine learning (ML) in different domains. Students will use the knowledge earned from AI & ML concentration courses to develop industryrelevant solutions on electrical engineering, computer linguistics, embedded systems, and health domains. Students will work on several programming assignments and mini projects in signal processing, natural language processing and medical imaging. In addition, students will learn how to implement energy-efficient, real-time ML-based solutions.
PrerequisitesICS 485

ICS 490: Special Topics I (3-0-3)
State-of-the-art topics in Computer Science and Information Systems.
PrerequisitesSenior Standing

ICS 491: Special Topics II (3-0-3)
State-of-the-art topics in Computer Science and Information Systems.
PrerequisitesSenior Standing

ICS 497: Directed Undergraduate Research (3-0-3) 
The course introduces students to research. Explains the differences between different publications channels like conferences, journals, books, and book chapters. Introduces students to metrics like impact factor and H-index. Teaches how to search and locate relevant literature on a given research topic. Introduces students to research methodology, experimentation design, and ways to conduct experiments and report the results. It also teaches students on how to prepare a research article.
PrerequisitesConsent of Instructor

SWE 206 Introduction to Software Engineering (2-3-3)
Introduction to software engineering discipline, software process, requirements analysis and design models. Understanding of ethical and professional issues of software engineering discipline
PrerequisitesICS 108 

SWE 216 Requirements Engineering (3-0-3)
Requirements engineering process. Methods, tools, and techniques for eliciting, organizing and documenting software requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements documentation standards. Traceability. Requirements management. Handling requirements changes. Capturing usability requirements and developing UI prototypes based on requirements. Students participate in a group project on software requirements.
PrerequisitesSWE 206

SWE 302 Game Programming (3-0-3)
Introduction to games; Game programming principles; Game development engines: PyGame and Unity3D; Game data structures; Game intelligence; Simulation; Graphics and animation; Collision detection; Strategy games; Action games; Games research; Application of games to other domains.
PrerequisitesSWE 206

SWE 316 Software Design and Construction (3-0-3)
Study of design concepts and notations. Architecture, construction, and design patterns. Designing for different qualities criteria. Design evolution processes and activities.
PrerequisitesSWE 206

SWE 321 Formal Methods and Models in Software Engineering (3-0-3)
Mathematical foundations for formal methods. Formal languages and techniques for specification and design, including specifying syntax using grammars and finite state machines. Analysis and verification of specifications and designs. Use of assertions and proofs. Automated program and design transformation.
PrerequisitesICS 202 and ICS 253

SWE 326 Software Testing (3-0-3)
Practical ways to design high quality tests during all phases of software development. Test Planning. Test design. Test coverage criteria. Test automation. Concept of static analysis. Reviews. Walkthroughs. Inspections. Students participate in a group project on software.
PrerequisitesSWE 216

SWE 363 Web Engineering and Development (3-0-3)
Fundamentals of web and mobile applications and how they impact people’s lives; Building responsive front-end web and mobile apps; Back-end programming of dynamic and data-driven websites; Development frameworks for web and mobile apps; Security issues of web applications; Practical applications to real-world problems.
PrerequisitesJunior Standing

SWE 387 Software Project Management (3-0-3) 
Introduction to project management concepts, managing time, cost, change, risk, quality, communication and people; development and management standards and managing software development projects.
PrerequisitesJunior Standing

SWE 399 Summer Training (0-0-0)
A summer period of 8 weeks spent as a trainee in industry, business, or government agencies for the purpose of familiarizing the student with the real job world and enabling him to apply and relate his academic knowledge to a real work environment. The student is required to participate in software engineering related activities and use his time to get acquainted with the software engineering related functions and resources used by his employing organization. Besides progress reports, the student is required to submit a final report and do a presentation on his experience and the knowledge he gained during his summer training program.
PrerequisitesSWE 363, ENGL 214 and Department Approval

SWE 411 Software Engineering Project I (1-6-3)
This is the first part of a two-semester senior-year capstone project. Student teams employ knowledge gained from courses throughout the program such as development of requirements, design, implementation, and quality assurance to develop a software solution to a real-world problem from conception to completion. In this part, students develop project plan and software requirements specification. Next, students’ teams can either develop complete design document or follow agile like methodology to develop design document and implementation for 30% of system features.
PrerequisitesSWE 316 and SWE 387

SWE 412 Software Engineering Project II (0-6-2)
This is the second part of a two-semester senior-year capstone project. Student teams employ knowledge gained from courses throughout the program to develop a software solution to a realworld problem from conception to completion. In this part, students review and refine documents prepared in SWE 411; finalize design, complete implementation of the application, test their code, and evaluate their final product.
PrerequisitesSWE 326 and SWE 411

SWE 416 Software Architecture (3-0-3)
Study the concepts, principles, methods, and best practices in software architecture. Different architectural styles, patterns and product lines are presented and compared. Methods to analyze, evaluate and document software architectures are also discussed. Students participate in a group project on software architecture design.
PrerequisitesSWE 316 

SWE 422 Usability Engineering (3-0-3)
Design, implement and evaluate software system interfaces with focus on usability, interaction paradigms and human computer activities. The lifecycle of an interactive human computer interface is studied from both engineering and end-user perspectives. 
PrerequisitesSWE 206

SWE 436 Object-Oriented Design Patterns (3-0-3)
A depth study of object-oriented design patterns. How design patterns solve design problems? How to select a design pattern? How to use a design pattern? Detailed study of creational patterns, structural patterns, and behavioral patterns. Case studies.
PrerequisitesSWE 316

SWE 439 Software Quality Engineering (3-0-3)
Overview of engineering foundations of software, basics of measurement theory, empirical experimentation in software engineering, software metrics and measuring software quality.
PrerequisitesSWE 316 and STAT 319

SWE 440 Information Security Management (3-0-3)
Introduction to information security management principles, management of threats to and vulnerabilities of information security, risk management, and to apply the knowledge of people and technical security controls.
PrerequisitesSenior Standing

SWE 445 Secure Software Development (3-0-3)
Security in requirements engineering; Secure designs; Risk analysis; The SQUARE Process Model; Threat modeling; Defensive coding; Software protection; Fuzzing; Static analysis and security assessment; Memory leaks, buffer and heap overflow attacks, injection attacks. 
PrerequisitesSenior Standing

SWE 463 Mobile Application Development (3-0-3) 
Comprehensive introduction to building mobile applications for devices based on Android and iOS operating systems, including use of standard integrated development environment: Android Studio and Xcode, as well as testing and debugging on devices and emulators/simulators. Topics cover programming language for iOS programming, and mobile platform APIs for user interface, graphics, networking, data, and web services 
PrerequisitesICS 108

SWE 487 Software Processes and Process Improvements. (3-0-3)
Software process models. Software process analysis. Life cycle process models and standards. Process implementation at various levels like organization, project, team, or individual. Measurement and analysis of software process. Process improvements.
PrerequisitesSWE 387

SWE 490 Special Topics I (3-0-3) 
In-depth study of a selected special topic relevant to software engineering
PrerequisitesConsent of the Instructor

SWE 491 Special Topics II (3-0-3)
In-depth study of a selected special topic relevant to software engineering
PrerequisitesConsent of the Instructor

SWE 497 Undergraduate Research (3-0-3)
The course introduces students to research. Explains the differences between different publications channels like conferences, journals, books, and book chapters. Introduces students to metrics like impact factor and H-index. Teaches how to search and locate relevant literature on a given research topic. Introduces students to research methodology, experimentation design, and ways to conduct experiments and report the results. It also teaches students on how to prepare a research article.
PrerequisitesConsent of the Instructor

ICS 531 Advanced Operating Systems (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.
PrerequisitesConsent of the Instructor

ICS 532 Performance Analysis & Evaluation (3-0-3)
Performance measures. Modeling methodologies: queuing models, graph models, dataflow models, and Pertinent 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). Equivalent to: COE 587
PrerequisitesSTAT 319 or Equivalent 

ICS 533 Modeling and Simulation of Computing Systems (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). Equivalent to: COE 588
PrerequisitesSTAT 319 or Equivalent 

ICS 535 Theory and Design of Programming Languages (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.
PrerequisitesICS 410 or Equivalent
 
ICS 541 Database Design and Implementation (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).
PrerequisitesICS 334 or Equivalent

ICS 545 Arabic Computing (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. 
PrerequisitesNone

ICS 546: Multimedia Information Management (3-0-3)
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, Multidimensional indexing algorithms and data structures. Multimedia compression. Multimedia data mining.
PrerequisitesConsent of the Instructor

ICS 547 Digital Image Processing (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.
PrerequisitesConsent of the Instructor

ICS 553: Algorithms and Complexity (3-0-3)
Computational complexity: P-space and EXP classes, Reduction, 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. 
PrerequisitesICS 353 or equivalent

ICS 555 Cryptography and Data Security (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, Group theory, Complexity Theory concepts and their applications to cryptography.
PrerequisitesConsent of the Instructor

ICS 557 Advanced Machine Learning (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.
PrerequisitesICS 485 or Consent of the Instructor

ICS 558 Introduction to Bioinformatics and Biomedicine (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.
PrerequisitesConsent of the Instructor

ICS 570 Computer Communication Network (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. 
Equivalent to: COE 540 or EE 674 
PrerequisitesICS 432 or Equivalent

ICS 571 Client Server Programming (3-0-3)
An 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).
Prerequisites(ICS 570 and ICS 431) or Consent of Instructor 

ICS 572 Distributed Computing (3-0-3)
An 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).
Prerequisites(ICS 570 and ICS 431) or Consent of Instructor 

ICS 573 High-Performance Computing (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). 
Prerequisites(ICS 353 or Equivalent) or Consent of Instructor 
 
ICS 575 Application Development for Internet Based Services (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.
PrerequisitesICS 571

ICS 576 Concurrent and Parallel processing (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).
PrerequisitesICS 431 or Equivalent

ICS 582 Natural Language Processing (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. 
PrerequisitesICS 381 or Equivalent 

ICS 583 Pattern Recognition (3-0-3)
Various methods of pattern recognition, extraction methods, statistical classification, minmax procedures, maximum likelihood decisions, data structures for pattern recognition, and case studies.
PrerequisitesConsent of the Instructor 

ICS 599 Seminar (1-0-0)
Graduate students are required to attend seminars given by faculty members, visiting scholars, and fellow graduate students. Additionally, each student must give at least a 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. 
PrerequisitesGraduate standing 

ICS 606 Independent Research (0-0-3)
This course is intended to allow the student to conduct research in advanced problems in his M.S. research area. The faculty offering the course should submit a research plan to be approved by the Graduate Program Committee at the academic department. The student is expected to deliver a public seminar and a report on his research outcomes at the end of the course. Graded on a Pass or Fail basis.
PrerequisitesPrior arrangement with an instructor

ICS 610 M.S. Thesis (1-0-0)
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. 
Prerequisites: : ICS 599 or Consent of Instructor 

ICS 611 Combinatorial, Approximation and Probabilistic Algorithms (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.
 PrerequisitesICS 553 or Consent of the Instructor

ICS 614 Advanced Pattern Recognition (3-0-3)
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. 
PrerequisitesICS 583 or equivalent 

ICS 615 Advanced Computer Vision (3-0-3)
This course intends to provide an in-depth overview of the current state-of-the-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.
PrerequisitesICS 547 or Consent of the Instructor

ICS 630 Distributed Systems (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).
PrerequisitesICS 531 or Consent of Instructor.

ICS 633 Semantics of Programming Languages (3-0-3)
Formal methods for the description of programming languages. Advanced semantics models, attribute grammar, two-level grammars, fixed-point theory of computation, and Program verification techniques.
PrerequisitesICS 535 or Consent of the Instructor

ICS 654 Advanced Topics in Computer Networking (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. 
PrerequisitesICS 570 or equivalent 

ICS 690 Special Topic in Computer Science III (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. 
PrerequisitesConsent of Instructor

ICS 691 Special Topic in Computer Science IV (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. 
PrerequisitesConsent of Instructor

ICS 699: Ph.D. Seminar (1-0-0)
Ph.D. students are required to attend Departmental seminars delivered by faculty, visiting scholars and graduate students. Additionally, each Ph.D. student should present at least one seminar on a timely research topic. Ph.D. students should pass the comprehensive examination as part of this course. The course is graded on Pass or Fail basis. IC grade is awarded if the Ph.D. Comprehensive exam is not yet passed.  
PrerequisitesGraduate Standing.

ICS 701 Directed Research I (3-0-3)
This course is intended to allow students to conduct research in advanced problems in their Ph.D. 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 Pass or Fail basis.
PrerequisitesPrior arrangement with Instructor

ICS 702 Directed Research II (3-0-3)
This course is intended to allow students to conduct research in advanced problems in their Ph.D. 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 Pass or Fail basis.
PrerequisitesPrior arrangement with Instructor

ICS 711 Ph.D. Pre-Dissertation (0-0-3)
This course enables the student to submit his Ph.D. Dissertation Proposal and defend it in public. The student passes the course if the Ph.D. 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 IC. 
PrerequisitesPh.D. Candidacy, Co-requisite: ICS 699 

ICS 712 Ph.D. Dissertation (0-0-9)
This course enables the student to work on his Ph.D. Dissertation as per submitted dissertation proposal, submit its final report and defend it in public. The student passes this course if the Ph.D. 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.
PrerequisitesICS 711

SWE 505 Principles of Software Engineering (3-0-3)
Software Requirements: Modern SRS for Enterprise Application, Software Process: Personal and Team Software Process, Traditional Software Processes and Agile Processes.  Software Design: Architecture Tradeoff Analysis and patterns. Software Project Management: project initiation, planning, executing, monitoring control and closing. Software Engineering Measurement and Analysis, Software Quality Assurance: 6-Sigma. Software Integration:
Enterprise Application Integration, COTS Integration.  
Note: This course is for non SWE students, it cannot be taken for credit toward a MS degree by SWE graduate students. 

SWE 515 Software Requirements Engineering (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 (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 Validation, Verification, and Quality Assurance (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 (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. 

SWE 532 Web Applications Security (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 (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 (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 (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.  
PrerequisitesConsent of Instructor

SWE 585 Empirical software engineering (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 (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, multiplegoal 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 (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.  
PrerequisitesConsent of Instructor

SWE 599 Seminar (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  
PrerequisitesGraduate standing 

SWE 606 Independent Research (3-0-3)
This course is intended to allow the student to conduct research in advanced problems in his MS research area. The faculty offering the course should submit a research plan to be approved by the Graduate Program Committee at the academic department. The student is expected to deliver a public seminar and a report on his research outcomes at the end of the course. Graded on a Pass or Fail basis   
PrerequisitesPrior arrangement with an instructor 

SWE 610 Master Thesis (0-0-6)
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.   
PrerequisitesSWE 599 or Consent of Instructor. 

SWE 634 Software Reuse (3-0-3)
In-depth research based study of the concepts and engineering principles of software reuse with a focus on component-based reuse, domain analysis and modeling, service-oriented architectures; quality aspects of reuse, economic models of reuse; and reuse of non-code artifacts.   
PrerequisitesConsent of Instructor 

SWE 638 Software Maintenance & Re-Engineering (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.  
PrerequisitesConsent of Instructor. 

SWE 670 Formal Methods and Models in Software Engineering (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). 
PrerequisitesConsent of Instructor. 

SWE 671 Global Software Engineering (3-0-3)
Topics include: Essentials of global software engineering, Software engineering outsourcing (Onshore outsourcing, Nearshore Outsourcing, Offshore out-sourcing), Outsourcing models (Simple Dyadic Outsourcing, Multi-Vendors Outsourcing, Co-Sourcing and Complex Outsourcing), Global software project management concepts, tools, and techniques, Managing virtual teams, Cross-cultural 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)
PrerequisitesConsent of Instructor. 


SEC 511 Principles of Information Assurance & Security (3-0-3)
Introduction to information Assurance & Security. 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.   
PrerequisitesGraduate Standing

ICS 555 Cryptography and Data Security (3-0-3)
Introduction to data security and cryptography, Mathematical principles of cryptography, Conventional and modern block and stream symmetric-key cryptosystems, Public-key cryptosystems, Message integrity and cryptographic hash functions, Digital signatures, Authentication, and Key exchange protocols. Several exercises and assignments on using cryptosystem and cryptanalysis tools.  
PrerequisitesConsent of Instructor. 

SEC 521   Network Security (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    
PrerequisitesICS 555   

SEC 524 Computer and Network Forensics (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.   
PrerequisitesSEC 521 

SEC 528 Security in Wireless Networks (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.    
PrerequisitesSEC 521   

SEC 534   Database Security (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 rolebased 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.      
PrerequisitesSEC 511  

SEC 536   Web Application Security (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.    
PrerequisitesSEC 511  

SEC 538 Trusted Computing (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.     
PrerequisitesSEC 511 and ICS 555 

SEC 544 Biometric Systems (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.      
PrerequisitesGraduate Standing

SEC 546 Embedded Systems Security (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.     
PrerequisitesGraduate Standing

SEC 548  Watermarking and Steganography (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.     
PrerequisitesGraduate Standing

SEC 595 Special Topics in Information Assurance & Security (3-0-3)
Advanced topics selected from current journals of Information Assurance and Security and that deal with theoretical development or applications in the field.       
PrerequisitesGraduate Standing

SEC 599 Graduate Seminar (1-0-0)
Graduate students are required to attend seminars given by faculty members, visiting scholars, and fellow graduate students.  Additionally, each student must deliver at least one presentation on a contemporary research topic. Among other things, this course is designed to give the student an overview of how to conduct research, research methodology, journal specifications and submission requirements, and on professional societies. The course grade is a Pass or Fail.        
PrerequisitesGraduate Standing

SEC 606 Independent Research (Pass/Fail) (3-0-3)
This course is intended to allow the student to conduct research on advanced topics in his area of research for his Master degree. The faculty offering the course should submit a research plan to be approved by the graduate program committee of the ICS Department. The student is expected to deliver a public seminar and a report on his research outcomes at the end of the course.       
PrerequisitesGraduate Standing

SEC 610 Master Thesis (0-0-6)
The student has to undertake research at an in-depth level under the supervision of a faculty member for a specific problem in the area of Information Assurance and Security.        
PrerequisitesSEC 599

SEC 611 Cryptographic Computations (3-0-3)
Review of number theory, set algebra and finite fields. Computations in finite fields using standard and non-standard bases. High performance algorithms and architectures for cryptographic applications. Side channel analysis attack resistant computations.       
PrerequisitesICS 555 

SEC 621 Advanced Network Security (3-0-3)
Intrusion detection and prevention systems. Security engineering processes. Advanced firewall considerations. Honeynets. Network forensics. Distributed denial of service attacks (Botnet, Rootkits, Zero-Day Exploits). Cyber crime and cyber war. Enterprise security policy development. Complex enterprise security infrastructure design and integration. Web and email security. P2P network security, and trust management
PrerequisitesSEC 521 

SEC 631 Security in Operating Systems and Cloud Computing (3-0-3)
Advanced security research topics in operating systems and emerging computing paradigm such as grid and cloud computing.  Secure operating system requirements, fundamentals and definitions.  Security in traditional and popular operating systems such as Unix, Linux, OpenBS,D and Windows.  Security kernels.  Verifiable security goals, trusted processes, and information flow integrity. Secure capability systems. Security in virtualization and secure virtual machine systems.  Security issues and countermeasures in cloud computing. Data security and storage in the Cloud. Security management in the cloud services: PaaS, SaaS, and IaaS.  Case Studies of secure systems, design, and evaluation: SELinux and Solaris.
PrerequisitesSEC 521



179