## Complete List Of Offered Courses

​MATH 101: Calculus I Syllabus (4-0-4)
Limits and continuity of functions of a single variable. Differentiability. Techniques of differentiation. Implicit differentiation. Local extrema, first and second derivative tests for local extrema. Concavity and inflection points. Curve sketching. Applied extrema problems. The Mean Value Theorem and applications.
This course is offered by the Department of Mathematics and Statistics more information can be found on their website.
Prerequisites:

ICS 101: Computer Programming Syllabus (2-3-3)
Overview of computer hardware and software; Programming in FORTRAN with emphasis on modular and structured programming technique; Problem solving and algorithm development; simple engineering and scientific problems.
Note: ICS 101 cannot be taken by ICS/SWE students.
Co-requisite: MATH 101
Prerequisites:

ICS 102: Introduction to Computing I Syllabus (2-3-3)
Overview of computers and computing. Introduction to a typical object-oriented programming language. Basic data types and operators. Basic object-oriented concepts. Wrapper classes. Console input/output. Logical expressions and control structures. Classes and methods. Arrays and strings.
Prerequisites:

MATH 102: Calculus II Syllabus (4-0-4)
Definite and indefinite integrals of functions of a single variable. Fundamental Theorem of Calculus. Techniques of integration. Hyperbolic functions. Applications of the definite integral to area, volume, arc length and surface of revolution. Improper integrals. Sequences and series: convergence tests, integral, comparison, ratio and root tests. Alternating series. Absolute and conditional convergence. Power series. Taylor and Maclaurin series.
This course is offered by the Department of Mathematics and Statisticsmore information can be found on their website.
Prerequisites:

ICS 103: Computer Programming in C Syllabus (2-3-3)
Overview of computer hardware and software; Programming in C with emphasis on modular and structured programming technique; Problem solving and algorithm development; Simple engineering and scientific problems.
Note: ICS 103 cannot be taken by ICS/SWE students.
Prerequisites:

MATH 132: Applied Calculus Syllabus (3-0-3)​
The derivative. Rules for differentiation. Derivative of logarithmic, exponential, and trigonometric functions. Differentials. Growth and decay models. Definite and indefinite integrals. Techniques of integration. Integrals involving logarithmic, exponential and trigonometric functions. Integration by tables. Area under a curve and between curves. Functions of several variables. Partial derivatives and their applications to optimization.
This course is offered by the Department of Mathematics and Statistics more information can be found on their website.
Prerequisites:

ICS 201: Introduction to Computing II Syllabus (3-3-4)
Advanced object-oriented programming; inheritance; polymorphism; abstract classes and interfaces, container and collection classes, packages, object-oriented design, software modeling, event-driven programming, recursion, use of stacks, queues and lists from API, searching and sorting.
Prerequisites:

ICS 202: Data Structures Syllabus (3-3-4)
Review of object-oriented concepts; Introduction to design patterns; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data compression and memory management).
Prerequisites:

COE 202: Digital Logic Design Syllabus (3-0-3)
Introduction to information representation and number systems. Boolean algebra and switching theory. Manipulation and minimization of completely and incompletely specifiedBoolean functions. Physical properties of gates: fan-in, fan-out, propagation delay, timing diagrams and tri-state drivers. Combinational circuits design using multiplexers, decoders, comparators and adders. Sequential circuit analysis and design, basic flip-flops, clocking and timing diagrams. Registers, counters, RAMs, ROMs, PLAs, PLDs, and FPGA's.
Prerequisites:

SWE 205: Introduction to Software Engineering Syllabus (3-0-3)
Introduction to software engineering and software processes. Construction techniques and principals. Concepts of Programming Languages: Syntax and semantics. Analysis and Design Modes. Ethical and professional responsibilities.
Prerequisites:

SWE 214: Introduction to Software Engineering Syllabus (3-3-4)
Study of software engineering process models, requirements engineering process, and system models. Methods, tools, and techniques for the elicitation, analysis, and verification and validation of software requirements. Introduction to the principles of project management. Students participate in a group project on software requirements.
Prerequisites:

ENGL 214: Academic & Professional Communication Syllabus (--)
The purpose of Academic & Professional Communication is to enhance students’ reading, writing, oral, and electronic skills to enable them to communicate effectively in English not only during their university careers but also beyond in their professional lives.
This course is offered by the English Language Department. More information about the course can be obtained from their website.
Prerequisites:

SWE 215: Software Requirements Engineering Syllabus (2-3-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. Students participate in a group project on software requirements.
Prerequisites:

ICS 233: Computer Architecture & Assembly Language Syllabus (3-3-4)
Machine organization; Assembly language: addressing, stacks, argument passing, arithmetic operations, decisions, modularization; Input/Output Operations and Interrupts; Memory Hierarchy and Cache memory; Pipeline Design Techniques; Super-scalar architecture; Parallel Architectures.
Prerequisites:

ICS 253: Discrete Structures I Syllabus (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; The Basics of Counting, The Pigeonhole Principle, Permutations and Combinations, Binomial Coefficients, Generalized Permutations and Combinations; Discrete Probability, Probability Theory; Recurrence Relations, Solving Linear Recurrence Relations, Generating Functions, Inclusion-Exclusion; Graphs and graph Models, Graph Terminology and Graph Isomorphism, Connectivity, Euler and Hamilton Paths, Planar Graphs, Graph Coloring; Introduction to Trees, Applications of Trees, Spanning Trees.
Prerequisites:

ICS 254: Discrete Structures II Syllabus (3-0-3)
Number Theory: Modular Arithmetic, Integer Representation, Fermat’s Little Theorem. Chinese Remainder Theorem, RSA., Applications from Number Theory; Recursive Definitions; Algorithm Correctness; Relations: Closures and Equivalence Relations, Partial Orderings and Lattices, Hasse Diagrams; Automata Theory: Finite State Machines, Regular Expressions, DFA, NFA and their equivalence, Grammars and Chomsky Hierarchy; Abstract Algebra: Groups, Homomorphism and Lagrange's Theorem, Applications.
Prerequisites:

ICS 309: Computing and Society Syllabus (2-0-2)
Impact of Computing on Society; Ethical Foundations; Governance and Regulation; Freedom of Speech; Intellectual Property; Privacy; Security; Professional Responsibility; Leadership challenge.
Prerequisites:

SWE 311: Principles of Software Engineering Syllabus (3-3-4)
History and overview of software engineering. Software processes. Software project management. Software requirements and specification. Software design. Software testing and validation. Software metrics. Software quality assurance. Software evolution. Using APIs. Software tools and environments.
Prerequisites:

SWE 312: User Interface Design Syllabus (3-0-3)
Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centered design, and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Color, icons, and sound. Internationalization and localization. User interface architectures and APIs. Case studies and project.
Prerequisites:

SWE 316: Software Design and Architecture Syllabus (3-0-3)
Study of design concepts and notations. Architecture, middleware architectures, design patterns, frameworks and components. Designing for qualities such as performance, security, reusability, reliability. Metrics and measurement. Basics of software evolution, re-engineering, and reverse engineering. Students participate in a group project on software design.
Prerequisites:

STAT 319: Probability and Statistics for Engineers and Scientists Syllabus (2-3-3)
Presentation and interpretation of data, elementary probability concepts, random variables and probability distributions, binomial, Poisson, exponential, Weibull, normal and lognormal random variables. Estimation, tests of hypotheses for the one sample problem. Simple and multiple linear regression, application to engineering problems. The lab session will be devoted to problem solving using statistics software. (The course is not open for credit to Statistics or Mathematics Majors and cannot be taken for credit with SE 205 or STAT 201).
This course is offered by the Department of Mathematics and Statistics. More information about the course can be found on their website.
Prerequisites:

SWE 321: Formal Methods and Models in Software Engineering Syllabus (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.
Prerequisites:

ICS 324: Database Systems Syllabus (3-3-4)
Basic database concepts, conceptual data modeling, relational data model, relational theory and languages, database design, SQL, introduction to query processing and optimization, and introduction to concurrency and recovery.
Prerequisites:

SWE 326: Software Testing and Quality Assurance Syllabus (3-0-3)
Concept of software quality, and software quality metrics. Software quality assurance planning & implementation. Quality process standards. Validation & verification. Reviews, walkthroughs, & inspections. Mechanisms for validating software systems. Techniques for generating and validating test data. Students participate in a group project on software validation and verification.
Prerequisites:

ICS 343: Fundamentals of Computer Networks Syllabus (3-3-4)
This course provides a comprehensive and current introduction to computer networks with focus on the functions performed at each layer of the network architecture and common layer protocol standards.
Note: This course cannot be taken for credit with COE 344.
Prerequisites:

SWE 344: Internet Protocols and Client-Server Programming  Syllabus  (2-3-3)
Principles of inter-network architecture and communication protocols. Open systems and interoperability. Case studies of particular protocols from network layer and above. Socket programming. Remoting. Selected examples of networked client-server applications such as e-mail, news, file-transfer, HTTP. Client-Server Programming Project(s). Using APIs. Software tools and environments.
Prerequisites:

ICS 350: Cooperative Work Syllabus (0-0-9)
Beginning of Coop in summer. See course syllabus of ICS 351 for complete information.
Prerequisites:

ICS 351: Cooperative Work Syllabus (0-0-9)
A continuous period of 28 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. 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 cooperative Eligibility Requirements: GPA above 2.0, Completion of at least 85 credit hours, Departmental Approval.
Prerequisites:

ICS 353: Design and Analysis of Algorithms Syllabus (3-0-3)
Algorithms and Problem Solving Basic Algorithmic Analysis; Advanced Algorithmic Analysis; Advanced Data Structures Algorithms Strategies & Analysis of Fundamental Computing Algorithms; Basic Computability; The Complexity Classes P and NP.
Prerequisites:

ICS 355: Theory of Computing Syllabus (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 Machine: programming techniques for Turing machines, equivalence of one-tape and multitape TM's, universal Turing-machine. Undecidability: recursively enumerable and recursive languages, undecidability, problem reduction, undecidable problems of CFG's, RE's
and TM's.
Prerequisites:

SWE 363: Web Engineering and Development Syllabus (3-0-3)
Web Engineering fundamentals: requirements, analysis modeling, design modeling, testing. Internet basics for web applications. Technologies and tools for developing web applications: markup languages, styling, data description and transformation, client and server side programming. Web services. Advances in web engineering.
Prerequisites:

ICS 381: Principles of Artificial Intelligence Syllabus (3-0-3)
Introduction to Artificial Intelligence (AI) history and applications; First order logic; State space representation; Blind and heuristic search; Constraint satisfaction and planning; Knowledge representation; Reasoning in uncertain situations; Machine learning; Prolog programming; Natural language processing, Advanced AI applications.
Prerequisites:

SWE 387: Software Project Management Syllabus (3-0-3)
Introduction project management concepts, tools, and techniques: integration management and project planning, scope management, scheduling, budget control, human resource management, communication management, risk analysis and management, project quality management, and procurement management.
Prerequisites:

ICS 399: Summer Training Syllabus (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.
Eligibility Requirements: Departmental Approval.
Prerequisites:

ICS 410: Programming Languages Syllabus (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.
Prerequisites:

ICS 411: Senior Project Syllabus (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.
Prerequisites:

ICS 412: Compiler Construction Techniques Syllabus (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.
Prerequisites:

ICS 415: Computer Graphics Syllabus (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.
Prerequisites:

SWE 416: Software Architecture Syllabus (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.
Prerequisites:

SWE 417: Software Engineering Project I Syllabus (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, software requirement specification and software design document.
Prerequisites:

SWE 418: Software Engineering Project II Syllabus (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 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 implement the design they produced in SWE 417, test their code, and evaluate their final product.
Prerequisites:

ICS 424: Advanced Database Systems Syllabus (3-0-3)
Advanced data models: object-oriented model, and object-relational model, conceptual database design. Transaction processing: transactions, failure and recovery, and concurrency control techniques. Database backup and recovery. Query processing and optimization. Database security. Distributed databases: distributed data storage, distributed query processing, distributed transaction processing and concurrency control. Homogeneous and heterogeneous solutions, client-server architecture. XML and relational databases. Introduction to data warehousing, introduction to other current trends in database systems.
Prerequisites:

ICS 426: Data Warehousing and Data Mining Syllabus (3-0-3)
Review of relational databases and Conjunctive queries, Data Warehousing Concepts and OLAP, Data Warehouse Design and Development, Information and data Integration, OLAP Technology for Data Mining. Data Mining: Primitive, Languages and Application Developments.
Prerequisites:

ICS 431: Operating Systems Syllabus (3-3-4)
This course introduces the fundamentals of operating systems design and implementation. Topics include 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.
Prerequisites:

ICS 436: Systems and Network Administration Syllabus (2-3-3)
Install and upgrade different popular operating systems. Managing File Systems. Managing User Accounts. Setting up X Windows System. Configuring Printing Services. Upgrading and installing software packages. Backing up data. Tuning kernel parameters. Configuring and managing various protocols: DNS, DHCP, Routing, Electronic Mail, and Network File System. Managing and troubleshooting computer systems and networks. Network and System Security.
Note:Only 1 of the listed pre-requisites for this course is needed either ICS 343 or COE 344.
Prerequisites:

SWE 436: Object-Oriented Design Patterns Syllabus (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.
Prerequisites:

ICS 437: Distributed System Syllabus (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; Synchronization; Distributed Coordination and Agreement;  Distributed Transactions;  Distributed Replication; Distributed Multimedia Systems, Distributed Shared Memory; Case Studies such as CORBA, MACH, DCOM, and GLOBE.
Note:Only 1 of the listed pre-requisites for this course is needed either ICS 343 or COE 344.
Prerequisites:

ICS 443: Network Design and Management Syllabus (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.
Prerequisites:

ICS 444: Computer and Network Security Syllabus (3-0-3)
Introduction to computer and network security; Security services: confidentiality, integrity, availability, accountability; Hacker techniques and attack types; Public and private key encryption; Authentication; Digital signature; User identification and access control; Computer viruses, Trojans and worms; Risk management and analysis; Information security process; Internet security: security protocols such as IPSec, SSL, TLS, email and web security; Security technologies and systems: Firewalls, VPN and IDS.
Note: ICS 444 is Equivalent to SWE 421. Students can take credit for only one of them. Only 1 of the listed pre-requisites for this course is needed either ICS 343 or COE 344.
Prerequisites:

ICS 446: Cluster Computing Syllabus (3-0-3)
Introduction to high performance computing: types of parallel computers, system architectures, 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; Project/Programmingassignments.
Prerequisites:

ICS 447: Computer Network Technologies  Syllabus (3-0-3)
Various advanced topics on LANs and internetworking technologies will be addressed. Topics include: 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:Only 1 of the listed pre-requisites for this course is needed either ICS 343 or COE 344.
Prerequisites:

ICS 454: Principles of Cryptography Syllabus (3-0-3)

Classical cryptography; Secret Key Encryption; Perfect Secrecy. Cryptanalysis; Block and Stream cipher; Data Encryption Standard (DES) and Advanced Encryption Standard (AES); Public Key Encryption; Diffie-Hellman Key Exchange; RSA, ElGamal and Rabin’s Cryptosystems; Authentication and Digital Signatures; One-time signatures; Randomized Encryption; Rabin and ElGamal signature schemes; Digital Signature Standard (DSS)' Cryptographically Secure Hashing; Message Authentication Codes; Network Security; Secure Socket Layer (SSL); IPsec.
Prerequisites:

SWE 469: Software Metrics Syllabus (3-0-3)
Overview of software metrics, basics of measurement theory, goal-based framework for software measurement, empirical investigation in software engineering. Measuring internal product attributes, measuring external product attributes, measuring cost and effort, measuring software reliability, software test metrics, and object-oriented metrics.
Prerequisites:

ICS 481: Artificial Neural Networks Syllabus (3-0-3)
Introduction to neural computing: Real vs. artificial neurons; Threshold logic; Training a linear threshold unit, the perceptron rule; Multilayer feed-forward networks and the back propagation algorithm; The Hopfield net; Self-organizing maps; Radial basis functions; Adaptive resonance theory; Applications of Neural Networks (ANN).
Prerequisites:

ICS 482: Natural Language Processing Syllabus (3-0-3)
This course examines a range of issues concerning computer systems that can process human languages. Among the issues to be discussed are morphological and syntactic processing, semantic interpretation, discourse processing and knowledge representation
Prerequisites:

ICS 483: Computer Vision Syllabus (3-0-3)
Image acquisition, The digital image and its properties, Image preprocessing, Segmentation (thresholding, edge- and region-based segmentation), Shap representation and object recognition, Motion analysis, Case studies (object recognition / object tracking).
Note: ICS 483 cannot be taken for credit with COE 487 or EE 410
Prerequisites:

ICS 484: Arabic Computing Syllabus (3-0-3)
This course examines a range of issues concerning computer concepts related to Arabic. Among the issues to be discussed are: Arabic Language Characteristics, Arabic Character Sets, Standardization, Unicode, Arabization systems, Arabic software tools, Arabic programming languages and Introduction to Arabic Computations.
Prerequisites:

ICS 485: Machine Learning Syllabus (3-0-3)
Introduction to machine learning; Concept learning; Supervised learning - decision tree learning; Unsupervised learning - clustering. Artificial neural networks. Evaluating hypotheses; Bayesian learning; Computational learning theory; Instance based learning. Genetic algorithms; Learning sets of rules - Inductive Logic Programming; Reinforcement learning; Analytical learning;
Prerequisites:

ICS 486: Multi-Agent Systems Syllabus (3-0-3)
Agents, agent definitions and classification; Multi-agent systems (MAS) and their characteristics; Models of agency, architectures and languages, logics for MAS, deductive and practical reasoning agent, reactive and hybrid agents; Distributed problem solving and planning; Coordination mechanisms and strategies; Learning in MAS; Interaction, negotiation and coalition formation; Applications of agent technology (agents in electronic commerce and information retrieval.
Prerequisites:

SWE 487: Software Processes and Process Improvements. Syllabus (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.
Prerequisites:

ICS 488: Soft Computing Syllabus (3-0-3)
Introduction to Soft Computing, Fuzzy Sets Theory, Fuzzy Logic, Artificial Neural Networks, Probabilistic Reasoning, Genetic Algorithms, Neuro-Fuzzy Technology, Combination of Genetic Algorithms with Neural Networks, Combination of Genetic Algorithms and Fuzzy Logic, Applications of Soft Computing (three to four real life applications).
Prerequisites:

SWE 490: Special Topics I Syllabus (3-0-3)
In-depth study of a selected special topic relevant to software engineering
Prerequisites:

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

SWE 491: Special Topics II Syllabus (3-0-3)
In-depth study of a selected special topic relevant to software engineering
Prerequisites:

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

ICS 511: Principles of Software Engineering Syllabus (--)
Software Requirements: Modern SRS for Enterprise Application and Performance-Critical Systems. Software Process: Personal Software Process, Team Software Process. Software Design: Architecture Tradeoff Analysis, Enterprise Architecture, COTS Architecture, Service Oriented Architecture, RAD. Software Planning: Software Acquisition, Software Engineering Measurement and Analysis (SEMA). Software Quality Assurance: 6-Sigma. Software Integration: Enterprise Application Integration, COTS Integration.
Prerequisites:

ICS 512: Software Requirements Engineering Syllabus (--)
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.
Prerequisites:

ICS 513: 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 objectoriented 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.
Prerequisites:

ICS 514: Software Validation, Verification, and Quality Assurance Syllabus (--)
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.
Prerequisites:

ICS 515: Software Project Management Syllabus (--)
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.
Prerequisites:

ICS 519: Special Topics in Software Engineering Syllabus (--)
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 Software Engineering for the World Wide Web, Formal Methods and Models in Software Engineering, etc.
Prerequisites:

ICS 531: Advanced Operating Systems Syllabus (--)
Structural design aspects of an operating system: process model, inter-process communication, synchronization mechanisms, resource management, and scheduling. Protection issues. Implementation issues of modern operating systems. Distributed operating systems. Deadlock detection, recovery, and avoidance. Case studies. Project(s).
Prerequisites:

ICS 532: Performance Analysis & Evaluation Syllabus (--)
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).
Prerequisites:

ICS 533: Modeling and Simulation of Computing Systems Syllabus (--)
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).
Prerequisites:

ICS 535: Design and Implementation of Programming Languages Syllabus (--)
Principles of functional, imperative, object-oriented and logic programming languages. Semantic specification including axiomatic, operational and denotational semantics. Fundamentals of type systems such as abstract data types, polymorphism, and inference. Concurrent systems. Case studies of contemporary programming languages.
Prerequisites:

ICS 536: Real-Time Systems Syllabus (--)
Overview of real-time systems. Design and implementation issues. System interfacing basics. Embedded software design constraints under size, performance, and reliability.
Software timing and functional validation. Applications and case studies of real-time hardware and software systems.
Prerequisites:

ICS 539: Special Topics in Systems Syllabus (--)
Advanced topics selected from current journals in the field that deal with theoretical development and applications of computer systems.
Prerequisites:

ICS 541: Database Design and Implementation Syllabus (--)
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 542: Multimedia Computing Syllabus (--)
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, Multi-dimensional indexing algorithms and data structures.Multimedia compression. Multimedia data mining.
Prerequisites:

ICS 543: Advanced Computer Graphics Syllabus (--)
Graphics systems. Two dimensional concepts and methods. Geometrical transformations. Modeling 3D scenes. Curve and surface design. Approaches to infinity. Rendering faces for realism. Color theory. Visible-surface determination. Illumination models and shading. Project(s).
Prerequisites:

ICS 544: E-Commerce Technologies Syllabus (--)
Fundamentals of E-Commerce: B2B and B2C models. Internet networking: TCP/IP, IIOP, SOAP. Internet Security: firewalls, viruses, hacking. Design issues of ECommerce:
n-tier technology, Object Oriented paradigm such as Common Object Request Broker Architecture and Component Object Model. Web Servers. Data transactions between database servers and web servers using XML. Project(s).
Prerequisites:

ICS 545: Arabic Computing Syllabus (--)
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:

ICS 549: Special Topics in Applied Computing Syllabus (--)
Advanced topics selected from current journals on various IT and CS applications that deal with theoretical and practical development in various enterprises.
Prerequisites:

CSE 550: Computer Network Design Syllabus (--)
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.
Prerequisites:

CSE 551: Computer and Network Security Syllabus (--)
Principles and practice of network and internetwork security. Mathematical principles of cryptography and data security. Conventional and modern crypto systems. Secure
communication protocols. Authentication and Digital Signatures. Secure IP and SSL. Modern applications like digital cash and secure distributed computing. Operational
aspects of computer and network security.
Prerequisites:

ICS 552: Theory of Computation (--)
Introduction to various models of computation. Machines, languages and grammars.Turing-computability. Universal Turing Machines. Recursive functions. ChurchÃ¢â‚¬â„¢s thesis.GodelÃ¢â‚¬â„¢s completeness and incompleteness theorems. Closure properties and complexity classes of languages. Decidability, undecidability and partial decidability.
Prerequisites:

CSE 552: Network Management Syllabus (--)
Management Protocols. Remote Management. Configuration for Data Collection. Monitoring and Reconfiguration. Operational Issues in Managing Heterogeneous Networks under Different Operating Systems.
Prerequisites:

ICS 553: Advanced Computer Algorithms Syllabus (--)
Review of RAM model of computation, complexity measures of time and space. Graph Algorithms for minimum spanning trees, shortest paths, matroids, the planar separator
theorem. Planarity and planarization. network flow algorithms. Graph matching and coloring. Establishing lower bounds. NP Completeness: CookÃ¢â‚¬â„¢s theorem. Various
complexity classes and their relationships. Techniques for establishing completeness. Approximation and probabilistic algorithms to NP-hard problems.
Prerequisites:

CSE 553: Fault Tolerance and Reliability in Computer Networks Syllabus (--)
Fundamental concepts in the theory of reliable computer systems design. Hardware and software reliability techniques. Evaluation of fault-tolerant computer communication
systems. The practices of reliable system design. Case studies. Fault-tolerant topology design. Computer networks reliability and fault-toler-ance. Fault tolerant high-speed
networks.
Prerequisites:

ICS 554: Applied Combinatorics and Graph Theory Syllabus (--)
A study of combinatorial and graphical techniques for complexity analysis including generating functions, recurrence relations, PolyaÃ¢â‚¬â„¢s theory of counting, planar directed
and undirected graphs, NP complete problems. Application of these techniques to analysis of algorithms in graph theory.
Prerequisites:

CSE 554: Modeling and Analysis of Computer Networks (--)
Modeling. General concepts. Performance measures. Performance evaluation techniques. Model Validation. Introduction to Queuing Networks and Stochastic Processes. 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.
Prerequisites:

ICS 555: Data Security and Encryption Syllabus (--)
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.
Prerequisites:

CSE 555: Protocol Engineering Syllabus (--)
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.
Prerequisites:

ICS 556: Parallel Algorithms Syllabus (--)
Introduction to parallel computational models (PRAM, Meshes, Trees, Hypercubes, Shuffle-Exchange, Mesh-of-Trees) and complexity measures. Parallel algorithms design
techniques: divide-and-conquer, parallel prefix, pointer jumping, list ranking, EulerÃ¢â‚¬â„¢s path technique, and ear decomposition. Parallel algorithms for selection, merging,
sorting, searching, and graph problems. Computational geometry. Graph embedding. Parallel computational complexity: equivalence of Boolean circuits and the PRAM
models, the NC class, and P-complete problems.
Prerequisites:

ICS 559: Special Topics in Theoretical Computer Science Syllabus (--)
Advanced topics selected from current journals of Theoretical Computer Science that deal with theoretical development or applications of computer systems.
Prerequisites:

CSE 559: Special Topics in Computer Network Design and Management Syllabus (--)
State of art topics from the areas of various computer network design and management, security and reliability.
Prerequisites:

ICS 570: Advanced Computer Networking Syllabus (--)
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.
Prerequisites:

ICS 571: Client Server Programming Syllabus (--)
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 572: Distributed Computing Syllabus (--)
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 573: High-Performance Computing Syllabus (--)
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 575: Application Development for Internet Based Services Syllabus (--)
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 576: Concurrent and Parallel processing Syllabus (--)
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 579: Special Topics in Net-Centric Computing Syllabus (--)
State-of-the-art topics from the general area of Computer Network Software and Protocols.
Prerequisites:

ICS 581: Advanced Artificial Intelligence Syllabus (--)
This course introduces advanced issues and approaches of artificial intelligence topics, including logic programming, computational learning theory, machine learning (supervised, unsupervised, and reinforcement learning), search-oriented problem solving techniques, computer perception and robotics, speech understanding, knowledgebase systems and reasoning about Knowledge, planning and temporal reasoning, inference and theorem proving, reasoning under uncertainty, principles of intelligent agents, reactive, goal-based, and utility-based agents.
Prerequisites:

ICS 582: Natural Language Processing Syllabus (--)
This course examines a range of issues concerning computer systems that can process human languages. Among the issues to be discussed are morphological and syntactic
processing, semantic interpretation, discourse processing and knowledge representation. Components of a natural languages processing system, Natural language models:
Mathematical, psychological, Lexical, syntactic, and semantic analysis, Phrasestructured grammars, Transformational grammars, Transition networks, Semantic networks, Conceptual parsing, Conceptual dependency, Systemic and case grammars, Scripts, plans and goals, Knowledge representation, Sentence generation. Course projects give the students knowledge in how to use recent trends in Natural Language Processing.
Prerequisites:

ICS 583: Pattern Recognition Syllabus (--)
Introduction to pattern recognition, feature extraction, and classification. Bayesian decision theory, maximum likelihood and Bayesian parameter estimation, Nonparametric pattern classification techniques, density estimation. Pattern Classification using linear discriminant functions. Unsupervised machine learning, clustering, vector quantization, K-means. Various methods of pattern recognition, extraction methods, statistical classification, various classifiers and case studies.
Prerequisites:

ICS 584: Automated Theorem Proving Syllabus (--)
Survey of proof theory and model theory of first-order predicate calculus, natural deduction, HerbrandÃ¢â‚¬â„¢s procedure, resolution methods, induction principles, rewrite
rules, theorem-provers for algebraic systems.
Prerequisites:

ICS 585: Knowledge-Based Systems Syllabus (--)
Overview of Artificial Intelligence disciplines. Architecture of expert systems: including the structure of knowledge bases and the various knowledge representation methods,
inference engines and reasoning techniques, search and exploitation of domain-specific knowledge through heuristics, knowledge acquisition. Discuss examples of expert systems shells, their capabilities and limitations. Assign projects in specific discipline using available shells.
Prerequisites:

ICS 586: Neural Networks Syllabus (--)
Fundamental concept of neural computation. Main neural network models. Perceptions and back-propagation, Hopfield and feedback models. Fault-tolerance in neural networks. Parallel processing in neural networks. Potential and limitations of neural networks. Applications of neural computing. Project(s).
Prerequisites:

ICS 589: Special Topics in Artificial Intelligence Syllabus (--)
Advanced topics selected from current journals of Artificial Intelligence that deal with theoretical development or applications of computer systems.
Prerequisites:

ICS 591: Independent Study Syllabus (--)
The course can be taken under the supervision of a faculty member to conduct an indepth study of a subject.
Prerequisites:

ICS 599: Seminar Syllabus (--)
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.
Prerequisites:

ICS 610: Master Thesis Syllabus (--)
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:

CSE 611: Approximation & Probabilistic Algorithms Syllabus (--)
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, and simulated annealing, Genetic algorithms. Graph matching and applications. Network flows and applications.
Prerequisites:

CSE 612: Combinatorial Algorithms & Optimization Syllabus (--)
Representation and generation of combinatorial objects. Searching: exhaustive search and its approximations and fast search techniques. Sorting and related problems. Graph algorithms. Greedy method and the theory of materials. NP-Hard and NP-Complete combinatorial problems.
Prerequisites:

CSE 613: Computational Complexity Syllabus (--)
Computational complexity. Time-space complexities. Speedup, hierarchy theorems. Time-Space Tradeoff. Translational Lemmas. Gap and Union theorems. Intractable problems Ã¢â‚¬â€œ polynomial time space. Theory of NP-Completeness Ã¢â‚¬â€œ Classes, P, NP, Co-NP, PSPACE. Poly-Time and Log-Space transformations. Proof techniques for establishing NP-Completeness. Turing Reducibilities and polynomial hierarchy. Using NP-Completeness to Analyze problems. NP-Hardness. Introduction to Approximation algorithms to hard problems.
Prerequisites:

CSE 620: Systems Development Methodologies Syllabus (--)
Information analysis. Information systems planning. Various approaches to Systems development: Participative, Prototyping, Phenomenological, Evolutionary, etc. Systems development methodologies: Soft systems methodology, information engineering, SSADM, ISAC, etc. Systems development environments.
Deliverables. Project management and control.
Prerequisites:

CSE 621: Information Systems Planning Syllabus (--)
Concepts of organizational planning. The Planning process. Computational sup-port for planning. Understanding information systems planning: functions, proc-esses, information groups, subject databases. Information systems planning meth-odologies. Information needs analysis. Strategic planning of information sys-tems. IS planning for competitive advantages. Students should complete an IS plan real life situation of reasonable complexity as a term project.
Prerequisites:

CSE 622: Formal Derivation of Programs Syllabus (--)
Predicate calculus. Program semantics of guarded commands. Postconditions and specifications. Weakest preconditions. Weakest liberal preconditions. Loop invariants.  ​Termination and non-termination. Partial and total functions. Non-determinacy. Standard techniques in program derivation. Examples of program
derivation.
Prerequisites:

CSE 630: Semantics of Programming Languages Syllabus (--)
Formal methods for the description of programming languages. Operational, axiomatic and denotational semantics, attribute grammar, two-level grammars. Fixed-point theory of computation. Verification techniques.
Prerequisites:

CSE 631: Compiler Optimization Syllabus (--)
Program optimization for speed and size. Reducing redundancy. Register allocation optimization. Data flow analysis and code optimization. Fast optimization algorithms. Optimization methods in existing compilers. Optimization problems for special languages.
Prerequisites:

CSE 632: Distributed Operating Systems Syllabus (--)
Distributed system architectures and distributed processing. Communication primitives: remote procedure call and message passing methods. Resource sharing. Distributed deadlock management. Naming. Load balancing. Fault tolerance. File service. Protection issues. Design issues. Projects on important aspects of distributed and network operating systems. Case studies.
Prerequisites:

CSE 640: Parallel Computation Syllabus (--)
Various Parallel Computation Models, such as: PRAM Models, CRCW, CREW, ERCW, EREW. Simulations of PRAM models. Alternation. Boolean Circuits. Parallel Com-putation Thesis. Cellular Automata. Parallel Complexity Measures; NC Class.Simulations of Different Parallel Computation Models.
Prerequisites:

CSE 641: Reliability and Fault Tolerance of Computer Systems Syllabus (--)
Reliability and fault-tolerance of computer networks such as FDDI, double loop, hypercube, multi-stage interconnection network, multiprocessor systems, etc. Reliable and fault-tolerant routing, Reliability evaluation algorithms, Availability and survivability of computer systems, Reliability models of JPL-STAR, FTMP, ESS No. 1, PLURIBUS, etc. Software fault tolerance and reliability. Projects using network reliability evaluation tools such as SYREL, SHARPE and SPNP.
Prerequisites:

CSE 642: Computer Systems Performance Syllabus (--)
Queuing theory. Stochastic Petrinets and Markov Chains. Separable queuing networks. Priority queuing systems. Evaluation studies: monitoring techniques, modeling methods and model validation. Application of queuing theory to computer time-sharing & multi-access systems, multiprocessor systems, interconnection networks. Computer communication networks. Case studies of several distributed and network system configurations.
Prerequisites:

CSE 650: Advanced Neural Networks Syllabus (--)
Introduction to neural computation. Biological neurons. Fundamental concepts behind various models of neural networks. Functional equivalence and convergence properties of neural network models. Adaptation and learning in neural networks: associative, competitive, inhibitory, and adaptive resonance models of learning. Back-propagation, Hopfield Nets, Boltzmann machines, Cauchy machines, ART, and feature map (Kohonen model). Cognitron and neocognitron. VLSI, optical, and software implementations. Potentials and limitations of neural networks. Applications to vision, speech, motor control and others. Projects.
Prerequisites:

CSE 651: Robotics Programming Syllabus (--)
Review of issues in robotics programming. In depth study of robotic programming languages. Design and implementation of robotic programming languages and environments. Single and multi-robot environments. Case studies. Project.
Prerequisites:

CSE 652: Advanced Computer Vision Syllabus (--)
The physics of vision and its computational modeling. Applications to Robot vision. Image formation and sensing. Basic image processing: edge finding, image segmentation, and texture analysis. Reflectometry: brightness, color and reflectance map. Shape from shading. Photogrammetry and stereo. Motion fields and optic flow. Passive navigation and structure from motion. Active vision. Representations, primer sketch, 2.5-D map, 3D map. Human visual system.
Prerequisites:

CSE 660: Non-Conventional Computer Arithmetic Syllabus (--)
Mixed base number systems. Negative base arithmetic. Logarithmic based arithmetic. Residue number systems. P-adic numbers. Signed digit arithmetic. Representation of Complex numbers. Relational number arithmetic. Examples.
Prerequisites:

CSE 661: Parallel and Vector Architectures Syllabus (--)
Parallel models of computation. Concept of pipelining at different levels of architecture. Pipelined functional units. Pipelined vector processors. Vectorizing compilers and software. Operating system support for vector scheduling and load balancing. Parallel languages. Parallel algorithms. Concurrentization and
vectorization.
Prerequisites:

CSE 662: VLSI Array Processors Syllabus (--)
Impact of VLSI on computer architecture. Mapping algorithms onto array structures: dependency graphs, signal flow graphs. Design and analysis of systolic arrays. Wave front array processors. Retiming and systolicization. Implementation and verification of array processors. Examples.
Prerequisites:

CSE 670: Design Issues of VLSI Programmable ASICs Syllabus (--)
ASIC design methodologies. Programmable ASICS. Field Programmable Gate Arrays: Architecture, Programming technologies, Design parameters and models. FPGA  Technology mapping techniques, Routing techniques, Placement techniques and Testability.
Prerequisites:

CSE 671: Silicon Compilation and High-level Synthesis Syllabus (--)
Levels of abstraction: behavioral, structural, and physical levels. Design de-scription. Module generation (functional cell generation, gate matrix layout, PLAs, etc.) and Module optimization. High level synthesis: Intermediate forms (data flow and control flow graphs), Scheduling algorithms, data flow and control flow synthesis, resource allocation, and module binding. Knowledge based and expert system approach to Design Automation.
Prerequisites:

CSE 672: Advanced Digital System Testing Syllabus (--)
Fault Modeling. Test Generation. Built-in test and Self-test concepts for hierar-chical circuit models. Complex microprocessors and semiconductor memories.
Prerequisites:

CSE 690: Independent Study Syllabus (--)
A specialized topic that may not be broad enough to be offered as a regular course. To be arranged with the instructor.
Prerequisites:

CSE 692: Special Topics in Computer Science Syllabus (--)
Any state of the art topics or topics of recent interest in any areas in computer science that may not fit well with the description of the previously mentioned courses.
Prerequisites:

CSE 693: Special Topics in Computer Engineering Syllabus (--)
Any state of the art topics or topics of recent interest in any areas in computer engineering that may not fit well with the description of the previously men-tioned courses.
Prerequisites:

CSE 699: Seminar S​yllabus (--)
This involves attending the regular departmental seminars, presenting one work in one of the seminars, and producing a final report to the satisfaction of the seminar co-rdinator. This course carries not credit.
Prerequisites:

CSE 710: Ph.D. Dissertation Work Syllabus (--)
This is intended to document the effort that would have to be put into the original work conducted by a potential Ph.D. aspirant.
Prerequisites: