Courses Catalog
Bachelor | Master | PhD
Bachelor of Science in Computer Science Guide
A. Mandatory Courses
CSC 111 – Computer Programming-I (3-2-1) | |
Course Description | Introduction to computers and programs. Programmer’s algorithm, byte code and Java Virtual Machine. Java program’s structure, constants, variables and built-in data types. The arithmetic, assignment, increment and decrement operators. Classes and object definition, UML representation of a class, declaration of objects (Instance variables), primitive types and reference types. Relational and logical operators, Boolean expressions, conditional statements, loop statements. Object oriented principles, encapsulation and information hiding, methods and the message passing principles, setters, and getters. Methods in depth, passing parameters, constructors, setters. Arrays, usefulness of arrays, declaration of arrays, access to array elements, operations on arrays. |
Prerequisite | CT 101 - IT Skills. |
Course Objectives | The course aims at giving the students a broad foundation in the fundamental concepts of object oriented programming accompanied by specific labs to develop the basic skills in object oriented programming with Java. It introduces the basic concepts and principles of the Object Oriented approach such as: (i) Abstraction and Encapsulation principles, (ii) Classes, objects and the constructor concepts, (iii) Information hiding principle and the assessors concept. (iv) Methods, the message passing and the overloading principles. |
CSC 113 – Computer Programming-II (3-2-1) | |
Course Description | This course continues the coverage of the fundamental concepts of Object Oriented Programming started in Programming I (CSC 111). It covers more advanced concepts and topics This course continues the coverage of the fundamental concepts of Object Oriented Programming started in Programming I (CSC 111). It covers more advanced concepts and topics such as relationships between classes, inheritance, polymorphism, abstract classes, error handling, interfaces, generics and data structures such as linked lists, stacks and queues, in addition to graphical user interface |
Prerequisite | CSC 111 - Computer Programming I. |
Course Objectives | The objective of this course is to develop the students' ability to use the basics of object-oriented design and programming. The students learn the characteristic features of object orientation – classes, methods, polymorphism, and inheritance – through both the lectures and a sequence of illustrative programming assignments. Students will also study list data structures, event driven programming and graphical user interface tools. |
CSC 212 – Data Structures (3-0-1) | |
Course Description | Fundamental concepts of data structures. Performance measurement of algorithms. Implementation and use of lists, stacks, queues, priority queues, trees, heaps, hash tables and graphs. Recursion. Students will do programming assignments. |
Prerequisite | CSC 113 - Computer Programming II. |
Course Objectives | The objective of this course is to teach the fundamentals of data structures needed in the remainder of the curriculum and develop students’ problem solving and computer programming skills. |
CSC 215 – Procedural Programming With C (2-2-1) | |
Course Description | Introduction to the procedural programming paradigm. Brief history of C. C primitive data types, variables and constants, operators (arithmetic operators, logical operators, and access operators). Control structures. Procedures and parameter passing. User defined types. Pointers. |
Prerequisite | CSC 111 - Computer Programming I. |
Course Objectives | The objective of this course is to teach students the design and implementation of C programs. They also are meant to understand when to use procedural vs. OO programming. |
CSC 220 – Computer Organization (2-2-1) | |
Course Description | The course introduces basic digital logic design techniques and integrates the topics of generic assembly language programming, computer organization, and computer design. The objectives of this course are to: help students learn the fundamental elements of computer architecture from a functional, hardware perspective; foster an appreciation of organizational models and design decisions that determine the overall performance, capabilities, and limitations of a computer system; and help students understand the interdependencies among assembly languages, computer organization, and design. Topics include Introduction to basic computer organization and how the computer works; DeMorgan’s Law, simplifying circuits using Karnaugh maps, Instruction code, Computer registers, Instruction set, Timing and control; Register Transfer Language HDL ( Hardware Description Language) and Microoperations; Computer Arithmetic Logic Unit Design. -Hardwired control unit, instruction set, introduction to addressing modes; Central Processing Unit Design, Register organization, Instruction format, Addressing modes. |
Prerequisite | MATH 151- Discrete Mathematics. |
Course Objectives | The course aims to give the students:
|
CSC 227 – Operating Systems (3-0-1) | |
Course Description | This is an introductory course in Operating Systems. As such, it is intended to cover many of the concepts related to most of the actual Operating Systems. Although the study of a particular Operating System is out of the scope of this course, nevertheless, we will cover most of the concepts found in any existing Operating System. We will review computer system and operating system structures, processes and threads (concepts of, communication, synchronization and deadlocks), CPU Scheduling, memory management and virtual memory. |
Prerequisite | CSC 212 - Data Structures. |
Course Objectives | Course objective is to provide the concepts of operating systems design and implementation. It identifies and describes the major and common components of an operating system with stating their functions and purposes especially process management (process scheduling, and synchronization), and memory management (segmentation, paging, and swapping). |
CSC 281 – Discrete Mathematics for Computer Science (3-0-1) | |
Course Description | Logic and methods of proofs. Basic Discrete Structures: Sets, Functions, Recursive definitions, Sequences and Summations. Growth of functions. Integers and Division, Rings & Fields, Applications of Number Theory. Combinatorics: Counting techniques, Permutations and Combinations, Binomial Coefficients, Permutation and Combinations with repetition, Recurrence Relations, Generating Functions. Discrete Structures: Relations, Graphs, Trees and Finite State Machines. Discrete Probability (optional). |
Prerequisite | STAT 101 - An Introduction to Probability & Statistics. MATH 151 - Discrete Mathematics. |
Co-requisite | CSC 212 – Data Structures. |
Course Objectives | The course is an introductory course in discrete mathematic with emphasis on how this theory can be invoked to develop efficient algorithms and systems. Also, it serves as the mathematical perquisite for many advanced courses. |
CSC 304 – Ethical Issues in Computing & Research Methods (3-0-1) | |
Course Description | This course seeks to equip students with sufficient knowledge of Computer Ethics to enable them recognize the ethical nature of certain issues that arise in the Information and Communications Technology (ICT) workplace. The course studies the effect of the proliferation of computers in our world, the impact of computers in the social, economic, political, and other aspects of our life. It covers the moral and legal obligations of computer professionals and issues concerning security, privacy versus freedom of information, ethics and professionalism, intellectual property rights, research methods: collecting and analyzing data, critical evaluation of research, report writing, choosing and evaluating references, and presentation skills. |
Prerequisite | CSC 113- Computer Programming II. |
Course Objectives | The objective of the course is to provide the students with main concepts of computer ethical issues and to introduce scientific research methods. |
CSC 311 – Design and Analysis of Algorithms (3-0-1) | |
Course Description | Mathematical essentials; sorting; space and time complexity; algorithm design methods: greedy algorithms, divide and conquer, and dynamic programming; introduction to graph theory; and NP-completeness. |
Prerequisite | CSC 281 - Discrete Mathematics. CSC 212- Data Structures |
Course Objectives | The course aims at giving the students a broad foundation in the fundamental concepts of object oriented programming accompanied by specific labs to develop the basic skills in object oriented programming with Java. It introduces the basic concepts and principles of the Object Oriented approach such as: (i) Abstraction and Encapsulation principles, (ii) Classes, objects and the constructor concepts, (iii) Information hiding principle and the assessors' concept. (iv) Methods, the message passing and the overloading principles. |
CSC 329 – Computer Networks (3-0-1) | |
Course Description | This course covers the theoretical as well as hands-on knowledge of Computer Networks covering all the fundamental aspects of networking such as OSI, TCP/IP, LANs, MANs,WANs, Routing Protocols, Switching etc. This course will discuss the design of small to medium size networks as well as different networking issues related to routing and switching. |
Prerequisite | CSC 227 - Operating Systems. |
Course Objectives | The objective of this course is to equip students with theoretical as well as hands-on knowledge of Computer Networks covering all the fundamental aspects of networking such as OSI, TCP/IP, LANs, WAN, Routing Protocols, Switching etc. At the end of the course, students should be able to handle small to medium size networks and have the ability to implement and troubleshoot different networking issues related to routing and switching. |
CSC 339 – Theory of Computation (3-0-1) | |
Course Description | Mathematical preliminaries. Regular languages, regular expression, deterministic and non-deterministic finite automata, closure properties and pumping lemma. Contextfree grammar and languages, pushdown automata and pumping lemma. Turing machines, the Church-Turing Thesis, Computability. Decidability and the Halting problem. Complexity, class P and NP. |
Prerequisite | CSC 281 - Discrete Mathematics for Computer Science. |
Course Objectives | The course aims at answering two questions: what can be computed by a machine? And how efficiently? It starts by presenting machines models, then addresses the computability problem, and then the complexity of algorithms and their classification .according to it |
CSC 340 – Programming Languages and Compilation (3-0-1) | |
Course Description | Programming Languages: features, design and translation issues. Lexical Analysis. Syntactic Analysis. Semantic Analysis. Code Generation. |
Prerequisite | CSC 339 - Theory of Computation. |
Course Objectives | The objective of this course is to explore different types of programming languages and their features, and study translation/compilation techniques used in translating the high-level languages to a machine language. A basic compiler for a small programming language will be implemented during the semester. |
CSC 343 – Systems Analysis and Design (3-0-1) | |
Course Description | This course focuses on the principles of software development including the life-cycle models and different phases of the software development process: requirements analysis, specification and design. The key objective of this course is to learn modular design of software and documenting the design using symbolic representations, i.e., UML diagrams. Object-oriented techniques are key to the course. However, this is not a programming course. The key characteristic is having teams of three to four students work on developing software systems over a course of one semester. This work includes a feasibility study, requirements analysis and object-oriented design. |
Prerequisite | CSC 212- Data Structures. |
Course Objectives | The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. |
CSC 361 – Artificial Intelligence (3-0-1) | |
Course Description | The course will provide an introduction to artificial intelligence. Topics include: problem solving using search (search procedures e.g. depth-first, breadth-first, A*, etc.), constraint satisfaction problems, game playing, knowledge representation and inference procedures. Abstract highlights cover an advanced AI topic (e.g. machine learning, natural language processing). Students will do a small project in this course as well. |
Prerequisite | CSC 212- Data Structures. |
Course Objectives | The objective of this course is to develop the students' ability to understand the concepts of AI. The students will be taught and required to practice the informed and un-informed search techniques, problem formulation, optimization techniques, knowledge representation and detailed game theory. The students are expected to present their skills by a course project. |
CSC 380 – Introduction to Database Concepts (3-0-1) | |
Course Description | Purpose of Database Systems, View of Data, Data Models, Data Definition Language, Data Manipulation Language, Transaction Management, Storage Management, Database Administrator, Database Users, Overall System Structure. Entity Sets, Relationship Sets, Design Issues, Mapping Constraints, Keys, E-R Diagram, Design of an E-R Database Schema. Structure of Relational Databases, Relational Algebra, Extended Relational-AlgebraOperations, Modification of the Database, Reduction of an E-R Schema to Tables. Basic Structure, Set Operations, Aggregate Functions, Null Values, Nested Sub-queries, Derived Relations, Views, Modification of the Database, Joined Relations, DDL, DML. First Normal Form, Relational Database Design, Functional Dependencies, Decomposition, Boyce-Codd Normal Form, Third Normal Form, Overall Database Design Process. |
Co-requisite | CSC 212 – Data Structures. |
Course Objectives | This course aims at giving the students a broad foundation in the fundamental concepts of database. This should allow students to design and implement real life databases, in addition to evaluate existing ones. Students will be able to use query of different types of complexity. |
CSC 429 – Computer Security (3-0-1) | |
Course Description | Security principle, model and attacks. Cryptography, public key and secret-key cryptography. Authentication and digital signature. Key management and cryptographic protocol. Access control. Building secure system. Security in operating systems. Security in computer networks. Management and analysis of security. Risk assessment. Computer security policy. International information security standards. Intrusion detection and incident response. |
Prerequisite | CSC 329 - Computer Networks. |
Course Objectives | The course aims at giving the students a broad foundation in the fundamental concepts of Computer Security. It introduces the basic concept and principles of computer security such as: Security requirements, encryption, access control, malicious software, security policy and management. |
CSC 453 - Parallel Processing (3-0-1) | |
Course Description | Introduction to parallel processing. Models of parallel machines. Parallel programming paradigms and models. Performance analysis of parallel systems. Parallel programming languages and frameworks. |
Prerequisite | CSC 227 - Operating Systems. |
CSC 457 – Internet Technologies (3-0-1) | |
Course Description | An overview of Internet technologies (definitions, evolutions, examples, and, applications). Publishing and browsing technologies. Internet tools. TCP/IP and Client/server architectures. WWW, HTTP and HTML for text, images, links and forms. Web-based applications development: client-side scripting, server-side scripting and the MVC design approach. WEB site development. Security and privacy. |
Prerequisite | CSC 329 – Computer Networks. |
Course Objectives | The goal of this course is to provide an introduction to the basic concepts of the technologies that are used on the Internet. Students learn about building blocks of internet. They learn about various protocols used by internet. Students learn about web servers, search engines and software tools required to implement a website. |
CSC 496 – Graduation Project-I (2-0-0) | |
Course Description | This course is the first part of a sequence of two courses (CSC496 and CSC497) that in entirety constitute the BSc graduation capstone project. In this project, the student is expected to develop software for a specific problem by applying previously learned concepts and methods during the course of the project. In this course the student is typically expected to study the problem, see what others have done, perform the analysis, determine the requirements and suggest/design a solution. The project will culminate in a formal public presentation, and written documentation. Oral and written progress reports are required. The project topic may be provided by the faculty, by the student(s) or by the industry. The topic is subject to the departmental approval. |
Prerequisite | Student must have finished at least 95 hours in the BSc program. CSC 343 - System analysis and design. |
Course Objectives | This course is a semester-long team project, where students apply a broad range of skills learned in earlier courses, and demonstrate their competence in technical material, communications, and project skills. |
CSC 497 – Graduation Project-II (4-0-0) | |
Course Description | This course is the second part of a sequence of two courses (CSC496 and CSC497) that in entirety constitute the BSc graduation capstone project. In this project, the students will continue the software development of the problem they picked in CSC496. The project will culminate in the delivery of a working system, a formal public presentation, and written documentation. Oral and written progress reports are required. |
Prerequisite | CSC 496 - Graduation Project-I. |
Course Objectives | This course is a semester-long team project, where students continue what they did in the first part of this project. In this part there are expected to do the actual implementation and evaluation. |
CSC 479 – Practical Training – (1-0-0) | |
Course Description | Training is an important aspect of the educational process in CCIS. Student is required to join a government or private sector IT center. The aim of the training is to acquire the experience in applying what he learned in real life. The training is evaluated by the training advisor at the IT center and by the CCIS training committee. |
Prerequisite | Student must have finished at least 95 hours in the BSc program. |
Course Objectives | This summer training for college students aims to provide them with a sound foundation out of theoretical and practical hands on knowledge and experience in the field of computer science. The course will provide students insight in to design methodology and implementation using different types of programming languages in different environments. |
B. Elective Courses
CSC 226 – Unix OS Environment (1-2-0) | |
Course Description | Overview of the Unix OS, basic concepts, usage of the help and man and info commands. Unix file system and basic commands. Redirection and pipelining. Filtering commands: line searching, (grep, egrep and frep), line content manipulation (cut, sort, tr …). Line visualization (pr, pg, more, tail, fmt, …), comparing files (diff and cmp). Users and user-rights. Process management. The command find. Shell programming. The awk and sed commands. |
Prerequisite | CSC 111 - Computer Programming I. |
CSC 261 – Artificial Intelligence Programming Languages (3-0-1) | |
Course Description | This course provides an overview of functional, logic and constraint logic programming paradigms used in the context of artificial intelligence. The course focuses on Prolog language syntax and semantics: lists, operators, arithmetic, structures, input/output, built-in predicates, etc. It emphasizes constraint handling and solving combinatorial problems involving constraints. |
Prerequisite | CSC113 - Computer Programming II. |
CSC 320 – Systems Programming (3-0-1) | |
Course Description | The course aims to give the students a theoretical and practical understanding of the programming interface to a Unix system, including the system call interface and many of the functions provided in the standard C library. Topics covered include an overview of the basic Unix programming concepts, an introduction to shell programming, unbuffered I/O, the standard I/O library, the environment of a Unix process, process control, signals, and interprocess communication. |
Prerequisite | CSC 227 - Operating Systems. |
Course Objectives |
|
CSC 384 Applied Numerical Computation (3-0-1) | |
Course Description | This is an introductory course on Numerical Analysis and Methods. Topics include: errors and their propagation, floating-point computation, algorithms and numerical stability, linear systems of equations, interpolation, difference equations, curve fitting, nonlinear equations, numerical differentiation and integration. |
Prerequisite | CSC 311 - Design and Analysis of Algorithms. |
CSC 386 – Algorithms and Techniques for Database Management Systems (3-0-1) | |
Course Description | The goal of this course is to introduce the students to the following fundamental data management issues: database file organization, indexing, query processing and optimization, transaction, concurrency control, recovery system as well as other advanced topics. |
Prerequisite | CSC 380 - Introduction to Database Concepts |
Course Objectives | The main objective of this course is to provide an in-depth understanding of Database Management Systems. In particular, students will be exposed to the internal structures and algorithms of a relational database system in order to facilitate their ability to later build database systems in general. |
CSC 412– Simulation and Modeling (3-0-1) | |
Course Description | Introduction to Simulation. Concepts in Discrete-event Simulation (DES). Components of DES. Monte Carlo simulation, the life cycle of a simulation study, input and output data analysis, world views and time control, random number generation, credibility assessment of simulation results, simulation languages, Parallel and Distributed Simulation, applications of simulation using contemporary simulation modeling and support software. |
Prerequisite | CSC 111 - Computer Programming I STAT 101 - An Introduction to Probability & Statistics |
CSC 430 – Computer Arabization (3-0-1) | |
Course Description | System Arabization level (screen Arabization, keyboard Arabization, printer Arabization, font and codepage manipulation, creating visual Arabic interfaces, etc.);Introduction to Arabic natural language processing (Arabic morphological analysis, Arabic syntax and semantics, Classical models, Applications); Applying neural networks in Arabic natural language processing (neural networks for Arabic morphological analysis, neural networks for syntactic analysis); The phonetic properties of the Arabic language (Arabic allophones, isolating Arabic allophones, characterization of Arabic allophones, using Arabic allophones in some applications. |
Prerequisite | CSC 220 – Computer Organization CSC 227 - Operating Systems |
Course Objectives | The objective of this course is to be aware of the state-of-the-art in Computer Arabization. |
CSC 440–Human Computer Interaction (3-0-1) | |
Course Description | Introduction to HCI. The Human User: Capabilities and Limitations. The Computer: Capabilities and Limitations. The Interaction: Models of Interaction and Interaction Styles. Usability Principles: Principles of HCI that support user friendliness. Interface design: dialog notation and design - Visual Design. Design support: Systems that support the design process. Usability Evaluation. Introduction to Speech Computing and other Forms of Input/output. |
Prerequisite | CSC 343 – Systems Analysis and Design |
CSC 443 – IT/Software project management (3-0-1) | |
Course Description | Project life cycle; Project constraints; Project organization; Risk management; Project cost; Integrated schedule and critical path analysis; Baseline cost; Team building; Project planning; Reporting on project status; Closing and sign-off. |
Prerequisite | CSC 343 – Systems Analysis and Design |
CSC 446 – Design Patterns (3-0-1) | |
Course Description | This course aims at giving student the ability of design programs using patterns. A design pattern is a general repeatable solution to a commonly occurring problem in software design. Design patterns deal specifically with problems at the level of software design. Definition, context of use will be introduced along with their classification. Some of the most used pattern will be studied such as : Abstract factory, Factory method, Builder, Lazy initialization, Object pool, Prototype, Singleton, Adapter, Bridge, Composite, Decorator, Façade, Flyweight ,Proxy, Chain of responsibility, Command, Interpreter, Iterator, Mediator, Observer. |
Prerequisite | CSC 343 – Systems Analysis and Design |
CSC 456 – Distributed Systems (3-0-1) | |
Course Description | Understanding the main characteristics of distributed systems and the various design choices required for building a distributed system such as: the architectural models varying from client/server to peer-to-peer, grid-computing; the communication models varying from client-pull (RPC/RMI, Message Queuing, …) to server-push models (publish-subscribe, …); the synchronization techniques based on system clock, on logical clock (timestamp) and on token ring; the standard middlewares such as RPC, RMI, Corba and SOAP. |
Prerequisite | CSC 329 – Computer Networks. |
Course Objectives | The course aims at giving the students a broad foundation in the fundamental concepts of distributed systems accompanied by specific project to develop the basic skills in network programming using RMI or RPC. It introduces the basic architectural models of distributed systems as well as the communication paradigms such as Publish/Subscribe, Message passing, Remote Procedure Call/ Remote Method Invocation, Message Queuing, etc. Besides, it presents various techniques of synchronization. It aims too to introduce distributed algorithms such election, mutual exclusion, etc |
CSC 459 – Net-Centric Computing (3-0-1) | |
Course Description | Overview of most important distributed algorithms such as election, mutual exclusion, termination detection and concurrency control; Object based distributed systems concepts and the CORBA standard middleware; Introduction to component based distributed systems with focus on implementation issues and on related technologies; SOA and Web-services technologies with focus on SOAP and WSDL; Advanced distributed computing models such peer-to-peer and Grid computing with emphasis on related technologies such as Juxta, Net and Globus toolkit. |
Prerequisite | CSC 329 - Computer Networks. |
CSC 462 – Machine Learning (3-0-1) | |
Course Description | This course gives an overview to machine learning concepts, techniques, and algorithms. Topics include: inductive learning, decision trees, artificial neural networks, instance-based learning, clustering, reinforcement learning, and some examples of application domains. |
Prerequisite | CSC 361- Artificial Intelligence. |
CSC 463 – Knowledge Engineering and Expert Systems (3-0-1) | |
Course Description | The course will provide an introduction to knowledge-based systems. Topics include: knowledge representation and inference, representing uncertainty using probabilistic logic and fuzzy logic, non-monotonic reasoning and knowledge acquisition. The students will do a programming project related to knowledge-based systems. |
Prerequisite | CSC 361- Artificial Intelligence. |
CSC 476 – Computer Graphics (3-0-1) | |
Course Description | This course is an introduction to computer graphics, with an emphasis on application programming using OpenGL software. The topics covered are: Introduction to Computer Graphics - Graphics Display Devices - Drawing Based Graphics Primitives - Transformation of Object - 3D Affine Transformation.-Three-Dimensional Viewing - Tools for Raster Displays - Scan conversion Algorithms - Defining and Filling Regions of Pixel. - Filling Polygon-Defined Regions. - Aliasing :Anti-aliasing Techniques. - Creating more Shades and Colors. |
Prerequisite | CSC 212 - Data Structures. |
CSC 478 – Digital Image Processing and Analysis (3-0-1) | |
Course Description | Introduction; Image Sensing and Acquisition; Some Basic Gray Level Transformations for Image Enhancement.; Image Contrast Enhancement Using Histogram Processing; Image Smoothing Using Spatial Filters; Image Sharpening Using Spatial Filters; Point, Line and Edge Detection; Basic image compression procedures; Basic Global and Adaptive Thresholding for Image Segmentation; Optimal Global and Adaptive Thresholding for Image Segmentation; Region-Based Image Segmentation and EdgeBased Segmentation; Image Restoration in the Presence of Noise-Spatial Filtering; Image Enhancement in Frequency Domain; Objects Representation and Description; introduction to Object Recognition. |
Prerequisite | CSC 212 - Data Structures. |
CSC 484 – Information Retrieval (3-0-1) | |
Course Description | This course is intended to prepare students to understand the underlying theories and methods for searching and retrieval of text and bibliographic information, analysis of relevance, utility, statistical and linguistic methods for automatic indexing, query formulation, output ranking, filtering methods, measures of retrieval effectiveness and retrieval experimentation Methodology. |
Prerequisite | CSC 380 - Introduction to Database Concepts |
CSC 489 – Selected Topics in Computer Science (3-0-1) | |
Course Description | This course aims at introducing the students to a different area of Computer Science. This will be achieved by exposing them to new tools, techniques, and research in Computer Science. |
Prerequisite | Student must finish 100 Credit Hours. |
Master of Science in Computer Science (Thesis option) Guide
Master of Science in Computer Science (Non-thesis option) Guide
Master of Science in Artificial Intelligence (Non-thesis Option) Guide
CSC 512: Algorithms Analysis and Design (3+0) |
Review of major data structures - Basic design techniques - Divide and conquer - Greedy method - Backtracking - Dynamic programming - Heuristics - Parallel algorithms - Analysis of algorithms - Orders of magnitude - Lower bound theory - Time and space complexity - NP-hard and NP-complete problems - applications and examples - Correctness of algorithms - Structure of algorithms. |
CSC 514: Optimization for Artificial Intelligence (3+0) |
This course outlines the algorithms, theory and applications of convex optimization used in most Artificial Intelligence and machine learning solutions. Specifically, it provides the students with the background needed to recognize, formulate, and solve convex optimization problems. The topics covered in this course include: Recall on Vector spaces and subspaces, fundamental matrices properties (determinants, inverse matrices, matrix factorizations, eigenvalues), linear transformations, and linear systems of equations, convex sets and functions, linear and quadratic optimization, geometric and semidefinite programming, and algorithms for constrained and unconstrained problems. |
CSC 516: Evolutionary Computation (3+0) |
This course covers evolutionary computation in the context of Artificial Intelligence and optimization problems with NP complexity. Its content spans over: Paradigm of genetic algorithms, evolutionary strategy, genetic programming and various evolutionary heuristics. In particular, it focuses on theory and practice of standard evolutionary computation. In addition, it exposed the students to advanced evolutionary algorithms based on graphic probabilistic models (Estimation of Distribution Algorithms (EDA)). Moreover, it tackles parallel evolutionary algorithms and techniques of rapid prototyping of evolutionary algorithms. |
CSC 519: Computer Security (3+0) |
In this course, the students get exposed to state of the art computer security problems. The topics covered in this course are: Threats and vulnerabilities - Identification and authentication - Access control - Intrusion detection - Encryption and privacy - Security policies and their evaluation. |
CSC 520: Networking in the TCP/IP Environment (3+0) |
Review of Network Technologies for LANs and WANs - Inter-networking Concepts and Architectures - Internet Addressing - Internet Routing Protocols - Internet Error Control - Protocol Layering in Internet environments - Application development in a TCP/IP environment - Standard TCP/IP applications – other related topics. |
CSC 523: Distributed Systems (3+0) |
General concepts of operating systems - Distribution: concepts and definitions - Architecture of distributed systems - Control in distributed systems: centralized versus distributed - Concept and forms of transparency in distributed systems - Naming concepts - classification and Implementation of different naming schemes – Inter-process communication: concepts, mechanisms, and implementation - Resource allocation and implication on load sharing - Load balancing - Process migration - Clock synchronization: concepts, problems and solutions - Concurrency control in distributed environments: concepts, approaches and implementation. |
CSC 524: Computer Networks (3+0) |
Review of general concepts - LAN and WAN - Management of token ring networks - ISO model of seven layers - Network standard specifications - Urban networks - Large bandwidth networks - Gates - Network design and performance - Network programming - Error detection - Security and privacy. |
CSC 525: Distributed Real-Time Systems (3+0) |
Real-time issues and concepts - Time handling task scheduling problems - Resource scheduling - Inter-process communication in real-time environments - Real-time communication protocols - Predictability problem. |
CSC 526: Parallel Processing (3+0) |
Introduction to parallel processing - Architectures and models for parallel machines - Design and evaluation of parallel algorithms - Communication in a parallel processing environment - Writing parallel applications using Multi-Pascal tool - Writing parallel applications using PVM. |
CSC 527: Design and Implementation of Real-Time Systems (3+0) |
Real-Time issues and concepts - Real-Time Systems: definitions and classification - Hard real-time systems and soft real-time systems - The concept of time and its importance in real-time systems - Real-Time applications - Real-Time Languages - Specific hardware interfaces for realtime systems: real-time data collection and processing - Different types and levels of Control in real-time systems (e.g. closed-loop control) - Real-time operating systems - Predictability in real-time systems - Introduction to methodologies for the design and implementation of real-time systems - Cases studies. |
CSC 528: Interconnection Networks (3+0) |
Introduction and background - The graph-theoretical approach - Criteria to evaluate interconnection networks - Issues in designing interconnection networks - Classification and evaluation - The need for higher-performance computers - Flynn’s taxonomy - Computational speedup - Factors that limit speedup - Grosch’s and Amdahl’s laws - Different interconnection networks: Mesh Networks - Binary Tree Networks - Hypertree Networks - Pyramid Networks - Butterfly Networks - Hypercube Networks - Cube Connected Cycles Networks - Shuffle Exchange Networks - de Bruijn Networks - Star Networks and Star-Connected Cycle Networks. |
CSC 529: Selected Topics in Computer Systems (3+0) |
Contemporary topics and research directions in computer systems. |
CSC 530: High Performance Computations (3+0) |
The course gives an overview on HPC architectures in addition to a clear emphasis on performance tuning and algorithmic implementation. It provides the students with a hands-on experience in developing scalable efficient parallel algorithms suitable for most AI applications. Namely, the course covers: Review of major causes of performance degradation in scientific computing - The scheduling problem: classification and solutions - Task scheduling - Load balancing algorithms - Deadline scheduling for real-time systems. The collaboration between students to achieve a common goal will be encouraged through group assignments/project. |
CSC 535: New Advances in Programming Languages (3+0) |
Review of formal languages - Standard models of programming languages - Concept of typing - Scope of variables - Subroutines - Logical programming - Execution environment - Visual programming - Object oriented programming - Design and programming of VOOR languages - Programming in visual environment - Visual programming and software engineering - Contemporary topics. |
CSC 541: Advanced Software Engineering (3+0) |
Review of known methodologies - Analysis of software requirements - Real Time software - Software Cost - Software Project Management - Software Quality - Software Testing - Software Measurements - Software Risk Management - Introduction to Object Programming - Case Study. |
CSC 543: Software Quality Management (3+0) |
Introduction to Quality Management Systems and Total Quality - ISO Quality System and its application to software industry - Capability Maturity Model (CMM) and its five levels - Tick IT system - Quality Assurance - Application of Quality Systems - Software Tools for Quality - Case Study. |
CSC 546: Designing Object-Oriented Software Systems (3+0) |
Review of known methodologies and principles of Object Engineering - Unified Modeling Language (UML) - Comparative study of available methodologies - Conversion methodology to object design - Evaluation of object design and use of object metrics - Use of object methodology - Case Study. |
CSC 547: Software Measurements (3+0) |
Importance of measurements and metrics in software - Basics of measurements - Experimental measurements - Collection of measurements - Analysis of measurements - Measurements used for length, size, effort and time - Zeipf law - Structure measurements - Information flow measurements - Building software metrics - Planning for software measurements - Measurements of object oriented software - Tools used in software measurements - Case study. |
CSC 548: Software Projects Management (3+0) |
Introduction to project management - Basic activities of software project management - Charts used in project management - Evaluation and acceptance of project phases - Advanced techniques of project management as for maintenance - Project scheduling - Project insurance and arbitrage - Project management tools - Case study. |
CSC 549: Selected Topics in Software Engineering (3+0) |
New trends in the area of software engineering - methodology of application - current research topics. |
CSC 551: Automata, Calculability and Formal Languages (3+0) |
Finite state automata and regular expressions - Regular sets - the Pumping lemma - Context-free grammars and derivation trees - Chomsky and Greiback normal forms - Context-free languages - Recognizers - Turing machines - recursive and recursively innumerable languages - Decidability problems - The halting problem - Rice’s theorem and Chomsky hierarchy. |
CSC 552: Computational Linguistics (3+0) |
Phrase structure - Multilevel and transformational grammar - Grammar semantics - Recursive transition network - Augmented transition networks - Morphological analysis and other natural language analysis techniques - Cognitive modeling and theory of conceptual dependency - Discourse understanding - Language acquisition - Application: Machine translation - Text generation and textual analysis - Natural language interface. |
CSC 558: Pattern Recognition and Image Processing (3+0) |
In this course, the students undertake pattern recognition methods and concepts. In addition, it outlines the image processing techniques necessary to design and implement image based pattern recognition systems. The topics covered in this course are: Digital Image fundamentals - Images enhancement in spatial and frequency domain – Images degradation and restoration - Detection of discontinuities in images - Images segmentation - Representation of objects - Boundary, Regional, and Relational descriptors – Patterns and Pattern Classes – Recognition based on Decision Theoretic and Structural Methods - new topics in pattern recognition and image processing. |
CSC 559: Computer Vision (3+0) |
This course provides the students with the knowledge and skills necessary for the computer vision tasks in academia and industry. It covers the following topics: Computer vision fundamentals, Computational models and methodologies for solving computer vision problems, real-world application design and implementation of real-world applications related to visual data analytics. |
CSC 560: Knowledge Representation and Reasoning (3+0) |
In this course, the students undertake knowledge representation and reasoning. The topics covered include: Techniques of knowledge representation and reasoning using first-order logic. Key reasoning techniques of Resolution theorem-proving. Object-oriented approach to knowledge representation and reasoning. Uncertain knowledge and reasoning. Probabilistic reasoning over time. Making simple decisions. Making complex decisions. |
CSC 561: Expert Systems and Knowledge Engineering Applications (3+0) |
A brief introduction to expert systems – A brief presentation of knowledge representation paradigms (the emphasis will be put on rule-based systems) - inference rules - resolution - basic aspects of reasoning under uncertainty - ·Case studies: MYCIN - CLIPS - Application Modeling in CLIPS. |
CSC 562: Artificial Intelligence (3+0) |
This course outlines Artificial Intelligence knowledge and skills necessary to proceed with more advanced theoretical and/or applied courses in AI. Namely, it covers the following topics: Introduction to AI problem solving - Knowledge representation - Automatic theorem proving - Learning by example - Learning by analogy - Learning by discovery - Self-reference and Self-production - Reasoning: causal reasoning - commonsense reasoning - default reasoning - measure-based approaches - reasoning with uncertainty - Confirmation theory – Belief theory - Necessity and possibility theory - Theory of endorsements - Spatial and temporal reasoning. |
CSC 563: Neural Networks and Machine Learning Applications (3+0) |
Approaches to machine learning: Explanation-based learning - Learning by observation and discovery - Analogical and Case-based Learning - Learning Models - Evaluation of Learning Algorithms - Experimental Methodology - Empirical Learning - Reinforced Learning and Genetic algorithms - Neural Computations: examples and applications - History of Artificial Neural System development - Fundamental Concepts and Models of Artificial Neural systems. Applications: Neural Network Simulation and Implementations and other emerging applications of Neural Algorithms and Systems. |
CSC 564: Machine Learning (3+0) |
In this course, the students undertake machine learning concepts and techniques. The covered topics are: Approaches to machine learning: Explanation-based learning - Learning by observation and discovery - Analogical and Case-based Learning - Learning Models - Evaluation of Learning Algorithms - Experimental Methodology - Empirical Learning - Reinforced Learning and Genetic algorithms - Neural Computations: examples and applications - History of Artificial Neural System development - Fundamental Concepts and Models of Artificial Neural systems. |
CSC 565: Deep Learning (3+0) |
This course studies various deep architectures concepts. Typical deep learning models such as CNN, RNN, auto-encoders and their variants will be outlined. The student will be familiarized with the optimization and regularization methods used in deep learning framework. Furthermore, open-source deep learning platforms will be introduced. Hands-on experiences to solve AI problems using deep learning represents a main component of the course. Teamwork skill will be promoted through group project assignment. |
CSC 566: Advanced Applications of Pattern Recognition and Machine Learning (3+0) |
This course aims to expose the students to advanced concepts and methods typically used for pattern recognition in any type of data. This is achieved through the study of the underlying algorithmic knowledge and theory relevant to characterize and detect patterns in real data. The course covers: Image processing and analysis - Speech processing - Geographical Information System - Fuzzy reasoning - Computer vision - perception and any other emerging relevant topic(s). |
CSC 567: E-Business and its applications in large enterprises (3+0) |
Computer architecture and its application in large enterprises - Modeling - introduction to ERP - Java Management Extensions technology JMX - Language and platform-independent protocol for peer-to-peer networking - JXTA - Case studies in distributed computing - Large enterprises and computer security. |
CSC 568: Reinforcement Learning (3+0) |
This course presents the main Reinforcement Learning approaches and challenges such as generalization and exploration. In particular, an emphasis will be made on deep reinforcement learning. The course topics include: Bandit problems and online learning, Markov decision processes, Solution methods such as dynamic programming, Temporal difference learning, Monte Carlo learning, state of the art RL systems. |
CSC 569: Selected topics in Artificial Intelligence (3+0) |
This course aims to expose the students to cutting edge topics in Artificial Intelligence. This is achieved by undertaking state of the art AI concepts, methods, techniques and tools. |
CSC 570: Selected topics in Data Science (3+0) |
This course aims to expose the students to cutting edge topics in Data Science. This is achieved by undertaking state of the art Data Science methods, techniques and tools. |
CSC 572: Advanced Computer Graphics (3+0) |
Mathematics for computer graphics in three dimensions - Hierarchical representation and basic shapes - Surfaces and curves in three dimensions - Three dimensional modeling - Solid bodies modeling - Three dimensional viewing - Visible surface - Illumination and shades - Texture mapping - Computer Graphics Systems: Open GL - Animation techniques - Case study. |
CSC 573: Numerical Algorithms and their Applications in CS (3+0) |
Review of vectors and matrices: transformation matrices in computer graphics, Computations of the normal vector to a surface - Introduction to Probability and Random Variables: Probability Density Functions in image processing - Introduction to Numerical differentiation and integration - Newton’s and Gradient algorithms in image processing - Least-Squares algorithm, Curve fitting, COCOMO model calibration - Steganography algorithms - Introduction to MATLAB. |
CSC 574: Human-machine Communication and User-Interface Design (3+0) |
Introduction to Human sensory systems - Human memory and Human Learning User Interface Styles: Design Considerations - Dialog Content Design - Design Methodology - Visual Design - Basic Interaction-handling Models - Introduction to Human-Computer Dialog Management - Introduction to Visual Form Recognition: Pen Computing - Photography and other Visual Forms such as Finger Print Input Systems - Font and Symbol Design - Introduction to Speech Computing and other Forms of Input/Output - Speech Presentation - Speech Understanding and Recognition - Speech Generation - Gesture and Odor Input/ Output. |
CSC 576: Graphics and Multimedia Applications (3+0) |
Traditional Animation - Computer Animation Tools - 3D-Animation Environment - Special Animation Techniques - Today’s Animation Systems (Hardware/Software) - Applications of Computer Animation - Introduction to Virtual Reality and its applications. |
CSC 578: Advances in Multimedia Applications (3+0) |
Recent advances in Multimedia technology - Hardware/Software Architectures - Tools and Environments - Virtual Reality Technology (Hardware/Software) - Multimedia Components in Virtual Reality Systems. |
CSC 579: Selected Topics in Computer Graphics (3+0) |
New topics, methods, techniques and tools in computer graphics - research directions. |
CSC 581: Advanced Database Systems (3+0) |
Review of Basic Modeling Techniques and DBMS Concepts - Components and Functions of a DBMS - Query processing and optimization - Concurrency Control - Security - Recovery - Integrity in DBMSs - Distributed Databases - Study of Intelligent Database Systems - Study of different Object-Oriented Data Models - Introduction to XML technologies - Project: Development of a database application. |
CSC 582: Database Systems for Data Science (3+0) |
This course aims to expose students to relational and NoSQL database concepts with focus on both theoretical and practical learning. In particular, it provides knowledge of the SQL language and the implementation skills relevant to relational and NoSQL database systems (DBMS). Platforms such as MySQL, SQL Server, Amazon Redshift, Google BigQuery and MongoDB are considered for the creation of database instances in the cloud for Both relational and NoSQL database systems. Furthermore, students are expected to implement SQL scripts and Python/Java codes through hands-on projects. |
CSC 583: Natural Language Processing (3+0) |
In this course, the students undertake the steps typically required for Natural Language Processing. In addition, it exposes the students to the ambiguous challenges in NLP. Moreover, suitable standard platforms and libraries for processing real-world data will be introduced and used in this course. The topics covered in this course include: Text processing applications, ambiguity in natural languages, The Natural Language Toolkit, N-gram language models, Text Classification, Part-of-Speech Tagging, Syntactic and Statistical Parsing, Semantic Analysis and Information Extraction. |
CSC 585: Data analytics and Visualization (3+0) |
This course provides the students with data analytics and visualization principles. The course covers the complete data science cycle and covers a wide range of topics related to data analytics including experimental design; data collection and preprocessing; exploratory data analysis; association rules; statistical inferencing; model fitting and selection; data clustering; evaluations; hypothesis testing; analysis of variance; correlation and causality; data visualization rules and guidelines; data abstraction and visual encoding; tabular data visualization; spatial data visualization; networks and trees visualization; and interactive visualization. |
CSC 586: Hypermedia and Geographical Information Systems (3+0) |
Multimedia and hypermedia Systems - Different Development Methodologies - Architectures - Query processing and Browsing Tools - Development of Hypermedia Systems on the World Wide Web (www) Databases - WWW and its Browsing Tools - Data Modeling Techniques and Development of Data Warehouse in an Architectured Environment - Conceptual Modeling and Analysis of Spatial Data - Spatial Reasoning - Query Processing - Indexing Techniques - Data Storage - Hypermaps - Spatial Knowledge - different application domains - Project: Development of a prototype system. |
CSC 587: Web Databases and Information Retrieval (3+0) |
In this course, the students undertake advanced techniques required for the design and implementation of text based information systems. It covers: Text indexing, Boolean and vector-space retrieval models, IR techniques for the web, link-based algorithms, metadata usage and crawling, Document classification and clustering, Machine learning based ranking. |
CSC 588: Data Warehouse and Mining Systems (3+0) |
This course covers the theory and methods for data warehouses design as well as data mining concepts and techniques. It covers the following topics: Introduction to Decision Support Systems (DSS) - Development of DSS - Data Modeling Techniques and Development of Data Warehouse in an architectured Environment – Data cube design - Study of different Data Warehouse Architectures and Development Techniques - User-Interface for Data Warehouses - Data Mining - Application Domains for Data Warehouse and Mining. More focus will be made on developing student self-learning skill through independent research assignments. |
CSC 589: Selected Topics in Database Systems (3+0) |
Contemporary topics - recent research directions. |
CSC 590: Selected Topics in Computer Applications (3+0) |
Selected Topics in Computer Applications. |
CSC 591: Research Project (1) 3(6+0) |
In this research project, the students undertake a research project in an area of AI. The research project can be either a study of a theoretical topic or a practical (development) one. The student presents his findings in a written report that conforms to the requirements and specifications set up by the department. This course is dedicated to the first part of the project, the analysis and design part. |
CSC 592: Research Project (2) 3(6+0) |
This research project is a continuation of the research work carried out in project I. The students are expected to deliver a (public) presentation and a report on the research outcomes at the end of the semester. |
CSC 594: Ethical Issues in Artificial Intelligence (3+0) |
This course provides the students with discussions on the issues that are raised by the recent advances in artificial intelligence (AI) and robotics systems. The course examines the history and the current state of AI and discusses a number of ethical concerns of AI including biases in AI systems; robot ethics; machine ethics; accountability and transparency; legal issues of AI; economic and social impacts of AI systems; and unintended consequences resulting from adapting AI in traffic, medical, financial, and security applications. The course will focus on presenting and analyzing several case studies from each domain where AI is being used. |
CSC 595: Seminar and Discussions (2+0) |
The student is supposed to carry out a survey research study (theoretical and technical) on topics agreed upon with the course instructor – The student will present his findings in a written report and in a seminar. |
CSC 596: Seminar and Discussions in Artificial Intelligence (3+0) |
This course enable student to carry out theoretical and technical survey study on AI advanced topics. The student has to present and discuss his findings in a written report and in a seminar. |
CSC 597: Project 1 (2+0) |
Projects are of applied type and are meant to solve problems arising from business, governmental, or other sectors. The student selects one of the projects proposed by staff. The department project committee will manage the projects announcement and assignment. The student will present his findings in a written report that conforms to the requirements and specifications set up by the department. This course is dedicated to the first part of the project, the analysis and design part. |
CSC 598: Project 2 (3+0) |
This course is dedicated to the second part of the project, the implementation and test part. |
CSC 600: Thesis |
The thesis research topic is chosen by the student and approved by the Department Council. |
CEN 523: Fail-Tolerant Computer Systems (3+0) |
Systems and their failures - Faults - errors and failures - Structuring and faults - Fault error detection - Damage assessment and confinement - Error recovery and fault diagnoses. |
CEN 545: Digital Image Processing (3+0) |
Physical descriptions of continuous images - Sampling and quantization of images - Matrix representation of image forming - Filtering - Restoration and enhancement - Feature extraction and scene analysis. |
Ph.D. Program in Computer Science (Courses and Thesis Option) Guide
CSC 601: Advanced Computing Science & Applications 3(3+0) |
Graph theory and applications in computer science – Computational methods and application in computing science – Advanced data structures – Applications in computing - Discrete mathematics applications in computing – New trends in computing science. |
CSC 618: Selected Topics in Computer Systems & Networks 3(3+0) |
New trends and research directions in the area of Computer Systems and Networks, including new trends in the design and performance of computer systems and networks, network programming, error detection in computer systems and networks, security and privacy. |
CSC 619: Selected Topics in Computer Security 3(3+0) |
New trends and research directions in the area of Computer Security including: Threats and vulnerabilities - Identification and authentication - Access control - Intrusion detection - Encryption and privacy - Security policies and their evaluation – Steganography and applications. |
CSC 626: Advanced Theory of Computation & Computability 3(3+0) |
In-depth study of concepts related to computability - Chomsky hierarchy - Turing machines – Computability - Decidability - Nondeterministic automats, recursive function theory - Theory of complexity and complexity classification. |
CSC 627: Design & Implementation of Real-Time Systems 3(3+0) |
Real-Time Systems - Real-Time applications and support Real-Time Languages - Specific hardware interfaces for Real-Time Systems: real-time data collection and processing - Different types and levels of Control in RealTime Systems (e.g. closed-loop control) - Real-Time Operating Systems - Predictability in Real-Time Systems - Introduction to methodologies for the design and implementation of Real-Time Systems - Cases studies. |
CSC 628: Selected Topics in Programming Languages 3(3+0) |
New trends and research directions in the area of Programming Languages including: Recent developments in programming language design and implementation, correctness, uniformity, practicality, technological advances on the state of the art, new approaches to programming languages. |
CSC 629: Selected Topics in Arabisation 3(3+0) |
New trends and research directions in the area of Arabisation including Arabic language processing and its various applications. |
CSC 637: Parallel Processing 3(3+0) |
Overview of High Performance Computers, parallel program performance measurement, study different paradigms for achieving parallelism including explicit and implicit parallelization, fine grain and data flow models, shared memory and message passing parallel computers, and the difference between the SIMD versus MIMD types of Computers. Experiments will be conducted on different parallel programming frameworks, including PVM, MPI and LAPI as provided with the IBM RS/6000 eServer computer. |
CSC 647: Software Testing, Validation, & Verification 3(3+0) |
Testing in the development life cycle - Testing methodology - Methods for evaluating software for correctness, performance and reliability – Software validation and verification – Static testing - Code inspection – Dynamic testing - Unit testing - System testing – Statistical testing – Testing tools – New trends in software testing. |
CSC 648: Selected Topics in Software Engineering 3(3+0) |
New trends and research directions in the area of software engineering including: software requirements, software project management, software cost, software quality, software testing, software measurements, and software risk management. |
CSC 657: Pervasive Computing Architecture & Design 3(3+0) |
This course covers pervasive computing principles and applications in depth. The topics include: sensor networks; primitive data types for sensor networks; programming sensor networks; mobility support; MANETs; middleware systems; context modeling and awareness; software engineering principles for pervasive computing; usability aspects of pervasive computing; wireless security and privacy. |
CSC 661: Emergent Computing & Swarm Intelligence 3(3+0) |
Evolutionary algorithms – Swarm Intelligence - Artificial Immune Systems – Evolving Connectionist systems – Cellular Automata – Collective Intelligence – Reverse Emergence – Cellular neural network – Amorphous computing – DNA Computing – Quantum Computing. |
CSC 662: Artificial Intelligence 3(3+0) |
AI problem solving - Knowledge representation - Automatic theorem proving - Learning by example - Learning by analogy - Learning by discovery - Self-reference and Self-production - Reasoning: causal reasoning - commonsense reasoning - default reasoning - measure-based approaches - reasoning with uncertainty - Confirmation theory - Belief theory - Necessity and possibility theory - Theory of endorsements - Spatial and temporal reasoning. |
CSC 663: Machine Learning 3(3+0) |
This course covers the theory and practice of machine learning from a variety of perspectives (including Design, analysis, implementation and applications of learning algorithms). The course covers theoretical concepts such as induction, deduction, reinforcement and interaction. Topics include learning decision trees, neural network learning, statistical learning methods, genetic algorithms, Bayesian learning methods, explanation-based learning, and reinforcement learning, support vector machines, decision trees, Bayesian networks, association rules, dimensionality reduction, feature selection and visualization. |
CSC 668: Selected Topics in Artificial Intelligence 3(3+0) |
New trends and research directions in the area of artificial intelligence, including: knowledge representation, searching, reasoning and uncertain reasoning, planning, and applications. |
CSC 669: Selected Topics in Image Processing & Pattern Recognition 3(3+0) |
New trends in the area of digital image processing and pattern recognition including: Images enhancement - Images segmentation - Representation of objects – Pattern Classes – Recognition based on Decision Theoretic and Structural Methods. |
CSC 677: Selected Topics in Computer Graphics 3(3+0) |
New trends in the area of Computer Graphics: Three dimensional Modeling and viewing - Surfaces and curves in three dimensions - Solid bodies modeling - Three dimensional viewing - Visible surface - Illumination and shades - Texture mapping - Animation techniques. |
CSC 678: Selected Topics in Virtual Reality & Computer Vision 3(3+0) |
New trends and developments in the area of Virtual Reality and Computer Vision including developments in stereoscopic perception and rendering, sensor fusion, human perception, and virtual reality technology. |
CSC 679: Human Computer Interaction 3(3+0) |
Design of user interfaces based on the capabilities of computer technology and the needs of human factors. Design process. Implementation support. Evaluation. User models. Task models and dialogues. Virtual and augmented reality . Hypertext and multimedia. Approaches and developments in the field. |
CSC 687: Data Warehouse & Mining Systems 3(3+0) |
Decision Support Systems (DSS) - Development of DSS - Data Modeling Techniques and Development of Data Warehouse in an architectured Environment - Study of different Data Warehouse Architectures and Development Techniques - User-Interface for Data Warehouses - Data Mining - Application Domains for Data Warehouse and Mining - Project: Development of a Prototypical Data Warehouse/Mining System. |
CSC 688: Selected Topics in Database Systems 3(3+0) |
New trends and developments in the area of Database Systems including: Developments in object oriented, deductive, spatial, temporal and constraint database management systems - New database applications and architectures such as multi-databases and their applications in multimedia and mobility domains. |
CSC 691: Bioinformatics 3(3+0) |
Bioinformatics is a rapidly evolving field that studies biological systems and biological data (such as DNA/protein sequences, macromolecular structures and functional genomics data) using analytic theory and practical tools of computer science, mathematics and statistics. The topics include concepts of molecular genetics, biological databases, database searching, sequence alignments, phylogenetic trees, structure prediction, and microarray data analysis. |
CSC 696: Independent Research Study -1- 2(2+0) |
The student selects a research topic and conducts a literature review in relation to the topic. |
CSC 697: Independent Research Study -2- 2(2+0) |
The student selects a research topic and conducts a literature review in relation to the topic. |
CSC 698: Advanced Topics in Computer Science 3(3+0) |
In this course, students study some advanced topics in Computer Science. The content and syllabi of this course is designed by a member of staff and approved by the department. |
CSC 699: Thesis Proposal Preparation 1(1+0) |
Identify an original research topic. Formulate a problem statement. Understand the background of the research project. Study related work. Develop or adapt potential research directions. Summarize the state of the project as a thesis proposal. |
CSC 700: Thesis (12) thesis units [Prerequisite: CSC 699] |
Complete the research work proposed (thesis proposal). Publish the results of the research. Write a dissertation which describes the research work and presents the results. Final defense. |
STAT503: Probability & Mathematical Statistics 3(3+0) |
Probability. Random Variable. Expectation. Some Distributions. Functions of R.V. Sampling distributions. Estimation. Hypothesis, Testing, Correlation and Regression. Analysis of Experiments. |
MATH505: Numerical Linear Algebra 3(3+0) [Prerequisite: MATH242, MATH244, MATH253, MATH254] |
Direct & Iterative methods for solving system of linear equations (including cases with special matrices) along with error convergences analysis. Numerical methods for solving least square problems and approximation of functions. Various methods for computing the Eigen values and Eigenvectors for symmetric and non-symmetric matrices. Applications. |
MATH507: Advanced Operation Research 3(3+0) [Prerequisite: MATH253, MATH254] |
Linear optimization models. Geometric interpretation. Simplex, two phase, revised simplex and Karmarkar's methods for solving linear programming. Duality and sensitivity analysis. Parametric programming. Applications. Introduction to the nonlinear programming. |
CENX621: Advanced Computer Architecture 3(3+0) |
Instruction set principles, Pipelining, pipelining hurdles. Instruction level parallelism, Data hazards avoidance, Dynamic Scheduling, Dynamic Hardware prediction. Memory Hierarchy Design, Cache design, Storage systems, Busses, I/O performance measures. Interconnection Networks, Introduction Multiprocessors architectures. |
CENX631: Advanced Computer Networks 3(3+0) |
Review of OSI layered Architecture, TCP/IP Protocols, Data link layer: HDLC, Window flow control, Network layer: Datagram and virtual circuit, Transport protocol: Error-detection and recovery, Presentation layer: Security, Privacy, Text compression, Application layer: Distributed computing, Network operating systems. |
CENX643: Digital Signal Processing 3(3+0) |
Discrete time signals, Z-transforms. Discrete Fourier transform (DFT). Fast Fourier transform (FFT). Design of finite impulse response filter (FIR) and Infinite impulse response filter (IIR), Effects of finite word length. |
IS 601: Enterprise Resources & Planning 3(3+0) |
Basic elements and considerations of an enterprise computing solution, including systems integration issues, people versus technology issues, plus project management and implementation issues. Concepts of production planning and control with ERP systems, relationship with manufacturing and logistics strategies. Other ERP related topics, including technical, management, and global issues common to a typical business and manufacturing environment. |
IS 602: IT Project Management 3(3+0) |
Introduction to Project Management. The nine project management knowledge areas – project, integration, scope, time, cost, quality, human resource, communications, risk, and procurement management. The five process groups – initiating, planning, executing, controlling, and closing. Project Management and Information Technology Context, Project Integration Management, Project Scope Management, Project Time Management, Project Cost Management, Project Quality Management, Human Resource Management, Project Communications Management, and Project Risk Management. |
IS 603: Systems Analysis & Design 3(3+0) |
Approaches used by information system developers to discover and model the requirements. Construct an acceptable design to implement a successful system solution. Tools and techniques that the programmer or analyst uses to develop information systems. |