ICS Graduate Courses

 

ICS 500: Research Methods and Experiment Design in Computing​ (3-0-3)
Integrated treatment to the models and practices of experimental computer science. Topics include scientific methods applied to computing, computational problem/solution characterization, quality metrics and performance estimation of computation systems, uses of analytic and simulation models, design of experiments, interpretation and presentation of experimental results, hypothesis testing, and statistical analyses of data.
Prerequisites: Graduate Standing

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 handling; 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.
Prerequisites: Consent 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
Prerequisites: STAT 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
Prerequisites: STAT 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.
Prerequisites: ICS 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).
Prerequisites: ICS 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. 
Prerequisites: None

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.
Prerequisites: Consent 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.
Not to be taken for credit with EE 663 or SE 662.
Prerequisites: Consent 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. 
Prerequisites: ICS 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.
Prerequisites: Consent 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.
Prerequisites: ICS 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.
Prerequisites: Consent 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 
Prerequisites: ICS 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.
Prerequisites: ICS 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).
Prerequisites: ICS 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. 
Prerequisites: ICS 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.
Prerequisites: Consent of the Instructor

ICS 590: Special Topics in Computer Science I ​ (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 592: Special Topics in Computer Science II​ (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 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. 
Prerequisites: Graduate 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.
Prerequisites: Prior 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.
Prerequisites: ICS 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. 
Prerequisites: ICS 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.
Prerequisites: ICS 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).
Prerequisites: ICS 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.
Prerequisites: ICS 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. 
Prerequisites: ICS 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. 
Prerequisites: Consent 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. 
Prerequisites: Consent 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.  
Prerequisites: Graduate 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.
Prerequisites: Prior 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.
Prerequisites: Prior 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. 
Prerequisites: Ph.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.
Prerequisites: ICS 711