To navigate through the Ribbon, use standard browser navigation keys. To skip between groups, use Ctrl+LEFT or Ctrl+RIGHT. To jump to the first Ribbon tab use Ctrl+[. To jump to the last selected command use Ctrl+]. To activate a command, use Enter.

This course studies the mathematical elements of computer science. Topics include propositional logic; predicate logic; mathematical reasoning; techniques of proof; mathematical induction; set theory; number theory; matrices; sequences and summations; functions, relations and their properties, elementary graph theory, and tree.

Main concepts of computer architecture; hardware components of a computer; instruction set: instruction formats, encoding of instructions, types; Execution unit: registers design, combinational shifters, ALU, division and multiplication algorithms; control unit: register transfer language, hardwired and microprogrammed control unit; memory unit: RAM, cache memory, associative memory, virtual memory; Input/output processors; introduction to multiprocessor systems and parallel processing

The course is an introduction to modeling and simulation. It includes the following topics: Fundamental concepts of computer simulation; Models for computer simulation; Random numbers: Pseudorandom number generation and testing, Monte Carlo methods; Introduction to distribution functions; Simulation modeling; Discrete-event simulation; Continuous simulation; Verification and Validation of simulation models; Input analysis; Output analysis; Queuing theory models; Design code; Test and Debug simulation programs; Sample of applications. There will be weekly practice in the lab.

Concepts of a graph. Undirected graphs vs. directed graphs. Computer representation of graphs; Euler graph and De Bruijn sequences. Graph isomorphism. Shortest path algorithm. Minimum Spanning trees algorithms: Kruscal and Prim algorithms. Depth first search for directed and undirected graphs. Maximum flow in a network: Ford-Fulkerson Algorithm. NP-complete graph problems: graph coloring, maximum independent set, minimum vertex cover, traveling salesman problem. The students assessment will be based on assignment, quizzes and exams

This course is an introduction to key design principles and techniques for interactively visualizing data. The major goals of this course are to understand how visual representations can help in the analysis and understanding of complex data, how to design effective visualizations, and how to create your own interactive visualizations using modern web-based frameworks.

This course is designed to help students to gain rapid software application skills such as: Solaris System Software, Sun, Unix, Cisco, MSE and others. in this course the student will be able to develop and design a web applications and services, mobile applications and others using certified software's from Microsoft company or certified software's to achieve the final goal of the course which is getting an intentional certificate from international companies. Weekly practice in the lab.

This course describes the architecture, components, and operations of routers and switches in a small network. Participants learn how to configure a router and a switch for basic functionality

Introduction to high-performance computing, processor architectures, memory systems, data and parallel decompositions, parallel languages and architectures, multiprocessors, multi-computers; routing topologies; shared memory and passage passing parallel processing, PRAM model (exclusive versus concurrent reads and writes) and sample applications.

Wireless networks and their basic operation, different types of wireless technologies and systems, the basics of how they operate, different types of wireless voice, data and broadcast services, key commercial systems. Wi-Fi wireless networks, Bluetooth wireless technology, GSM cellular networks, cellular internet access via Wireless access protocol (WAP), GPRS and UMTS networks, wireless networks operating system; Symbian OS, Palm OS. Mobile IP and Mobile routing, Transport layer over wireless networks, Mobile wireless network applications.

This course enables students to understand and implement operating systems functions in managing computer systems component. It includes the following major topics: Introduction to Hardware and Software Concepts; Process and CPU scheduling, Threads, Synchronous and Concurrent Execution, Deadlock and Indefinite Postponement; Memory management: Physical and Virtual Memory; Management of external storage and I/O devices: Files management; Performance and Optimization; Security and Protection; and Distributed Systems. Linux Assignments

This course covers different important techniques that used in designing and analyzing efficient Algorithms such as: dynamic programming, greedy algorithms, and Genetic algorithm. In addition, in this course, we describe the idea of different optimization problem and explain how to design the advance algorithms to find the optimal solution. This course describes a variety of heuristic search methods including dynamically dimensioned search, genetic algorithms, greedy algorithm.

Main concepts of Logic Design; Boolean Algebra; Basic Definitions; Basic Theorems and Properties; Boolean Functions; Canonical and Standard Forms; Digital Logic Gates; Minimization Methods; Combinational Logic; Sequential Logic. Numbering Systems; Binary Codes; Boolean Algebra; Gate-Level Minimization; Algebraic Simplifications; Karnaugh Maps; Don't-Care conditions; NAND and NOR Implementation; Combinational Logic; Adders and subtractors; Decoders and Encoders; Multiplexers and Demultiplexors; ROMS and PLAs; Sequential Logic; Flip Flops; Registers, Counters, and Serial adder.

Records. Classes and data abstraction. Inheritance and composition. Templates. Contiguous list. Stacks, Stack operations and Implementation of Stacks as arrays. Queues, Queue operations and Implementation of Queues as arrays.

Pointers. Classes. Virtual functions and abstract classes. Overloading. Recursion. Linked list: singly, doubly, circular. Stacks, Stack operations and Implementation of Stacks as linked-list. Queues, Queue operations and Implementation of Queues as linked-list. Trees, Binary Trees.

Sets,
Relations, Closure and Languages, Finite Automata, deterministic and
nondeterministic, Closure and pumping lemma, Regular languages and expressions,
Context-Free Grammar, Regular languages and Context-Free languages, pushdown
automata, closure, determinism and parsing, LL (1) Grammar, Turing
machines and machine schemas, examples, Introduction to P
and NP classes.

Definition of an algorithm; Algorithm design and techniques, such as sequential versus divide-and-conquer; Algorithm analysis; Concept of basic operations; Concept of worst, best, and average case analysis; Complexity analysis: big O, Omega and Theta notations; Recurrence equations and recursive algorithms; Searching and sorting algorithms; Concept of graphs; Graph algorithms.

The course is basic course in numerical methods. It introduces students to: Error analysis; Finding roots of a function: bracketing and iterative methods; Roots: direct and indirect solution of systems of linear equations; Solution of nonlinear systems; Approximation and interpolation; Numerical integration and differentiation; Programming language programs in parallel with material or using MATLAB . Weekly practice in the lab.

This
course includes an overview of Computer Graphics applications; Graphics Output
Primitives and its attributes; 2D and 3D Geometric Transformations; 2D Viewing
and Clipping; Graphical User Interface and its attributes; Introduction to
OpenGL programming and its applications; Example applications will be developed
in lectures using C++ and OpenGL to demonstrate the techniques being presented.
Application project of well-known 3D computer graphics software is required.